从 php 运行 bash 脚本

从 php 运行 bash 脚本

我想在 php 网页中运行一个 shell 脚本来检查我的系统 (Ubuntu 12.04) 上运行的一些进程。我在 Google 上找到了相关内容,shell_exec()但在加载 php 时我无法运行该脚本。

这是我使用的 php 代码。

$output = shell_exec('./dirlist.bash');
echo "<pre>$output</pre>";

我得到的 html 片段

<pre></pre>

也尝试过$output = shell_exec('sudo -u www-data ./dirlist.bash');

目录列表ls -l (仅用于测试脚本和 shell_exec)

我认为这不是权限问题。运行目录授予所有用户的写入和执行权限(这里我应该小心一点)。

drwxrwxrwx  4 meteo meteo 4096 mar 11 15:20 RAMS

已将用户 www-data 添加到 sudoers 文件中,以备不时之需

www-data ALL = (meteo) NOPASSWD: /home/meteo/www/RAMS/dirlist.bash

提前致谢

答案1

您可能需要在调用脚本之前将 chdir 切换到正确的目录。这样,您就可以在调用 shell 命令之前确保脚本“在”哪个目录中。

$old_path = getcwd();
chdir('/my/path/');
$output = shell_exec('./script.sh var1 var2');
chdir($old_path);
echo "<pre>$output</pre>";

相关内容