簡體   English   中英

從PHP的命令行調用未執行

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM