如何在PHP中执行shell脚本?

2022-08-30 17:13:55

我在/var/www/myscript中有一个脚本.sh它为我的项目创建文件夹并运行命令。我需要通过在浏览器的PHP文件中调用它来执行此脚本(即Localhost/test.php)。我尝试使用函数,但这些不起作用。我在终端中运行了我的shell脚本,它工作了。我还错过了什么?svn updateshell_exec()exec()su www-data && ./myscript.sh

<?php
$output = shell_exec("./myscript.sh");
?>

2011 年 5 月 4 日更新:

我添加到/etc/sudoers,它有效,但这非常不安全。有没有另一种方法可以做到这一点?www-data ALL=(ALL) NOPASSWD:ALL


答案 1

几种可能性:

  • 您已启用安全模式。这样,只有 工作,然后仅在可执行文件上工作 safe_mode_exec_direxec()
  • exec并在 php 中被禁用.inishell_exec
  • 可执行文件的路径错误。如果脚本与 php 文件位于同一目录中,请尝试exec(dirname(__FILE__) . '/myscript.sh');

答案 2

您可能已禁用 exec 权限,大多数 LAMP 包都禁用了这些权限。检查你的 php.ini是否有此行:

disable_functions = exec

并删除exec,shell_exec条目(如果有)。

祝你好运!


推荐