У меня есть скрипт на python для малины в /home/pi/Test.py, который можно вызвать из php-контроллера laravel.
На Raspberry установлен Raspian, Apache, PHP 7.3, Python
Я попробовал это через cmdline
python Test.py 4444> работает
через локальный php-сервер
php artisan serve
/ localhost: 8000 / setValue / 666> работает, returnvalue 0
Затем я развернул приложение в каталоге Apache2
/var/www/html/Project
Там я снова позвонил в Службу
localhost:80/Project/setValues/666 > nothing, returnvalue 1
вот мой код
chdir('/home/pi');
$cmd('python Test.py ' . $param);
exec($cmd,$out,$status);
return $status
При выполнении этого с сервера отладки php возвращается «0», из apache «1»
Я попробовал
exec ()
shell_exec()
passthrough()
Все то же самое - работает с локального сервера, а не с Apache.
Я изменил владельца на www-data и изменил права на 775 в обоихСценарий Python и проект laravel, я также добавил www-данные как sudoer, но ничего не получилось.
Я думаю, что это должно что-то делать с правами на исполняемый файл, но что еще делать?
РЕДАКТИРОВАТЬ: Iнашел заметку в Apache error.log
GPIO.setup (DATA, GPIO.OUT) RuntimeError: не запускаетсяНа RPi!
кажется, что www-данные не могут получить доступ к настройкам GPIO, хотя пользователь «pi» может, что означает - как включить www-data, чтобы иметь те же права пользователя »пи "?