【发布时间】:2012-03-13 16:18:39
【问题描述】:
我正在使用 opencv 在我的 arch linux 上启动摄像头。当我实际从服务器本身的命令行执行此操作时,它会启动并且运行良好。
我想使用 php 初始化它。我尝试使用 PHP 中的shell_exec 来实现。
我的 PHP 文件如下所示:
<?php
$output=shell_exec('LD_LIBRARY_PATH=usr/local/lib ./a.out 0 2>&1 1>/dev/null');
echo $output;
?>
它给出了这个输出:
ERROR: capture is NULL
我通过我的 windows web 浏览器作为客户端运行它,opencv 和相关文件位于我的 arch linux 服务器上。
当我从 Windows 网络浏览器运行这个 php 文件时,我想启动相机并捕捉图像,但执行时会抛出上述错误。
【问题讨论】:
-
您将所有输出重定向到 /dev/null,因此不会返回任何内容。
-
好的...现在我删除了 /dev/null 部分...错误消失了....bt 仍然没有在服务器上启动相机(arch)...。
-
网络服务器用户是否有权执行该文件?
-
是....服务器用户可以执行该操作....我通过服务器的终端执行该操作..从终端执行 LD_LIBRARY_PATH=usr/local/lib ./a.out 0 ...并且效果很好...相机被初始化并捕获了图像...也只有一个用户...而且它的管理员有完整的执行权限...问题是当我尝试使用 php shell_exec 命令执行它..在客户端上运行后,它应该在服务器上启动摄像头......这就是我期望使用 php 做的事情..
-
此外,现在我已经为 php 文件赋予了 chmod 777 权限...只是认为它可能有权限问题...bt 没用....卡住了..
标签: php shell opencv archlinux