运行shell脚本的php上的exec()问题

时间:2017-05-05 09:28:12

标签: php bash apache shell

我正在尝试使用php脚本来执行shell脚本。但是我显然在Web服务器上遇到了一些问题。

我有一个名为switch_audio.sh的bash脚本。它基本上改变了系统的有效音频输出。

我还有一个运行以下代码的script.php:

<?php
    echo "It's working";
    exec("/var/www/html/switch_audio.sh");
?>

当我执行php script.php时,它工作正常。但是,当我尝试在localhost/script.php的网络浏览器上运行它时,我只是输出“echo”部分。

我已经尝试过:

  1. 从php.ini中的禁用函数中删除'exec()';
  2. 为此路径中的每个文件夹中的每个人提供从“/”到localhost文件夹的权限;
  3. 有什么想法吗?

1 个答案:

答案 0 :(得分:0)

你已经说过你在你的php.ini配置上允许了shell功能,但它似乎还没有工作......所以也许吧:

  • 您未在更改后重新启动网络服务器服务
  • 你的某些其他声明更具限制性......在你的php文件中可能是ini_set

提醒一下,请确保您在php.ini文件中表现良好,请检查此类声明:

disable_functions=exec,passthru,shell_exec

也许你可以尝试代替exec其他类似的PHP函数,如shell_exec来检查它是否有效。或者可能正在工作而没有展示任何东西。