從PHP 無縫運行Python 腳本
要使用PHP 執行Python 腳本,有多種方法可用,包括execsystem、shell_exeexec 和。但是,在PHP 中使用exec('/usr/bin/python2.7 /srv/http/assets/py/switch.py arg1 arg2') 時,儘管將錯誤報告設為E_ALL 並啟用了display_errors,但可能不會產生任何輸出。
要解決此問題,驗證 Web 伺服器使用者是否具有存取和執行 Python 腳本及其關聯命令的必要權限至關重要。具體來說,Python 檔案應該具有執行權限,並且所有內部命令也應該設定適當的權限。
解決 shell_exec 的問題
Ubuntu Server 10.04 證明為此解決方案提供合適的環境。透過利用 PHP 的 shell_exec 函數,可以執行該命令並將輸出作為字串傳回。以下PHP 程式碼片段舉例說明了這個方法:
$command = escapeshellcmd('/usr/custom/test.py'); $output = shell_exec($command); echo $output;
Python 腳本中Shebang 行的重要性
Python 腳本(test.py) 應以以下行確保調用正確的解釋器:
#!/usr/bin/env python
此行指示系統使用$PATH環境變數中指定的 Python 解釋器,確保與安裝的各種 Python 版本相容。
要讓test.py 腳本在基於Unix 的平台上可執行,請執行下列指令:
chmod +x myscript.py
檔案和指令的執行權限
除了設定Python腳本的可執行權限之外,同樣重要授予Web 使用者(通常是www-data/apache)對該文件及其內部命令的執行權限。否則可能會導致腳本無法正常執行。
以上是為什麼我的 PHP 程式碼不執行我的 Python 腳本,我該如何修復它?的詳細內容。更多資訊請關注PHP中文網其他相關文章!