php调用shell函数,php 调用函数

发布时间:2022-11-24

本文目录一览:

  1. 解析php中如何直接执行SHELL
  2. 如何让php执行shell
  3. 如何使用PHP调用SHELL命令?调用后并且执行SHELL命令
  4. ubuntu12.04 怎么用php调用shell
  5. 想让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

  1. 查阅 php.ini 配置文件(我的配置文件位置是 /etc/php5/php.ini),关闭安全模式:
    safe_mode=Off
    
  2. 给予 PHP 运行的用户和本机用户权限。PHP运行的用户名可以通过在 localhost 运行以下的 PHP 文件查到:
    echo shell_exec("id -a");
    
    我的 Ubuntu 系统的 PHP 运行用户名是 www-data
  3. 控制台下,执行 visudo,可以打开 /etc/sudoers 文件进行修改(利用 visudo 命令的意义在于,sudoers 文件很重要,如果修改错了,visudo 会提示你,而直接修改会导致系统出错,无法使用 sudo)。
  4. 修改的地方在 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 的应用程序才能够正常运行。