繁体   English   中英

PHP:python exec命令

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

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM