我想在 php 网页中运行一个 shell 脚本来检查我的系统(Ubuntu 12.04)上运行的一些进程。谷歌搜索我找到了,shell_exec()
但在加载 php 时我无法运行脚本。
这是我使用的php代码。
$output = shell_exec('./dirlist.bash');
echo "<pre>$output</pre>";
Run Code Online (Sandbox Code Playgroud)
和我得到的那段 html
<pre></pre>
Run Code Online (Sandbox Code Playgroud)
也试过 $output = shell_exec('sudo -u www-data ./dirlist.bash');
dirlist.bash执行ls -l (仅用于测试脚本和 shell_exec)
我认为这不是权限问题。运行目录为所有用户授予写入和执行权限(我在这里应该小心)。
drwxrwxrwx 4 meteo meteo 4096 mar 11 15:20 RAMS
Run Code Online (Sandbox Code Playgroud)
用户 www-data 已添加到 sudoers 文件中以备不时之需
www-data ALL = (meteo) NOPASSWD: /home/meteo/www/RAMS/dirlist.bash
Run Code Online (Sandbox Code Playgroud)
提前致谢
在调用脚本之前,您可能需要 chdir 到正确的目录。通过这种方式,您可以在调用 shell 命令之前确保脚本“位于”哪个目录中。
$old_path = getcwd();
chdir('/my/path/');
$output = shell_exec('./script.sh var1 var2');
chdir($old_path);
echo "<pre>$output</pre>";
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
57069 次 |
最近记录: |