」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > 為什麼使用“shell_exec”從 PHP 調用時我的 Bash 腳本無法執行?

為什麼使用“shell_exec”從 PHP 調用時我的 Bash 腳本無法執行?

發佈於2024-11-09
瀏覽:351

Why is my Bash script failing to execute when called from PHP using `shell_exec`?

從PHP 執行Bash 指令:腳本執行失敗故障排除

在這個問題中,我們遇到一位PHP 開發人員嘗試使用shell_exec 從PHP 執行bash 腳本。使用的語法為:

$output = shell_exec("./script.sh var1 var2");

但是,當呼叫指令時腳本無法執行。

要調試此問題,確定失敗的原因很重要。由於使用 ./script.sh var1 var2 透過命令列運行時腳本執行成功,問題可能出在 PHP 程式碼中。

導致腳本執行失敗的常見問題是目錄權限或路徑不正確。 PHP 腳本通常需要在執行外部命令之前設定正確的工作目錄。要解決此問題,程式碼可以在呼叫 shell_exec 之前使用 chdir 指定正確的目錄。

以下程式碼片段解決了此問題:

$old_path = getcwd();
chdir('/my/path/');
$output = shell_exec('./script.sh var1 var2');
chdir($old_path);

在這個例子中,我們:

  1. 將目前工作目錄儲存在$old_path中。
  2. 將工作目錄更改為'/my /path/' using chdir.
  3. 使用shell_exec執行bash腳本。
  4. 使用chdir($old_path)改回原來的工作目錄。

By確保正確的目錄就位,修改後的程式碼應該會成功執行 PHP 中的 bash 腳本。

最新教學 更多>

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3