1. 程式人生 > 實用技巧 >web: php 執行第三方命令或者shell指令碼

web: php 執行第三方命令或者shell指令碼

今天在web-php後端指令碼中執行外部shell指令碼,使用了相對路徑 ./../xx.sh 但是執行不成功,後來換成了絕對路徑執行成功了,

考慮到因為php指令碼包含導致的,路徑不對了,但是使用絕對路徑又不太好

可以使用

$cmd = __DIR__ . "/../xx.sh";

參考:

https://kb.kutu66.com/php/post_11452405

從PHP執行外部命令的一些常見故障來自 shell:

  • 命令使用相對路徑,但PHP是從任意位置啟動的:

  • PHP和 shell 使用不同的使用者憑據執行。 當PHP通過web伺服器執行時,這種情況常常發生。

  • PHP和 shell 執行不同的命令。 很多人都會像exec("foo $bar")一樣呼叫內容,甚至不檢查"foo $bar"包含什麼內容。

  • 未完成錯誤檢查。 最簡單的方法是捕獲和列印標準輸出。標準錯誤。狀態程式碼,當然還有所有PHP錯誤訊息,包括警告和通知。

  • 不允許web伺服器在作業系統級別執行該命令。

    • 檢視 se linux或者類似工具。