栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

解决php在树莓派中无法调用python脚本的问题

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

解决php在树莓派中无法调用python脚本的问题

项目场景:

以树莓派为核心的一个可以通过访问公网域名查看实时监测数据的测温仪。
通过nginx将编辑好作为在线仪表盘的php网页发送至localhost:80端口,同时使用内网穿透与域名映射将端口转发至公网。
项目的重点是在php中实现对树莓派的命令操作,也就是通过php操作树莓派gpio,通过php运行python程序等。


问题描述

使用shell_exec()函数,命令树莓派执行python程序,获取其字符串类型的返回值,并赋值给将要在网页上显示的变量:




环境温度
测量温度

但测试发现,网页没有按照预期一般地显示数据。显然,shell_exce()并未起到作用。


原因分析:

将shell_exce()函数更换为system()函数、exce()函数,均为无显示。
初步推测是nginx权限不够,无法在php中调用涉及gpio操作的python脚本。
使用网传较广的两个方法给nginx加权限:
1、添加www-data用户的root权限:

2、将网页根目录设为777读写权限:

执行以上步骤后仍未能解决问题。


解决方案:

既然直接调用python脚本不起作用,那就隔山打牛,利用sh运行py文件。

新建sh文件,分别命名为dataread1.sh与dataread2.sh:

sudo python dataread1.py
sudo python dataread2.py

并将php部分修改为:



经测试,网页可正常显示数据。

由于root权限,该方法限仅出站流量使用。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/882466.html

Linux相关栏目本月热门文章

我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号