當前位置:首頁 » 編程語言 » phpshell運行

phpshell運行

發布時間: 2025-06-19 05:51:09

1. 如何讓php執行shell

php給我們提供了system(),exec(),passthru()這三個函數來調用外部的命令.
雖然這三個命令都能執行linux系統的shell命令,但是其實他們是有區別的:
system() 輸出並返回最後一行shell結果。
exec() 不輸出結果,返回最後一行shell結果,所有結果可以保存到一個返回的數組裡面。
passthru() 只調用命令,把命令的運行結果原樣地直接輸出到標准輸出設備上。
相同點:都可以獲得命令執行的狀態碼

例子:system("/usr/local/bin/webalizer/webalizer");

2. linux 中php執行shell_exec函數

shell_exec("/usr/local/bin/pdf2swf /home/xiazai/03.pdf -o /home/xiazai/1.swf; /usr/local/bin/jpeg2swf /home/xiazai/2.jpg -o /home/xiazai/2.swf ");
每條命令後加上分號

3. LINUX+NGINX下的PHP shell_exec()函數執行linux命令 2019-08-08

LINUX+NGINX下的PHP shell_exec()函數執行linux命令

環境說明

手燃衫頭有一台linux的測試伺服器,最近因為業務需要,需要通過php訪問另一台伺服器去執行某些命令。

由於另一台伺服器已經對這台伺服器開了私鑰,所以在終端上是可以直接執行命令而不需要輸入密碼的。

問題

PHP無法使用exec命令,沒有任何返回值。

解決途徑

1.php.ini的配置有問題。

由於php是7.0以上的版本,取消了安全模式,所以考慮PHP.ini文件配置。

打開php配置文件,裡面有一行disabel_function的值,此處記錄了禁止運行的函數,在裡面講exec和shell_exec,system等函數刪除。

2.許可權問題

修改以後PHP可以運行部分命令了,但是部分外部程序和命令仍然不能運行。使用sudo返回失敗。

於是運行「whoami」查看,環境下php-frm的運行角色鎮段唯是www。

於是修改sudoers文件。

vi /etc/sudoers

將www添加到

## Allow root to run any commands anywhere

root ALL=(ALL) ALL

下面:

## Allow root to run any commands anywhere

root ALL=(ALL) ALL

www ALL=(ALL) NOPASSWD:ALL

然後找到Default requiretty這一行,把他注釋掉

# Default requiretty

ps:意思就是sudo默認需要tty終端,注釋掉就可以在後台執行了.

重啟nginx和php-fpm

service nginx restart

service php-fpm restart

這樣,PHP就可以在需要御培執行外部命令的時候使用sudo利用root身份執行命令,而不會報錯或者執行失敗了!

熱點內容
php小程序介面開發 發布:2025-06-19 09:19:22 瀏覽:218
刪除資料庫的數據 發布:2025-06-19 09:19:22 瀏覽:45
粘土小游戲的伺服器ip 發布:2025-06-19 09:16:50 瀏覽:386
安卓系統哪裡設置攔截 發布:2025-06-19 09:09:21 瀏覽:797
湖南xp伺服器租用雲主機 發布:2025-06-19 09:07:48 瀏覽:54
js獲取上傳的圖片路徑 發布:2025-06-19 09:06:16 瀏覽:923
jpg壓縮比 發布:2025-06-19 09:06:02 瀏覽:306
mac訪問samba 發布:2025-06-19 08:41:42 瀏覽:310
如何給予游戲存儲許可權 發布:2025-06-19 08:28:00 瀏覽:182
如何退出安卓id賬號 發布:2025-06-19 08:27:56 瀏覽:373