[英]PHP: python exec command
我正在测试PHP和Python,我正在尝试打印文本。
test.py:
import sys
print "x => " + sys.argv[1] + " y => " + sys.argv[2]
当我做:
须藤python test.py 5 9
输出为:
x => 5 y => 9
但是当我在PHP中执行此操作时:
<?php
exec("sudo python /home/pi/python/test.py 6 3");
?>
它在控制台中什么也没有显示。 没错。
我也尝试过system()或shell_exec,但是它不起作用。
这怎么工作?
我认为问题在于,无论您的PHP / WebServer运行于哪个用户上,都无法访问sudo或/ home / pi。 总而言之,我不会像这样使用sudo,而是为运行PHP / WebServer的用户设置适当的权限以执行上述python脚本。
解决方法:
将test.py
放在webroot(通常为/var/www
)中,然后从您的php脚本中删除sudo
:
<?php
exec("python /var/www/test.py 6 3");
?>
您可能还需要提供python二进制文件的完整路径,如下所示:
<?php
exec("/usr/bin/python /var/www/test.py 6 3");
?>
为了找出蟒蛇真的二进制存储,您可以使用命令which
是这样的:
which python
/usr/bin/python
尝试
<?php
exec("sudo python /home/pi/python/test.py 6 3 2>&1");
?>
exec()
函数返回已执行命令的最后一行(请参阅文档 )。 为了在控制台上看到它,您需要输出它:
echo exec("sudo python /home/pi/python/test.py 6 3");
如果要查看已执行命令的完整输出,请查看passthru()
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.