用PHP执行Python

用PHP执行Python,php,python,Php,Python,我尝试执行以下PHP命令: $result = exec("sudo python /home/pi/test.py",$output, $ret); var_dump($result); echo "<br>"; var_dump($output); echo "<br>"; var_dump($ret); 我用ps-ef验证了这个过程,没有显示任何内容。它可能会帮助有同样问题的人。 我后来设法用以下PHP代码执行了一个Python脚本: $command

我尝试执行以下PHP命令:

 $result = exec("sudo python /home/pi/test.py",$output, $ret);
 var_dump($result);
 echo "<br>";
 var_dump($output);
 echo "<br>";
 var_dump($ret);

我用
ps-ef
验证了这个过程,没有显示任何内容。

它可能会帮助有同样问题的人。 我后来设法用以下PHP代码执行了一个Python脚本:

$command = escapeshellcmd('sudo /home/pi/test.py');
$output = shell_exec($command);
echo $output;
目前,我从未成功地在后台执行此操作。我尝试以下解决方案:

$command = escapeshellcmd("sudo /home/pi/test.py >/dev/null &");

$command = escapeshellcmd("sudo /home/pi/test.py &");

我的PHP页面也会等待进程结束,但我不想等待。

您是在web浏览器中执行此操作的吗?如果是这样的话,apache(可能执行php的用户)是否拥有无密码的sudo权限?上面的代码可能是由用户
www-data
或类似的东西(不同发行版)执行的-该用户是否有权执行
sudo
?编辑:@kainaw以5秒的速度打败了我:)@kainaw是的,我用网络浏览器来执行这个任务。已经完成了,我通过添加以下行修改了文件/etc/sudoers:www-data-ALL=(ALL)NOPASSWD:ALL@Bacara虽然这可以修复你的错误,但这是一件非常糟糕的事情。现在,您的web浏览器中的每一个漏洞——即使是还没有人知道的漏洞——都可以在没有密码的情况下以root身份攻击您的系统。“你在乞求强奸你的机器。@kainaw好吧,以我为例,我在本地工作,但知道我脚本中的所有漏洞是件好事。”。
$command = escapeshellcmd("sudo /home/pi/test.py >/dev/null &");

$command = escapeshellcmd("sudo /home/pi/test.py &");