用shell_exec从PHP文件中启动mjpg流。

问题描述 投票:0回答:2

我正试图从我的Raspberry Pi的PHP文件中启动mjpg进程。这是我在PHP文件中使用的代码。

<?php
//this execution does not work, nor does it echo anything if i try and echo it
$cmd = 'mjpg_streamer -i "/usr/local/lib/input_uvc.so -d /dev/video0 -y -r 640x480 -f 10" -o "/usr/local/lib/output_http.so -p 8090 -w /var/www/mjpg_streamer"';
shell_exec($cmd);
?>

<img src = "http://ip:8090/?action=stream" />

如果我直接从shell中执行该命令,该命令就可以工作,而且在这种情况下,流也可以工作,但我希望在我访问页面时启动该进程,但现在没有发生。

php video-streaming raspberry-pi2
2个回答
0
投票

错误在于 (几乎可以肯定) 由于一个基于权限的问题。

很可能当你执行 mjpg_streamer 库,您是以一个拥有 sudoer 权限之类的,谁能轻易执行这个。

你必须意识到 user 谁将提出执行请求 mjpg_streamer 的实例的同一个用户。Apache 处理请求。

在这种情况下,最简单的解决方法是登录到CLI,然后 su www-data (很可能是你的apache实例的所有者),然后检查你是否可以运行它。如果你得到一个 permission denied那么你就需要改变对该库的访问方式。改变库的所有权可能不是最好的选择,但你可以通过修改组来实现。

© www.soinside.com 2019 - 2024. All rights reserved.