Linux
要從 PHP 腳本執行的 PATH 中的 Bash 命令
在Debian 8中,我正在嘗試創建一個可以放在下面的腳本
/sbin
(在我的$PATH
環境變數中),所以它可以執行,該命令是幾行的簡單回顯。我創建了一個 bash 腳本並使其可執行,因此我可以像任何其他命令一樣從我的終端執行它,但我無法從我的 PHP 腳本執行它,即使$PATH
我的終端和我的終端中的環境變數是相同的腳本,(我已經驗證過了)。該腳本將被呼叫
ifconfig
(我知道它是一個在 debian 8 中不再存在的過時程序,但我現在無法繞過它,所以我需要一個存根)。
- 當我
ifconfig
從終端執行時,我得到了所有成功的輸出。- 當我
ifconfig
從腳本執行時,我得到一個FALSE
.- 當我執行 a
which ifconfig
時,終端輸出/sbin/ifconfig
.- 當我
which ifconfig
從 PHP 腳本執行 a 時,它不會返回任何路由。如何使這個 bash 腳本在 PHP 上工作?
shell_exec('ifconfig');
或者我怎樣才能操縱特定的輸出shell_exec('ifconfig');
該腳本在apache-2.4下執行
我發布這個是因為我不確定這應該在堆棧溢出、超級使用者或伺服器故障中。
您應該注意以下幾點:
- 您的 php.ini 配置文件是否允許使用 shell_exec()?
- 通常,所有命令都將使用 www-data 使用者執行。也就是說,您應該檢查使用者是否可以實際執行相關命令。如果您在使用 sudo 的系統中,這是允許它的好方法。
- 請記住,當安全模式打開時,您不能使用 shell_exec()。
- 您的 error.log 和 access.log 文件是檢查正在發生的事情的好地方,特別是如果您沒有打開 display_errors。
啊!