當前位置:首頁 » 編程語言 » 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身份執行命令,而不會報錯或者執行失敗了!

熱點內容
android中權重 發布:2025-07-16 19:07:26 瀏覽:418
lol界面在哪個文件夾 發布:2025-07-16 19:01:53 瀏覽:935
php文件解壓 發布:2025-07-16 19:01:08 瀏覽:881
日誌中心伺服器怎樣搭建 發布:2025-07-16 19:00:27 瀏覽:601
硬碟加密保護 發布:2025-07-16 18:58:52 瀏覽:37
c語言噴人 發布:2025-07-16 18:57:56 瀏覽:351
主機伺服器與雲伺服器哪個比較好 發布:2025-07-16 18:52:02 瀏覽:337
oracle存儲過程循環插入數據 發布:2025-07-16 18:51:59 瀏覽:762
淘寶密碼忘記了怎麼改 發布:2025-07-16 18:47:34 瀏覽:14
樂視1s鎖屏密碼是12的有多少 發布:2025-07-16 18:45:12 瀏覽:101