首頁 > 後端開發 > php教程 > 為什麼我的 PHP exec() 函數不執行 Python 腳本,如何修復它?

為什麼我的 PHP exec() 函數不執行 Python 腳本,如何修復它?

Barbara Streisand
發布: 2024-12-28 12:07:10
原創
294 人瀏覽過

Why Doesn't My PHP exec() Function Run Python Scripts, and How Can I Fix It?

從PHP 執行Python 腳本

問題:

嘗試使用exec() 從腳本指令儘管有正確的錯誤報告和執行,PHP仍無法產生任何輸出

根本原因:

當網路伺服器帳戶(例如「apache」或「www-data」)缺乏存取和存取所需的權限時,就會出現此問題執行Python檔。預設情況下,Web 伺服器帳戶通常以有限的權限進行操作。

解決方案:

要解決此問題,必須確保 Web 伺服器帳戶具有適當的執行權限Python 腳本。這可以透過以下方式實現:

  • 以網頁伺服器使用者身分登入:使用指令 su - ;假設網頁伺服器的身分。
  • 修改檔案權限:使用 chmod 指令向 Python 腳本授予必要的權限。例如: chmod u x /srv/http/assets/py/switch.py​​

建議函數:

而不是使用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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板