本文目錄一覽:
- 1、如何通過php頁面執行shell腳本?
- 2、解析php中如何直接執行SHELL
- 3、如何讓php執行shell
- 4、ubuntu12.04 怎麼用php調用shell
- 5、如何使用PHP調用SHELL命令?調用後並且執行SHELL命令
如何通過php頁面執行shell腳本?
exec裡面,a.bash前面有sh這個bin文件么,就把bin文件路勁加在a.sh前。try下
解析php中如何直接執行SHELL
本篇文章是對php中直接執行SHELL的方法進行了詳細的分析介紹,需要的朋友參考下 $message=shell_exec(“sudo /usr/local/webserver/nginx/sbin/nginx -t 21”);echo “運行結果:”.$message.””;上面的語句可以直接在PHP中執行SHELL語句如果有返回值 那麼其中的 21 是必須的 他會重定向輸出strerr 轉到strout 輸出!否則返回結果會為空!
如何讓php執行shell
php給我們提供了system(),exec(),passthru()這三個函數來調用外部的命令.
雖然這三個命令都能執行linux系統的shell命令,但是其實他們是有區別的:
system() 輸出並返回最後一行shell結果。
exec() 不輸出結果,返回最後一行shell結果,所有結果可以保存到一個返回的數組裡面。
passthru() 只調用命令,把命令的運行結果原樣地直接輸出到標準輸出設備上。
相同點:都可以獲得命令執行的狀態碼
例子:system(“/usr/local/bin/webalizer/webalizer”);
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命令?調用後並且執行SHELL命令
解除sysyem() passthru() exec()等函數禁用。
執行passthru(‘ps -ef’);可以得到這條命令的輸出內容。正則得到所需內容,然後再調用這些函數執行操作。具體用法翻翻手冊。
原創文章,作者:W1IC0,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/130780.html