从PHP脚本执行Shell脚本
我想从PHP脚本执行系统上存在的Bash脚本。我的系统上有两个脚本。其中一个是称为client.php
at at
的PHP脚本/var/www/html
,另一个是称为testscript
at at 的Bash脚本/home/testuser
。
我的client.php脚本看起来像
<?php $message=shell_exec("/home/testuser/testscript 2>&1");
print_r($message);
?>
我的睾丸看起来像
#!/bin/bashecho "Testscript run succesful"
当我在终端上执行以下操作时
php client.php
我在终端上得到以下输出
Testscript run successful
但是当我在打开页面时
http://serverdomain/client.php
我得到以下输出
sh: /home/testuser/testscript: Permission denied
即使执行了chmod + x testscript,我仍然收到此错误。
我如何从浏览器中获取它?请帮忙。
回答:
我将在WWW文件夹下的某个目录下有一个名为scripts的目录,以便无法从Web上访问它,但可以通过PHP来访问它。
例如 /var/www/scripts/testscript
确保您的用户/组testscript
与您的Web文件相同。例如,如果您client.php
的所有者是apache:apache
,请使用将bash脚本更改为相同的用户/组chown
。您可以client.php
通过执行以下操作找出自己和Web文件的所有权ls
-al。
然后跑
<?php $message=shell_exec("/var/www/scripts/testscript 2>&1");
print_r($message);
?>
如果您确实想从Web服务器以root用户身份运行文件,则可以尝试以下二进制包装器。签出此解决方案以完成您想做的相同事情。
以上是 从PHP脚本执行Shell脚本 的全部内容, 来源链接: utcz.com/qa/427047.html