Bash 脚本通过网页拍照
Bash script though webpage to take picture
所以我正在尝试使用 PHP 通过网页 运行 一个 bash 脚本(如果相关的话,在 raspberry pi 上)。普通命令工作正常,如 'ls' 等。但是,当尝试从连接到 Pi 的网络摄像头拍照时,使用命令:
'fswebcam image.jpg' 根本不起作用。
我正在努力确定问题所在。会不会跟权限有关?
直接通过终端拍照就可以了。
编辑:
很抱歉一开始没有包含这些信息,但我对网络的所有方面都是新手...但我使用的是 LEMP 堆栈,所以我没有 Apache 运行ning 但使用Nginx
PHP 使用 apache 用户权限运行。
您的 apache 用户是否有启动 fswebcam 的权限?
ll $(which fswebcam)
正如您所怀疑的,我认为您在 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-data 将被添加到群组视频中(可以访问 /dev/vchiq)。然后你必须重新启动你的 apache 服务器,以便它重新读取组文件并得到更改的通知。注意:如果你必须从网络访问它们,你会添加 www-data 到 gpio 组。
因此,根据我收到的错误消息(上面发布的),我意识到 /dev/video0 需要其他用户的权限。所以我的解决方案就是:
chmod 777 /dev/video0
这可能是一个非常肮脏的解决方案,但仍然有效
所以我正在尝试使用 PHP 通过网页 运行 一个 bash 脚本(如果相关的话,在 raspberry pi 上)。普通命令工作正常,如 'ls' 等。但是,当尝试从连接到 Pi 的网络摄像头拍照时,使用命令: 'fswebcam image.jpg' 根本不起作用。
我正在努力确定问题所在。会不会跟权限有关?
直接通过终端拍照就可以了。
编辑:
很抱歉一开始没有包含这些信息,但我对网络的所有方面都是新手...但我使用的是 LEMP 堆栈,所以我没有 Apache 运行ning 但使用Nginx
PHP 使用 apache 用户权限运行。
您的 apache 用户是否有启动 fswebcam 的权限?
ll $(which fswebcam)
正如您所怀疑的,我认为您在 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-data 将被添加到群组视频中(可以访问 /dev/vchiq)。然后你必须重新启动你的 apache 服务器,以便它重新读取组文件并得到更改的通知。注意:如果你必须从网络访问它们,你会添加 www-data 到 gpio 组。
因此,根据我收到的错误消息(上面发布的),我意识到 /dev/video0 需要其他用户的权限。所以我的解决方案就是:
chmod 777 /dev/video0
这可能是一个非常肮脏的解决方案,但仍然有效