PHP 提供了多個執行外部命令的函數,包括 exec、shell_exec 和 system。但是,您在嘗試使用這些函數執行 Python 腳本時可能會遇到問題。
故障排除:
為了解決這個問題,您已嘗試了各種解決方案,包括:
但是,您已經注意到 PHP 仍然沒有輸出。
解決方案:
問題可能不在於 PHP,而在於權限。網路伺服器通常以有限的使用者權限運行,這可能會限制其執行某些命令或存取檔案的能力。
以網頁伺服器執行時的使用者身分登入您的伺服器(例如, www-data )。
使用您嘗試在 PHP 中執行的指令,嘗試從終端機作為網路伺服器使用者。例如:
/usr/bin/python2.7 /srv/http/assets/py/switch.py arg1 arg2
如果該指令手動運行,則確認問題出在權限上。
確保PHP腳本和Python腳本具有正確的權限。 PHP 應具有 PHP 腳本的執行權限,Python 腳本應具有 Web 伺服器使用者的執行權限。
PHP 的 shell_exec 函數在執行外部指令時通常比 exec 或 system 更可靠。它會傳回執行命令的完整輸出。使用以下程式碼:
$command = escapeshellcmd('/usr/custom/test.py'); $output = shell_exec($command); echo $output;
驗證Python 檔案的第一行包含以下內容shebang :
#!/usr/bin/env python
這一行指定Python解釋器
如有必要,請使用下列指令使Python 檔案在UNIX 類型平台上執行:
chmod +x myscript.py
以上是如何從 PHP 成功運行 Python 腳本?的詳細內容。更多資訊請關注PHP中文網其他相關文章!