如何通过php页面执行shell脚本?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何通过php页面执行shell脚本?相关的知识,希望对你有一定的参考价值。

比如linux下有一个a.sh脚本内容为:
# !/bin/sh
echo abc > 1.txt

现在如何编写一个php,能够在浏览器上访问一下。然后linux下就会生成这个1.txt文件。

我这么写了一个1.php程序:
<?php
exec("a.sh");
?>
在linux下 php 1.php
执行后可以生成1.txt

但在浏览器上访问1.php 不会生成。请问怎么实现。我想通过网页访问触发shell脚本来运行。

参考技术A exec里面,a.bash前面有sh这个bin文件么,就把bin文件路劲加在a.sh前。try下追问

我试了一下试可以调用的。但是无法创建文件,我吧exec函数换成了system函数。
在a.sh中加上了一行 echo 123.
123可以打印出来。但1.txt创建不了。
怎么解决呢。多谢!

本回答被提问者采纳
参考技术B 如果php允许那么大的权限,可以用
exec
函数,
不过这样做很危险。
换个思考方式,
可以php向某个文件写入一个指定数据,
shell脚本定时监测这个文件,然后判断内容,再执行指定脚本

php如何执行shell脚本

我现在在php的页面做了2个按钮,希望点击不同的按钮,执行不同的脚本,但我试过好几个函数都是不成功,请问需要怎么修改?代码如下<?phpif($_POST['Submit3']) shell_exec("./web_shell/reload.sh"); if($_POST['Submit4']) system( "./web_shell/reload.sh"); ?><form name="form3" method="post" action=""> <label> <input name="Submit3" type="submit" id="Submit3" value="刷新解析" onclick="return confirm('域名刷新需要3分钟,请3分钟以后查看')"> </label> <label> <input name="Submit4" type="submit" id="Submit4" value="刷新同步" onclick="return confirm('刷新同步需要3分钟,请3分钟以后查看')"> </label></form>

参考技术A 这些shell命令一般服务商是不允许运行的,要不然服务器很快就让攻击掉了

以上是关于如何通过php页面执行shell脚本?的主要内容,如果未能解决你的问题,请参考以下文章

无法在 PHP 页面创建的 shell 脚本中执行 sqlplus 命令

PHP 使用curl 执行远程服务器的一个shell脚本

PHP shell_exec 等待脚本完成? [复制]

php脚本等待shell脚本执行完成

如何让php执行shell

Linux系列教程(二十)——Linux的shell概述以及如何执行脚本