Выполнить скрипт Python через Url от имени пользователя root - PullRequest
0 голосов
/ 12 октября 2019

У меня есть скрипт 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? Если да, то как мне это сделать?

...