Я работаю над проектом, в котором есть веб-сервер (который в данный момент работает на моем ноутбуке) и RaspberryPi. Я сделал простой сайт с HTML, PHP и Javascript, и у меня есть рабочая python программа на моем RaspberryPi. Я хочу запустить программу python, используя php, в настоящее время я использую эту команду.
exec('sudo python /var/www/LED-Ring/python/examples/LED-Ring.py');
Когда я запускаю команду непосредственно в терминале
sudo python /var/www/LED-Ring/python/examples/LED-Ring.py
это работает просто отлично.
Я уже добавил следующее
www-data ALL=NOPASSWD: ALL
в sudo visudo (я знаю, что это риск для безопасности, но сейчас мне все равно, я просто хочу заставить его работать)
что мне нужно на Pi, даже если веб-сервер работает на ноутбуке?
единственное, что нужно сделать raspi - это открыть браузер и go на веб-сайте (что он уже делает), а затем всякий раз, когда веб-сервер отправляет команду, сценарий python должен запускаться
проблема, вероятно, связана с разрешениями, потому что я могу запустить python скрипт с
"sudo python /var/www/LED-Ring/python/examples/LED-Ring.py"
, но я не могу запустить его с
"sudo -u www-data python /var/www/LED-Ring/python/examples/LED-Ring.py"
, когда я использую эту команду, я получаю
Не удалось создать устройство почтового ящика: Операция не разрешено
Файл "/ var / www/LED-Ring/python/examples/LED-Ring.py", строка 52, в module strip.begin
Файл "build / bdist. linux -armv7l / egg / neopixel.py", строка 106 в начале
RuntimeError: ws2811: ошибка инициализации с кодом -9 ( не удалось создать почтовое устройство)