[英]Command Line call from PHP not executed
我想從網絡服務器上運行的php腳本啟動python應用程序。 到現在為止還挺好。 我試過了
passthru("python track.py");
但這沒用。 根本沒有任何反應。 我也嘗試exec()和system()來確保。 然后,我嘗試使用以下命令運行php腳本:
passthru("php test.php");
passthru("/usr/bin/php test.php")
仍然沒有任何反應。 但是一個
passthru("ls")
可以正常工作。
我設置了每個用戶可以編輯和運行文件的權限。
這聽起來像是Web服務器用戶無法讀取相關文件的情況。
不幸的是,如果命令失敗, passthru()
只會返回NULL
,而不是引發異常。 例如,甚至是像var_dump(passthru('foobar'));
這樣的廢話var_dump(passthru('foobar'));
返回NULL
。
你怎么解決呢? 您可以從命令行測試網絡服務器是否能夠執行命令(假設www-data
是您的網絡服務器用戶,並且您具有sudo特權):
sudo su - www-data -c 'python track.py'
這樣,您將獲得有意義的錯誤消息並可以解決問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.