今天在编写程序的时候须要调用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)须要检查如下几点:
一、首先查看php运行用户,能够在web服务器配置文件中查看,或者运行
<?php
echoshell_exec("id -a");
?>
直接查看。
好比个人运行用户是www,编辑/etc/sudoers文件
首先加上www用户 www ALL=(ALL) NOPASSWD:ALL
下面是我配置的,对自定义的shell脚本进行配置。
这表示www用户运行的时候不用输入密码。
二、查看php.ini中配置是否打开安全模式,主要是如下三个地方
safe_mode = (这个若是为off下面两个就不用管了)
disable_functions =
safe_mode_exec_dir=
OVER,下面你就能够用exec调用linux命令执行了。