ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

无法从PHP文档执行Python脚本

2019-11-19 18:28:17  阅读:487  来源: 互联网

标签:raspberry-pi apache python php raspbian


我正在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>&nbsp;
<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用于传递文档和字符串.这样,您将在坚实的自动化环境中占有一席之地

标签:raspberry-pi,apache,python,php,raspbian
来源: https://codeday.me/bug/20191119/2038364.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有