从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
<?php
$result = shell_exec('/path/to/sample.sh');
echo $result;
?>
当我们要求我们的PHP脚本在浏览器内,我们将得到下面的输出:
从PHP运行shell命令安全隐患
正如你看到的上面,它是很容易运行一个shell脚本或PHP中执行shell命令。小心遵循正确的编码实践,使你的Web服务器仍然是安全的。你想的最后一件事是攻击者能够从你的应用程序运行shell命令。不要做一些愚蠢的像传递给被执行的命令通过POST或GET方法。
做的最好的事情是硬编码的shell命令或将要运行脚本,然后保护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"
chmod a+x sample.sh
<?php
$result = shell_exec('/path/to/sample.sh');
echo $result;
?>
当我们要求我们的PHP脚本在浏览器内,我们将得到下面的输出:
Tutorial Arena rocks
从PHP运行shell命令安全隐患
正如你看到的上面,它是很容易运行一个shell脚本或PHP中执行shell命令。小心遵循正确的编码实践,使你的Web服务器仍然是安全的。你想的最后一件事是攻击者能够从你的应用程序运行shell命令。不要做一些愚蠢的像传递给被执行的命令通过POST或GET方法。
做的最好的事情是硬编码的shell命令或将要运行脚本,然后保护PHP脚本本身,这通过把它由基本身份验证保护的目录下运行这些命令,也是推荐的做法。