php运行python脚本_无法从PHP文档执行Python脚本

我正在Raspberry Pi上的Apache服务器上运行PHP文档,并且希望它在单击按钮时运行文件.我在命令下放置了一些echo命令,以使文件运行,并打印出该文件,但文件未运行. index.php文件以及lightson.py和lightsoff.py文件都在同一目录(/ var / www)中,我在这两个文件的顶部都添加了#!/usr/bin/env python,并使它们可以通过以下方式执行:使用chmod x lightson.py.如果我从外壳程序运行命令,它可以工作并打开灯光,就像我希望使用与文件中的命令完全一样的命令一样,但是它不会通过该命令运行.编码:

Light Controller

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");

}

?>

Light ON 

Light OFF

解决方法:

如您所说,您正在像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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值