如何在Raspberry Pi上使用PHP运行python脚本?

时间:2019-01-16 15:16:59

标签: php raspberry-pi

我想通过网络应用在Raspberry Pi上运行python脚本。我有一个按钮的PHP页面,单击该按钮会转到另一个由以下代码组成的PHP页面。如果我输入system("mkdir folder")可以,但是不适用于python脚本。我已经使用sudeors更改了www-data ALL=NOPASSWD: ALL文件。

PHP文件

<?php
    system("sudo python3 x.py");
?>

Python脚本

#!/usr/bin/env python3
import os
os.system("gnome-terminal")

1 个答案:

答案 0 :(得分:0)

尝试

<?php echo shell_exec("python x.py");?>

此命令应echo退出已执行命令的结果,这对于调试很有用,因为它将显示shell命令或python脚本中可能存在的错误。

<?php echo exec("python x.py");?>

请参见thisthis

还要确保并确认您的php引擎具有足够的权限来运行Shell命令。您也可以尝试禁用safe-mode,但已过时,不建议使用它。

也来自参考文献中的评论:

  

如果您在Unix中将php作为Apache模块运行,则您运行的每个系统命令均以apache用户身份运行。这是有道理的。Unix不允许以这种方式提升特权。如果您需要以提升的权限运行系统命令,请仔细考虑问题!


作为旁注,如果您尝试创建一个交互式网页,在其中输入内容,并且它充当远程终端外壳(肯定不是该操作的方式),则它会更加复杂,因为这将需要““”“实时”“”“中的双向连接。您必须与raspi上的AJAX服务器使用某些WebSocketWebSocket连接。