【发布时间】:2020-06-08 03:25:52
【问题描述】:
没什么特别的,但是我不确定出了什么问题我已经验证 .py 可以自己正常工作 请发送帮助。
<!DOCTYPE html>
<html>
<body>
<form action="test1.py">
<input type="submit" class="button" name="bob" value="cyan pulse">
<h1>test php</h1>
<button id= button1> Test Button
<?php
system ( "sudo python /var/www/html/test1.py" );
echo "lights have been turned on";
?>
</button >
<p>My first paragraph.</p>
</body>
</html>
编辑:
经过测试发现显示文字的罪魁祸首是
<form action="test1.py">
<input type="submit" class="button" name="bob" value="cyan pulse">
<h1>test php</h1>
显然我在 PHP 方面有很多东西要学 这主要是我的一个爱好项目, python 脚本仍然没有正确执行。 我知道您可能会在 linux 的末尾添加某种开关来帮助显示错误,但是我对它的理解还没有完全发展。
这也可能是一个权限错误,虽然我相信我已经给了 www-data 正确的权限,但我相信还有更多。 这是更新的代码供参考
<!DOCTYPE html>
<html>
<body>
<h1>test php</h1>
<button id= button1>Pulse Cyan
<?php
$Python=`python /var/www/html/test1.py`;
echo shell_exec ( $Python );
echo "lights have been turned on";
?>
</button >
<button id= button1> Turn LED off
<?php
$Python=`python /var/www/html/turnoffled.py`;
echo shell_exec ( $Python );
echo "lights have been turned on";
?>
</button >
<p>My first paragraph.</p>
</body>
</html>
更新我已经验证问题出在 shell_exec() 的运行方式上 我已经用 sudo a2enmod cgi 测试了这个启用 cgi 的前后 我已经检查了 php.ini 是否禁用了 shell_exec(不是) 如果有人有任何好的研究兔子洞,我可以去看看,那会很棒。
【问题讨论】:
-
我很惊讶它使用 sudo 打印任何东西 - 我希望它会等待某人输入密码
-
我很好奇的是我是否试图以不正确的方式实现 shell_exec()/exec()/system()/etc 或者这与 python 中的权限问题更相关?就像它在文本编辑器中打开 python 文件一样。