繁体   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