本文目錄一覽:
- 1、php 執行 shell 命令,許可權不足,怎麼辦
- 2、php調用linux shell沒有返回值,在其他的php環境里可以默認執行,但是我這裡不可以,是許可權的問題嗎?
- 3、ubuntu12.04 怎麼用php調用shell
- 4、php中shell_exec不能運行
- 5、php執行shell腳本,為什麼執行不了
php 執行 shell 命令,許可權不足,怎麼辦
換其他方式吧,php是www用戶去訪問的,可以執行shell的話,不安全
php調用linux shell沒有返回值,在其他的php環境里可以默認執行,但是我這裡不可以,是許可權的問題嗎?
錯誤信息?
你這個遠程調試?那估計應該是禁止了錯誤信息顯示,以及禁止了 exec 命令的使用。這個 php 是可以禁用的。具體你最好看看伺服器的設置。
ubuntu12.04 怎麼用php調用shell
第一,應該查閱php.ini配置文檔(我的配置文檔位置是/etc/php5/php.ini),關閉安全模式 safe_mode=Off。
第二,給予php運行的用戶和本機用戶許可權。php運行的用戶名可以通過在localhost運行以下的php文件查到:
?php
echo shell_exec(“id -a”);
?123123
我的Ubuntu系統的php運行用戶名是www-data(好蠢的名字…)
控制台下,執行 visudo,可以打開/etc/sudoers文件進行修改(利用visudo命令的意義在於,sudoers文件很重要,如果修改錯了,visudo會提示你,而直接修改會導致系統出錯,無法使用sudo…)
修改的地方在root的下一行:
『查到的php運行的用戶名』 ALL=(ALL) NOPASSWD:ALL
『本機用戶名』 ALL=(ALL) ALL
通過以上設置,應該就能完成ubuntu系統下php調用並執行shell腳本。
PS.相關的命令(詳細請百度google之)
$output = shell_exec(“xxx.sh”);//只有失敗的時候返回NULL
system(“cmd string”,$status);//$ststus在調用成功時返回true,失敗返回false
php中shell_exec不能運行
在Windows平台下安裝PHP後,在使用PHP的exec、shell_exec等函數時,經常會遇到報錯:unable to fork…,這實際上是因為PHP對cmd.exe沒有足夠的許可權引起的。
解決方法:為C:\Windows\System32\cmd.exe(系統不是安裝在C盤請相應更改)添加IUSR_ComputerName (ComputerName是你的計算機名稱)用戶的讀取、運行許可權,因為exec和shell_exec這兩個函數實際上是調用了cmd.exe來執行其它的程序。
php執行shell腳本,為什麼執行不了
直接執行shell腳本沒有許可權問題,因為一般你也是root登陸的。但是使用php執行就會存在。這裡你要先確定使用shell腳本操作的文件或者文件夾是否開啟777許可權
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/270118.html