首页 文章

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

提问于
浏览
1

我正在尝试使用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 在Web浏览器上运行它时,我只是输出"echo"部分 .

我已经尝试过:

  • 从php.ini中的禁用函数中删除'exec()';

  • 为此路径中从"/"到localhost文件夹的每个文件夹中的每个人授予权限;

有什么想法吗?

2 回答

  • 0

    简单的解决方案: exec() 返回一个字符串,但您还必须将其输出给用户:

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

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

    • 更改后您没有重新启动webserver服务

    • 你的某些其他声明更具限制性......也许 ini_set 在你的php文件中 .

    提醒一下,确保你在php.ini文件上做得很好,检查一下这种语句:

    disable_functions=exec,passthru,shell_exec
    

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

相关问题