I have test.py
file, and it contains GPIO module commands:
#!/usr/bin/python
import RPi.GPIO as G
import time
G.setmode(G.BCM)
G.setup(18, G.OUT)
G.output(18, True)
time.sleep(3)
G.output(18, False)
G.cleanup()
I want to call this python script for execution when I press button on my web page. My index.html
contains javascript to call .py
for execution:
<html>
<head>
<script type="text/javascript">
function func()
{
document.location="cgi-bin/test.py";
}
</script>
</head>
<body>
<div style="text-align:center">
<h1>Raspberry Pi GPIO</h1>
<form>
<input type="button" value="call .py" onclick="func()">
</form>
</div>
</body>
</html>
Looks like problems are permissions, so when I click on the button, apache2 retrieves code 500 - Internal error. Execution of test.py
from bash with sudo
command works fine.
Is there any way to set these permissions, so the apache2 can successfully call python script that contains GPIO commands? Thanks
-
See also: raspberrypi.stackexchange.com/a/3499/5538goldilocks– goldilocks2015年09月18日 11:02:26 +00:00Commented Sep 18, 2015 at 11:02
2 Answers 2
Yes, there are numerous ways. If you google I'm sure you will find them.
However I don't think it'll be a worthwhile effort - if you wait a week or so there should be an update to the RPi.GPIO module to allow its use without requiring root privileges.
There are other Python modules.
My pigpio Python does not require Python to be run as root (it sends requests to a daemon which has the needed privileges).
#!/usr/bin/env python
import time
import pigpio # abyz.me.uk/rpi/pigpio/python.html
LED=18
pi = pigpio.pi() # Connect to local Pi.
pi.set_mode(LED, pigpio.OUTPUT)
for i in range(10):
pi.write(LED, 1)
time.sleep(0.2)
pi.write(LED, 0)
time.sleep(0.2)
pi.stop() # Disconnect from local Pi.
You need to give everyone the right to execute
sudo chmod 750 /path/to/cgi-bin/test.py
-
This command does not give everyone the right to execute. Only to group members and the owner.techraf– techraf2017年01月04日 07:50:07 +00:00Commented Jan 4, 2017 at 7:50
Explore related questions
See similar questions with these tags.