在php中运行shell脚本

    从PHP运行一个shell脚本或命令给系统管理员带来很多便利。我们可以通过click页面,执行php从而减少重复的代码录入,提高开发效率
通过正确设置,shell脚本和命令可以通过简单地要求在WEB网页上运行。网站的服务器会接收请求,然后将它传递给PHP解释器。通过使用特殊的PHP函数,我们就能够使PHP运行shell脚本或我们输入的命令。


    以管理员的身份将不再需要登录才能通过SSH或其他方式的服务器,以便在服务器上运行shell脚本和命令这种技术是非常有用的。下面的PHP演示了正确的方法在PHP中运行shell脚本和命令。 


如何在PHP中运行shell命令 


    PHP的了shell_exec命令允许我们在PHP中执行shell命令。这是我们将使用运行命令和shell脚本的功能。例如,如果我们想输出当前目录的目录列表,我们可以使用下面的代码: 


    <?php
 
// for Linux
$result = shell_exec('ls -altp');
 
// for Windows
// $result = shell_exec('dir');
 
echo "<pre>$result</pre>";
 
    ?>


使用HTML标签前保存我们接收输出的格式。其结果将是一个目录列表,我们会看到,如果我们跑在终端相同的命令: 


  ddrwxr-xr-x  6 root root 4096 Jan 27 10:51 ./
  drwxr-xr-x 29 root root 4096 Feb 25 13:25 ../
  -rwx------  4 root root 8900 Aug 21 23:50 backup-script.sh
  drwxr-xr-x  8 root root 4096 Dec 20 13:56 temp/


如何在PHP中运行一个shell脚本?
    从PHP运行shell脚本的原理是一样的。我们首先创建一个shell脚本,并在某处保存在我们的服务器上。比方说,我们的shell脚本位于/path/to/sample.sh并包含: 


    #!/bin/bash

    echo "Tutorial Arena rocks"


我们首先需要通过运行以下命令来使我们的shell脚本可执行: 


    chmod a+x sample.sh


然后,我们用我们的PHP脚本来执行我们刚刚创建的shell脚本。这是一个good idea,指定如下所示的shell脚本的绝对路径: 


    <?php
 
$result = shell_exec('/path/to/sample.sh');
echo $result;
 
    ?>
    当我们要求我们的PHP脚本在浏览器内,我们将得到下面的输出: 


Tutorial Arena rocks 


此时,我们已经成功地从PHP运行一个shell脚本。 


    从PHP运行shell命令安全隐患 


    正如你看到的上面,它是很容易运行一个shell脚本或PHP中执行shell命令。小心遵循正确的编码实践,使你的Web服务器仍然是安全的。你想的最后一件事是攻击者能够从你的应用程序运行shell命令。不要做一些愚蠢的像传递给被执行的命令通过POST或GET方法。 


    做的最好的事情是硬编码的shell命令或将要运行脚本,然后保护PHP脚本本身,这通过把它由基本身份验证保护的目录下运行这些命令,也是推荐的做法。
相关推荐
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页