我想从运行在网络服务器上的php脚本启动python应用程序。 到现在为止还挺好。我试过了
passthru("python track.py");
但它没有用。什么都没发生。我尝试了exec()和system()以确保。 然后我试着运行一个PHP脚本:
passthru("php test.php");
passthru("/usr/bin/php test.php")
仍然没有发生任何事情。但是一个
passthru("ls")
按预期正常工作。
我设置了每个用户都可以编辑和运行文件的权限。
答案 0 :(得分:0)
这听起来像是网络服务器用户无法读取相关文件的情况。
不幸的是,如果命令失败,passthru()
只返回NULL
,而不是抛出异常。例如,即使是var_dump(passthru('foobar'));
这样的废话也会返回NULL
。
你怎么解决这个问题?您可以从命令行测试Web服务器是否能够执行命令(假设www-data
是您的Web服务器用户,并且您具有sudo权限):
sudo su - www-data -c 'python track.py'
通过这种方式,您可以获得有意义的错误消息并解决问题。