PHP exec&;shell_exec-shell脚本执行

PHP exec&;shell_exec-shell脚本执行,php,linux,bash,shell,nginx,Php,Linux,Bash,Shell,Nginx,我无法运行php脚本,我需要使用这些脚本启动和停止在本地计算机上运行的网络摄像头服务。我在日志中找不到任何东西来说明脚本为什么不工作 我承认在PHP方面有严重缺陷,尤其是服务器端脚本 该环境是Debian Jesse,运行Nginx,安装了所有必需的SSH和PHP模块 我已将www数据添加到sudoers文件中,其中包含: www-data ALL=(ALL) NOPASSWD: /var/www/html/start_webcam.sh 在以下位置为www数据启用$PATH环境:

我无法运行php脚本,我需要使用这些脚本启动和停止在本地计算机上运行的网络摄像头服务。我在日志中找不到任何东西来说明脚本为什么不工作

我承认在PHP方面有严重缺陷,尤其是服务器端脚本

该环境是Debian Jesse,运行Nginx,安装了所有必需的SSH和PHP模块

我已将www数据添加到sudoers文件中,其中包含:

    www-data ALL=(ALL) NOPASSWD: /var/www/html/start_webcam.sh
在以下位置为www数据启用$PATH环境:

    /etc/php5/fpm/pool.d/www.conf
shell脚本驻留在…/html目录中,从终端运行,没有任何问题

以下是php和shell脚本的代码:

启动\u webcam.php:

    <?php
    echo exec('sudo bash /var/www/html/aspirebox/start_webcam.sh 2>&1, $output');
    print_r($output);
    ?>
提前感谢这里有线索的人。经过两天的努力,我确信我没有

根据需要,您应该如下更改代码:

<?php
$output = exec('/var/www/html/aspirebox/start_webcam.sh 2>&1 ');
print_r($output);
?>

非常感谢,这很有效

我的工作是直接获取shell脚本运行所在目录的路径,以及运行“服务”的正确路径

我现在要做的就是弄清楚为什么我会得到“启动motion.service失败:拒绝访问”

我已经给了www数据权限,可以在没有密码的情况下在sudoers上运行脚本,必须继续挖掘

再次感谢

<?php
$output = exec('/var/www/html/aspirebox/start_webcam.sh 2>&1 ');
print_r($output);
?>
chmod a+x /var/www/html/aspirebox/start_webcam.sh