博客统计信息

用户名:leven_pan
文章数:32
评论数:7
访问量:22179
无忧币:128
博客积分:270
博客等级:2
注册日期:2010-06-03

PHP中exec、system等函数调用linux命令问题
2010-06-03 19:13:16
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://leven.blog.51cto.com/1675811/326150
      先小说两句:今天研究了下PHP调用LINUX命令的功能,一开始怎么做都调用不成功,试了好久才终于成功了,所以发出来分享一下。下面我将详细介绍:
       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服务器配置文件中查看,或者运行
<?php echo shell_exec("id -a");?>
直接查看。比如我的运行用户是www,编辑/etc/sudoers文件
vi /etc/sudoers
首先加上www用户  www ALL=(ALL)   NOPASSWD:ALL鍔犲叆www鐢ㄦ埛
这表示www用户运行的时候不用输入密码。接着看图片注释掉前面两个,删除圈着的环境变量LS_COLORS,其中Ubuntu中是没有这几个的,这一步可省略,其他Redhat、Fedora、Centos这几个都是需要这么做的。
 
     2、查看php.ini中配置是否打开安全模式,主要是以下三个地方
safe_mode =  (这个如果为off下面两个就不用管了)
disable_functions =
safe_mode_exec_dir=
 
OVER,下面你就可以用exec调用linux命令执行了。
 

本文出自 “levens” 博客,请务必保留此出处http://leven.blog.51cto.com/1675811/326150

分享至
更多
一键收藏,随时查看,分享好友!
0人
了这篇文章
类别:服务器技术圈()┆阅读()┆评论() ┆ 推送到技术圈返回首页

文章评论

 
2010-06-04 10:19:54
PHP LINUX 如影随形

2010-09-02 18:00:42
你好:

    我也碰到以上問題,也用以上方法處理ubuntu 裡的問題,但我想請教一下如果我想用以上

環境在arm linux 裡咝校尚袉幔课乙呀浽囘^,發現了幾個問題,希望你能解決一下:

1.sudo 命令在arm linux 裡沒有,可用其他替代嗎?

2.在arm linux裡也沒有etc/sudoers檔案,能把ubuntu裡的copy過去嗎?

3.我把exec("sudo /bin/date -s....");裡的“sudo"除掉後,返回的$Status值是0,就是以上說的成功,但我查過date還沒有改變,是什麼原因?

謝謝你的意見!

2010-09-03 14:45:27
你好:

    我也碰到以上問題,也用以上方法處理ubuntu 裡的問題,但我想請教一下如果我想用以上環境在arm linux 裡咝校尚袉幔课乙呀浽囘^,發現了幾個問題,希望你能解決一下:

1.sudo 命令在arm linux 裡沒有,可用其他替代嗎?

2.在arm linux裡也沒有etc/sudoers檔案,能把ubuntu裡的copy過去嗎?

3.我把exec("sudo /bin/date -s '....'");裡的“sudo"除掉後,返回的$Status值是0,就是以上說的成功,但我查過date還沒有改變,是什麼原因?

謝謝你的意見!

2011-09-23 01:21:44
arm linux?
不是没有,而是需要用visudo命令来编辑哦
visudo /etc/sudoers
不过貌似我的contos用博主的方法不奏效

 

发表评论            

【技术门诊】专家解析:软考重点难点及应试技巧
昵  称:
登录  快速注册
验证码:

请点击后输入验证码博客过2级,无需填写验证码

内  容: