微信号:songchaoke_cn

介绍:专注于互联网、IT技术、LAMP架构、IPv6测试、Web2.0、HTML5等领域的个人技术博客,地址:http://www.francissoung.com

PHP中exec、system等函数调用linux命令问题

2013-12-02 13:51 php程序猿

  今天在编写程序的时候需要调用linux命令,在linux上怎么执行都可以,但是用php执行的时候就是不好用。经过查资料得出以下解决方法,与大家共享以下。

  PHP中提供了几个调用linux命令的函数,exec、system、passthru,函数使用请参考手册,这里不具体介绍。下面我以exec函数为例具体介绍:

  比如LINUX中修改服务器时间命令是 /bin/date -s ’2010-05-28 13:10′,我们通过php函数exec调用这个命令执行修改时间exec(“sudo /bin/date -s ’2010-05-28 13:10′”,$out,$status);其中$out是输出值,$status是返回值0或1,如果返回0则执行成功,返回1则执行失败。要通过PHP成功执行这个命令(PHP运行用户非root)需要检查以下几点:

  1、首先查看php运行用户,可以在web服务器配置文件中查看,或者运行

1

2

3

<?php

  echo shell_exec("id -a");

?>

  直接查看。

  比如我的运行用户是www,编辑/etc/sudoers文件

  vi /etc/sudoers

  首先加上www用户  www ALL=(ALL)   NOPASSWD:ALL

  下面是我配置的,对自定义的shell脚本进行配置。

  

  这表示www用户运行的时候不用输入密码。

  2、查看php.ini中配置是否打开安全模式,主要是以下三个地方

  safe_mode =  (这个如果为off下面两个就不用管了)
  disable_functions = 
  safe_mode_exec_dir=

  OVER,下面你就可以用exec调用linux命令执行了。


 
PHP程序猿的笔记 更多文章 读写文件与读写数据库的效率比较 品味淡淡的感觉 淡淡的生活 几个功能强大的分辨率测试网站 ubuntu下SVN服务器安装配置 判断用户是否手机访问
猜您喜欢 扫清Android面试障碍 在 Google 到底能学到啥? Android开发书籍下载 那时,此景,美得让人无法呼吸的风景 - 腾讯ISUX 程序员鼓励师月薪可达8千(我也想要)