Linux

要從 PHP 腳本執行的 PATH 中的 Bash 命令

  • October 27, 2015

Debian 8中,我正在嘗試創建一個可以放在下面的腳本/sbin(在我的$PATH環境變數中),所以它可以執行,該命令是幾行的簡單回顯。我創建了一個 bash 腳本並使其可執行,因此我可以像任何其他命令一樣從我的終端執行它,但我無法從我的 PHP 腳本執行它,即使$PATH我的終端和我的終端中的環境變數是相同的腳本,(我已經驗證過了)。

該腳本將被呼叫ifconfig(我知道它是一個在 debian 8 中不再存在的過時程序,但我現在無法繞過它,所以我需要一個存根)。

  • 當我ifconfig從終端執行時,我得到了所有成功的輸出。
  • 當我ifconfig從腳本執行時,我得到一個FALSE.
  • 當我執行 awhich ifconfig時,終端輸出/sbin/ifconfig.
  • 當我which ifconfig從 PHP 腳本執行 a 時,它不會返回任何路由。

如何使這個 bash 腳本在 PHP 上工作?shell_exec('ifconfig'); 或者我怎樣才能操縱特定的輸出shell_exec('ifconfig');

該腳本在apache-2.4下執行

我發布這個是因為我不確定這應該在堆棧溢出、超級使用者或伺服器故障中。

您應該注意以下幾點:

  1. 您的 php.ini 配置文件是否允許使用 shell_exec()?
  2. 通常,所有命令都將使用 www-data 使用者執行。也就是說,您應該檢查使用者是否可以實際執行相關命令。如果您在使用 sudo 的系統中,這是允許它的好方法。
  3. 請記住,當安全模式打開時,您不能使用 shell_exec()。
  4. 您的 error.log 和 access.log 文件是檢查正在發生的事情的好地方,特別是如果您沒有打開 display_errors。

啊!

引用自:https://serverfault.com/questions/732011