如何从php / html执行shell脚本?

时间:2016-05-03 22:48:43

标签: php html linux bash shell

如何从PHP或HTML执行shell脚本文件。 sh文件位于localhost目录之外,还有许多其他sh文件由第一个sh文件启动。

说本地主机目录是 /opt/lampp/htdocs/xampp/test  并且sh文件的位置是/home/user/scripts/run.sh

run.sh将从/opt/lampp/htdocs/xampp/test/upload上传的一些文件复制到/home/user/scripts/file并执行其他一些.sh文件。

我尝试了很多PHP方法但没有成功 像

<?php $output = shell_exec('sh /home/user/script/run.sh'); echo "$output"; ?>

<?php
shell_exec("/home/user/server/run.sh");
?>

但没有运气。 我无法将sh文件放在CGI目录中,因为它依赖于其他脚本和文件。如何从当前显示的目录运行脚本。

1 个答案:

答案 0 :(得分:0)

最有可能的情况是,您没有将任何环境变量设置为从php执行脚本的用户。它可能是用户名组apache:apache。您应该为PATH设置一些环境变量,以便它知道可执行文件的位置。您也可以将sh指向/usr/bin/sh

<?php $output = shell_exec('/usr/bin/sh /home/user/script/run.sh'); echo "$output"; ?>

或登录服务器并echo $PATH。然后将其粘贴到putenv函数中:

putenv('PATH={your_paths}');
$output = shell_exec('sh /home/user/script/run.sh'); echo "$output";