【问题标题】:PHP script on web page is displaying python code instead of executing it网页上的 PHP 脚本显示 python 代码而不是执行它
【发布时间】: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 文件一样。

标签: python php html


【解决方案1】:

这是一个权限问题,www-data 需要在 sudoers 上,以及在 php 中允许 sudo。然而,这个想法已被废弃,我正在采取不同的方法。 发布此内容以防其他人有同样的困难。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-07-02
    相关资源
    最近更新 更多