您的位置:

从php脚本执行shell脚本,如何在命令下运行php脚本写出两种方式

本文目录一览:

php如何执行shell脚本

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

如何将PHP作为Shell脚本语言使用

我们都知道,PHP是一种非常好的动态网页开发语言(速度飞快,开发周期短……)。但是只有很少数的人意识到PHP也可以很好的作为编写Shell脚本的语言,当PHP作为编写Shell脚本的语言时,他并没有Perl或者Bash那么强大,但是他却有着很好的优势,特别是对于我这种熟悉PHP但是不怎么熟悉Perl的人。

要使用PHP作为Shell脚本语言,你必须将PHP作为二进制的CGI编译,而不是Apache模式;编译成为二进制CGI模式运行的PHP有一些安全性的问题,关于解决的方法可以参见PHP手册()。

一开始你可能会对于编写Shell脚本感到不适应,但是会慢慢好起来的:将PHP作为一般的动态网页编写语言和作为Shell脚本语言的唯一不同就在于一个Shell脚本需要在第一行生命解释本脚本的程序路径:

#!/usr/local/bin/php -q

我们在PHP执行文件后面加入了参数“-1”,这样子PHP就不会输出HTTP Header(如果仍需要作为Web的动态网页,那么你需要自己使用header函数输出HTTP Header)。当然,在Shell脚本的里面你还是需要使用PHP的开始和结束标记:

现在让我们看一个例子,以便于更好的了解用PHP作为Shell脚本语言的使用:

#!/usr/local/bin/php -q

print("Hello, world!\n");

?

上面这个程序会简单的输出“Hello, world!”到显示器上。

一、传递Shell脚本运行参数给PHP:

作为一个Shell脚本,经常会在运行程序时候加入一些参数,PHP作为Shell脚本时有一个内嵌的数组“$argv”,使用“$argv”数组可以很方便的读取Shell脚本运行时候的参数(“$argv[1]”对应的是第一个参数,“$argv[2]”对应的是第二个参数,依此类推)。比如下面这个程序:

#!/usr/local/bin/php -q

$first_name = $argv[1];

$last_name = $argv[2];

printf("Hello, %s %s! How are you today?\n", $first_name, $last_name);

? 具体详细的你可以向我一样在后盾人多看看就明白了,希望能帮到你,努力(๑؂๑)

想让PHP执行shell脚本,如何安装apache和PHP?

一、安装PHP

-------------------------------------------------------

第1步:下载

下载PHP安装程序,并解压缩。(下载页面为 downloads.php,下载地址为)当前最新版本是php-5.2.1。

第2步:安装

把下载下来的PHP安装包解压到你的C盘根目录(这里选择C根目录盘是为了以后修改调试方便用,你也可以选择不同的目录),解压后应该能得到一个类似于"php-5.1.2-Win32"的目录,把目录名称改成"PHP"。

第3步:添加php.ini到系统目录

打开刚才解压后生成的PHP目录,找到PHP配置文件“php.ini-dist”,把它改名为“php.ini”,然后复制到系统目录中。如果操作系统安装在C盘,那么系统目录在 Windows XP下就是"C:\windows",在Windows 2000下是"C:\winnt")。

第4步:设置环境变量

设置以下环境变量:PHP_HOME=C:\PHP;C:\PHP\ext,保存退出后。

第5步:修改PHP配置文件

修改php.ini中的register_globals=on,这样在取得请求表单时可以直接使用表单名称$name,而不用使用$_REQUEST["name"]。

二、配置Apache支持PHP

-------------------------------------------------------

第1步:打开Apache 2 的配置文件

打开Apache 2的配置文件“http.conf”,可以通过“开始-程序-Apache-configure Apache server-edit the Apache httpd.conf configuration file”打开该配置文件。默认情况下,该文件存放在C:\Program Files\Apache Group\Apache2\conf\httpd.conf,我们也可以通过“我的电脑”直接打开该文件进行编辑。

第2步:配置Apache加载PHP模块

在“http.conf”文件中找到LoadModule字样的信息,然后在LoadModule段信息的最下方添加一行信息:

LoadModule php5_module C:/PHP/php5apache2_2.dll

这里要解释一下,“php5_module”是模块的名称,后面跟的路径则随PHP安装目录而变,这三个字串之间是用空格分隔的。

第3步:使Apache解析PHP文件

接下来再查找addtype字样的信息,在addtype信息段的最下方添加如下几行信息:

AddType application/x-httpd-php .php

AddType application/x-httpd-php .php3

AddType application/x-httpd-php .php4

AddType application/x-httpd-php .php5

这时就可以在Apache下的htdocs目录中创建一个php测试文件:

?

phpinfo();

?

三、配置PHP支持MySQL

-------------------------------------------------------

第1步:设置 php.ini中的extension_dir = "C:/php/ext"。

第2步:将“C:\PHP\libmysql.dll”复制到“C:\WINDOWS\system32”。

第3步:将“C:\PHP\ext\php_mysql.dll”复制到“C:\WINDOWS\system32”。

第4步:修改C:\WINDOWS\下的php.ini文件,去掉extension=php_mysql.dll之前的“;”。

这样在PHP的程序里就可以使用MySQL扩展库的函数了,即PHP+MySQL的应用程序才能够正常运行。

解析php中如何直接执行SHELL

本篇文章是对php中直接执行SHELL的方法进行了详细的分析介绍,需要的朋友参考下 $message=shell_exec("sudo /usr/local/webserver/nginx/sbin/nginx -t 21"); echo "运行结果:".$message.""; 上面的语句可以直接在PHP中执行SHELL语句 如果有返回值 那么其中的 21 是必须的 他会重定向输出strerr 转到strout 输出!否则返回结果会为空!

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

exec里面,a.bash前面有sh这个bin文件么,就把bin文件路劲加在a.sh前。try下

如何让php执行shell

php给我们提供了system(),exec(),passthru()这三个函数来调用外部的命令.

虽然这三个命令都能执行linux系统的shell命令,但是其实他们是有区别的:

system() 输出并返回最后一行shell结果。

exec() 不输出结果,返回最后一行shell结果,所有结果可以保存到一个返回的数组里面。

passthru() 只调用命令,把命令的运行结果原样地直接输出到标准输出设备上。

相同点:都可以获得命令执行的状态码

例子:system("/usr/local/bin/webalizer/webalizer");