嘗試使用 exec、shell_exec 或系統命令從 PHP 執行 Python 腳本時,必須考慮安全上下文您的網路伺服器。在許多情況下,網頁伺服器可能沒有足夠的權限來執行腳本。
要診斷和解決與權限相關的問題,嘗試運行以下程式碼片段會很有幫助:
if (exec('echo TEST') == 'TEST') { echo 'exec works!'; }
如果這段程式碼能夠運行,則說明PHP 的exec 函數運作正常。但是,如果 PHP 無法產生輸出,則可能是 Web 伺服器使用者沒有足夠的權限。
使用 exec 的一個很好的替代方法是 shell_exec 函數在 PHP 中。 Shell_exec 傳回所執行命令的完整輸出,如果發生錯誤或未產生輸出,則傳回 NULL。用法範例:
$command = escapeshellcmd('/usr/custom/test.py'); $output = shell_exec($command); echo $output;
確保Python 腳本正確執行,請驗證腳本的第一行是否包含以下shebang:
#!/usr/bin/env python
這個shebang 指定了要使用的解釋器,對於確保正確的Python版本至關重要
為了將腳本識別為可執行文件,請確保它具有適當的權限。在 UNIX 類型平台上,使用以下命令:
chmod +x myscript.py
此外,Python 腳本及其中呼叫的任何命令都必須具有運行所需的權限。
透過考慮使用者權限和使用 shell_exec,您可以有效地從 PHP 執行 Python 腳本,確保兩種語言之間的安全性和功能整合。
以上是如何從 PHP 安全地執行 Python 腳本?的詳細內容。更多資訊請關注PHP中文網其他相關文章!