以root权限运行python程序_zpblog-树莓派系列(八):PHP之以root权限...
携手共游人间
以root权限运⾏python程序_zpblog-树莓派系列(⼋):PHP
之以root权限。。。
公办学校和民办学校是什么意思上篇开门神器,我最终⽤的是树莓派做控制器,因为它本⾝就⼀直开着,不让它多⼲些事岂不浪费(是不是有种⿊⼼⽼板的节奏)。我通过连接树莓派和L298N来实现控制电机,程序上使⽤的Python操作端⼝(需要安装Python GPIO库),写了个脚本,然后再通过php调⽤这个脚本实现开门。
问题:
在树莓派上单独执⾏这个Python脚本是能开门的,但通过php调⽤就不⾏。
但⽤Python写个简单的建⽬录脚本,php调⽤时可以执⾏的。
支付宝人工客服综上分析Python GPIO 库是需要root权限的。
解决:
直接赋予Apache或nginx ROOT权限(感觉不安全 下下策)
按⽹上所说⽅法⽤C程序更换⽤户UID…编译好执⾏(失败,还是单独执⾏可以调⽤不可以)投资理财专业
变通,让这个脚本主动轮询某个⽂件内值,php控制这个⽂件(⾄少能⽤起来,但总感觉这个⽅法不怎么好)
修改/etc/sudoers⽂件,赋予特定⽤户特定权限(上上策)
#vi  /etc/sudoers 插⼊下列⼀⾏
www-data ALL=(ALL) NOPASSWD: /usr/bin/python opendoor.py#php⾥调⽤
system("sudo /usr/bin/python opendoor.py")高考网上填报志愿
换防盗门锁
附:
树莓派控制电机代码 opendoor.py :import RPi.GPIO as gpio
import time
gpio.setmode(gpio.BOARD)
gpio.setup(29, gpio.OUT)
gpio.setup(31, gpio.OUT)
gpio.output(29, True)
gpio.output(31, False)
time.sleep(2.5)
gpio.output(31, False)
gpio.output(29, False)
time.sleep(1)
gpio.output(31, True)
gpio.output(29, False)
time.sleep(0.7)
gpio.cleanup()

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。