无法从PHP文档执行Python脚本
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了无法从PHP文档执行Python脚本,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1421字,纯文字阅读大概需要3分钟。
内容图文
我正在Raspberry Pi上的Apache服务器上运行PHP文档,并且希望它在单击按钮时运行文件.我在命令下放置了一些echo命令,以使文件运行,并打印出该文件,但文件未运行. index.php文件以及lightson.py和lightsoff.py文件都在同一目录(/ var / www)中,我在这两个文件的顶部都添加了#!/usr/bin/env python,并使它们可以通过以下方式执行:使用chmod x lightson.py.如果我从外壳程序运行命令,它可以工作并打开灯光,就像我希望使用与文件中的命令完全一样的命令一样,但是它不会通过该命令运行.编码:
<html>
<head>
<title>Light Controller</title>
</head>
<?php
if (isset($_POST['LightON']))
{
shell_exec("sudo python /var/www/lightson.py");
echo("on");
}
if (isset($_POST['LightOFF']))
{
shell_exec("sudo python /var/www/lightsoff.py");
echo("Off");
}
?>
<form method="post">
<button name="LightON">Light ON</button>
<button name="LightOFF">Light OFF</button><br><br>
</form>
</html>
解决方法:
如您所说,您正在像apache-> php-> shell_exec(SUDO ..)
因此,apache用户必须位于sudoers文件中,最好不要将sudo赋予apache,而应赋予apache(www-data)用户权限来运行python程序
在您的python脚本中放置第一行:#!/usr/bin/env python,以便该脚本知道使用哪个程序打开它.
然后
变更组:
chgrp www-data /path/to/python-script.py
使它变得可执行
chmod +x /path/to/python-script.py
试试吧
shell_exec("/path/to/python-script.py");
我希望它能起作用;)
TIPP:如果您需要某种控制,并且API以nodejs和https://www.npmjs.com/package/rpi-gpio包开头,则Apache和PHP用于传递文档和字符串.这样,您将在坚实的自动化环境中占有一席之地
内容总结
以上是互联网集市为您收集整理的无法从PHP文档执行Python脚本全部内容,希望文章能够帮你解决无法从PHP文档执行Python脚本所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。