我想通过网络应用在Raspberry Pi上运行python脚本。我有一个按钮的PHP页面,单击该按钮会转到另一个由以下代码组成的PHP页面。如果我输入system("mkdir folder")
可以,但是不适用于python脚本。我已经使用sudeors
更改了www-data ALL=NOPASSWD: ALL
文件。
<?php
system("sudo python3 x.py");
?>
#!/usr/bin/env python3
import os
os.system("gnome-terminal")
答案 0 :(得分:0)
尝试
<?php echo shell_exec("python x.py");?>
此命令应echo
退出已执行命令的结果,这对于调试很有用,因为它将显示shell命令或python脚本中可能存在的错误。
或
<?php echo exec("python x.py");?>
还要确保并确认您的php
引擎具有足够的权限来运行Shell命令。您也可以尝试禁用safe-mode,但已过时,不建议使用它。
也来自参考文献中的评论:
如果您在Unix中将php作为Apache模块运行,则您运行的每个系统命令均以apache用户身份运行。这是有道理的。Unix不允许以这种方式提升特权。如果您需要以提升的权限运行系统命令,请仔细考虑问题!
作为旁注,如果您尝试创建一个交互式网页,在其中输入内容,并且它充当远程终端外壳(肯定不是该操作的方式),则它会更加复杂,因为这将需要““”“实时”“”“中的双向连接。您必须与raspi上的AJAX
服务器使用某些WebSocket
或WebSocket
连接。