[英]Python, PHP: Controlling RPi GPIO from website on a separate server
[英]import RPi.GPIO as GPIO not working in python when called from php
我有与此问题相同的问题, 从PHP调用时python导入失败,但现在是我的另一个导入。
该脚本是从命令行( python uit.py
)运行的,而test.py
却说'hello'也可以运行,但是当从php调用uit.py
(下面的源代码)时,它不起作用。 我得到的只是返回码1,我尝试了exec(), passthru() and system(),
但它们都没有返回“ 1”以外的任何值,我对linux和python还是很陌生,所以我不知道如何将路径设置为直接导入而不是相对(如果有帮助)
#!/usr/bin/python
# Hello world python
import RPi.GPIO as GPIO
print "Start";
GPIO.setmode(GPIO.BOARD);
GPIO.setup(16, GPIO.OUT)
GPIO.output(16, True)
print "Licht uit";
编辑:我现在注意到的是,当从命令行执行脚本时,我必须对它进行sudo
,因为脚本说它想以root
身份运行(当我不以root身份运行它时,我说错了“可能运行作为根?
那可以是不工作的原因吗? 在运行用户PHP的情况下,是否从PHP调用了python脚本?
我确实使用sudo
执行了该语句(请参阅注释),但我也读到了也许php用户不允许sudo
吗?
我现在注意到的是,当从命令行执行脚本时,我必须对它进行sudo,因为脚本说它想以root身份运行(当我不以root身份运行时,我会报错,说“也许以root身份运行)。 ?”。
那可以是不工作的原因吗? 在运行用户PHP的情况下,是否从PHP调用了python脚本?
是的,那是你的问题。 Web服务器以www-data
而不是root身份运行。 (默认情况下,该用户甚至没有sudo访问权限。)如果检查Web服务器错误日志,则可能会看到“可能以root身份运行?”。 错误消息在那里。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.