本文目录一览:
- 解析php中如何直接执行SHELL
- 如何让php执行shell
- 如何使用PHP调用SHELL命令?调用后并且执行SHELL命令
- ubuntu12.04 怎么用php调用shell
- 想让PHP执行shell脚本,如何安装apache和PHP?
解析php中如何直接执行SHELL
本篇文章是对php中直接执行SHELL的方法进行了详细的分析介绍,需要的朋友参考下
$message = shell_exec("sudo /usr/local/webserver/nginx/sbin/nginx -t 21");
echo "运行结果:".$message."";
上面的语句可以直接在PHP中执行SHELL语句。如果有返回值,那么其中的 21
是必须的,它会重定向输出 stderr
转到 stdout
输出!否则返回结果会为空!
如何让php执行shell
PHP给我们提供了 system()
、exec()
、passthru()
这三个函数来调用外部的命令。
虽然这三个命令都能执行Linux系统的shell命令,但是其实它们是有区别的:
system()
:输出并返回最后一行shell结果。exec()
:不输出结果,返回最后一行shell结果,所有结果可以保存到一个返回的数组里面。passthru()
:只调用命令,把命令的运行结果原样地直接输出到标准输出设备上。 相同点:都可以获得命令执行的状态码。 例子:
system("/usr/local/bin/webalizer/webalizer");
如何使用PHP调用SHELL命令?调用后并且执行SHELL命令
解除 system()
、passthru()
、exec()
等函数禁用。
执行 passthru('ps -ef');
可以得到这条命令的输出内容。正则提取所需内容,然后再调用这些函数执行操作。具体用法请查阅手册。
ubuntu12.04 怎么用php调用shell
- 查阅
php.ini
配置文件(我的配置文件位置是/etc/php5/php.ini
),关闭安全模式:safe_mode=Off
- 给予 PHP 运行的用户和本机用户权限。PHP运行的用户名可以通过在 localhost 运行以下的 PHP 文件查到:
我的 Ubuntu 系统的 PHP 运行用户名是echo shell_exec("id -a");
www-data
。 - 控制台下,执行
visudo
,可以打开/etc/sudoers
文件进行修改(利用visudo
命令的意义在于,sudoers
文件很重要,如果修改错了,visudo
会提示你,而直接修改会导致系统出错,无法使用sudo
)。 - 修改的地方在
root
的下一行:'查到的php运行的用户名' ALL=(ALL) NOPASSWD:ALL '本机用户名' ALL=(ALL) ALL
通过以上设置,应该就能完成 Ubuntu 系统下 PHP 调用并执行 shell 脚本。 PS. 相关的命令(详细请百度/Google):
$output = shell_exec("xxx.sh"); // 只有失败的时候返回 NULL
system("cmd string", $status); // $status 在调用成功时返回 true,失败返回 false
想让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 测试文件:
<?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 的应用程序才能够正常运行。