PHP:pythonexec命令

PHP:pythonexec命令,php,python,Php,Python,我正在用PHP和Python进行测试,我正在尝试打印文本 test.py: import sys print "x => " + sys.argv[1] + " y => " + sys.argv[2] 当我这样做时: sudo python test.py 5.9 输出为: x=>5y=>9 但当我在PHP中执行此操作时: <?php exec("sudo python /home/pi/python/test.py 6 3"); ?> 控制台中没有显示任何内

我正在用PHP和Python进行测试,我正在尝试打印文本

test.py:

import sys

print "x => " + sys.argv[1] + " y => " + sys.argv[2]
当我这样做时:

sudo python test.py 5.9

输出为:

x=>5y=>9

但当我在PHP中执行此操作时:

<?php
exec("sudo python /home/pi/python/test.py 6 3");
?>

控制台中没有显示任何内容。这不是一个错误

我也尝试过system()或shell_exec,但它不起作用


这是如何工作的?

我认为问题在于,无论您的PHP/Web服务器运行在哪个用户上,都无法访问sudo或/home/pi。总之,我不会像这样使用sudo,而是为运行PHP/WebServer的用户设置适当的权限来执行上述python脚本

要解决这个问题:

test.py
放入webroot(
/var/www
通常),并从php脚本中删除
sudo

<?php
exec("python /var/www/test.py 6 3");
?>
试一试


函数返回执行命令的最后一行(请参阅)。为了在控制台上看到它,您需要输出它:

echo exec("sudo python /home/pi/python/test.py 6 3");

如果要查看已执行命令的完整输出,请查看。

是否尝试过
exec(“sudo/usr/bin/python/home/pi/python/test.py 6 3”)?我有两个用户:root和pi,我不知道root用户的密码是什么,但当我用pi sudo登录时,密码是有效的。是的,但我怀疑您的web服务器(apache?)是否在用户pi上运行。它通常在单独的用户(如www数据、www或http,具体取决于分布)下运行。您的Web服务器可能甚至无法访问/home/pi是的,它运行在Apache上,如何让用户www访问/home/pi?或者python脚本是否在var/www文件夹中?将python脚本放入/var/www并删除
sudo
我已经尝试过了,但它也不起作用。没有错误等。我认为预发任务有问题。控制台中没有任何内容。可能是打印正在进入控制台,或者需要我回显exec?
which python
/usr/bin/python
<?php
exec("sudo python /home/pi/python/test.py 6 3 2>&1");
?>
echo exec("sudo python /home/pi/python/test.py 6 3");