Скрипт Bash через веб-страницу для съемки

Поэтому я пытаюсь запустить скрипт bash через веб-страницу с помощью PHP (на Raspberry Pi, если это актуально). Обычные команды работают нормально, как ‘ls’ и т. Д. Однако при попытке сделать снимок с веб-камеры, подключенной к Pi, используйте команду:
‘fswebcam image.jpg’ это не работает вообще.

Я изо всех сил пытаюсь определить проблему. это может быть что-то делать с разрешениями?

Фотосъемка напрямую через терминал работает нормально.

РЕДАКТИРОВАТЬ:

Извините, что не включил эту информацию в начале, но я довольно новичок во всем Интернете … Но я использую стек LEMP, поэтому у меня не работает Apache, но я использую Nginx

2

Решение

Как вы и подозревали, я также думаю, что вы столкнулись с проблемой разрешения вашего оборудования на Raspberry Pi. Поскольку тема смешивает raspberry / hardware / linux / web, вы читаете множество дерьмовых решений в Интернете; они часто доставляют root права везде!

В вашем случае я думаю, что ваш лог-файл apache (/var/log/apache2/error.log ?) будет содержать сообщение об ошибке, вроде:

can not access /dev/vchiq

На данный момент ваш пользователь apache (www-data) не может получить к нему доступ:

pi$ ls -l /dev/vchiq
crw-rw---T 1 root video 248, 0 Jan  1  1970 /dev/vchiq

Введите эти команды:

sudo usermod -a -G video www-data
sudo /etc/init.d/apache2 restart

Это означает, что пользовательские www-данные будут добавлены в групповое видео (которое имеет доступ к / dev / vchiq). Затем вам нужно перезапустить сервер apache, чтобы он перечитал файл группы и получил информацию об изменениях. Примечание: вы бы добавили www-данные в группу gpio, если бы вам пришлось обращаться к ним через Интернет.

2

Другие решения

PHP работает с правами доступа Apache.

У вашего пользователя apache есть права на запуск fswebcam?

ll $(which fswebcam)
0

Таким образом, из сообщения об ошибке, которое я получил (опубликовано выше), я понял, что / dev / video0 нужны разрешения для других пользователей. поэтому мое решение было просто пойти:

chmod 777 /dev/video0

Это, вероятно, довольно грязное решение, но, тем не менее, работает

0
По вопросам рекламы [email protected]