У меня есть скрипт Python на моем RPi. чтобы выполнить этот сценарий с моим приложением, я настроил сервер Apache2 на RPi.
С помощью URL-адреса я могу выполнить сценарий php, который затем выполняет сценарий Python.
URL: "http://raspberrypi/poweroff.php"
Python power_off.py
#!usr/bin/env/python
import RPi.GPIO as GPIO
GPIO.setmode(GPIO.BCM)
GPIO.setwarnings(False)
GPIO.setup(12,GPIO.OUT)
GPIO.output(12,GPIO.LOW)
print("sucesfully executed off")
php - poweroff.php
<?php
$command = escapeshellcmd('python /home/pi/App/power_off.py');
$output = shell_exec($command);
echo $output;
?>
Сервер Apache 2 выдает мне это сообщение об ошибке в файле error.log:
Traceback (most recent call last):
File "/home/pi/App/power_off.py", line 5, in <module>
GPIO.setup(12,GPIO.OUT)
RuntimeError: No access to /dev/mem. Try running as root!
Если я не выполняю сценарий php через URL, а непосредственно в редакторе RPi,все работает, как задумано.
Как запустить скрипт Python от имени пользователя root или мне нужно предоставить права root для скрипта php? Если да, то как мне это сделать?