問題:
嘗試使用exec() 從腳本指令儘管有正確的錯誤報告和執行,PHP仍無法產生任何輸出
根本原因:
當網路伺服器帳戶(例如「apache」或「www-data」)缺乏存取和存取所需的權限時,就會出現此問題執行Python檔。預設情況下,Web 伺服器帳戶通常以有限的權限進行操作。
解決方案:
要解決此問題,必須確保 Web 伺服器帳戶具有適當的執行權限Python 腳本。這可以透過以下方式實現:
建議函數:
而不是使用exec(),它是最好使用PHP 中的shell_exec() 函數透過shell 執行命令。此函數傳回執行命令產生的完整輸出,如果發生錯誤或無輸出,則傳回 NULL。
範例:
$command = escapeshellcmd('/usr/custom/test.py'); $output = shell_exec($command); echo $output;
基本注意事項:
為了確保 Python腳本的正確執行,請將以下行作為第一行腳本:
#!/usr/bin/python
這一行指定要使用的Python解釋器,確保與系統上各種Python安裝的兼容性。此外,Python 腳本必須具有適當的權限,且網路伺服器帳戶必須可以存取任何必要的系統命令或檔案。
以上是為什麼我的 PHP exec() 函數不執行 Python 腳本,如何修復它?的詳細內容。更多資訊請關注PHP中文網其他相關文章!