中,我發現我的error.log(/var/log/apache2/error.log)的意見建議後:
Traceback (most recent call last):
File "/var/www/html/nano.py", line 7, in <module>
GPIO.setup(17,GPIO.OUT)
RuntimeError: No access to /dev/mem. Try running as root!
我解決我的問題,加入須藤:
<?php
echo exec("sudo /usr/bin/python /var/www/html/nano.py");
?>
但我還是不明白。 當我從我的web服務器調用nano.py時,我需要將它作爲sudo運行,但是當我從終端運行nano.py(作爲pi用戶)時,我不必將其作爲sudo運行。 我以爲我在編輯sudoers時給了apache root權限。
任何人都可以解釋這一點? 這是安全嗎? (我的Apache服務器從我自己的wifi網絡,才能訪問現在)
我知道這個問題已經被問,並回答了很多次,但我已經嘗試每一個解決方案,我可以找到,但我現在還不能從我的PHP網頁執行我的script.py。
我的Apache服務器也工作正常(我可以顯示文本,如果我想)
nano.py腳本:
#!/usr/bin/env python
import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BCM)
GPIO.setwarnings(False)
GPIO.setup(17,GPIO.OUT)
print "LED on"
GPIO.output(17,GPIO.HIGH)
time.sleep(1)
print "LED off"
GPIO.output(17,GPIO.LOW)
我呼籲nano.py Python腳本位於: /var/www/html/nano.py(-rwxrwxrwx 1個PI www數據236 1月26日13:12 nano.py) 和 /家庭/pi/nano.py(-rwxr-XR-X 1屁屁225 1月26日13:19 nano.py) 腳本都是一樣的:
<?php
echo shell_exec("python /var/www/html/nano.py");
?>
我試過很多東西,但我可以」牛逼從我的PHP頁面執行nano.py:
- 嘗試了不同的路徑(/var/www/html/nano.py /home/pi/nano.py nano.py)
- 試過了shell_exec,EXEC
- 嘗試過不同的python路徑(python/usr/bin/python)
我試圖讓apache的sudo訪問:
www-data ALL=(ALL) NOPASSWD:ALL
我真的不知道我有什麼其他選擇, 所以我希望有人能幫助我。
看看[Raspberry Pi SE site](http://raspberrypi.stackexchange.com/) – wpercy