php exec 执行php脚本

  有时候,因为业务需求,需要一些定时跑的脚本。比如一些脚本5min跑一次,10min跑一次,1day跑一次… 随着这样的脚本增多,我们就需要对这些定时的脚本进行管理,不能在crontab那里添加了太多的信息,而且每次新增一个定时脚本,就打开服务器去修改一次crontab,也比较麻烦。

  一个办法就是,crontab定时跑某几个脚本,比如去执行5min.php。然后在这个脚本里,将要执行的脚本路径配置在里面,运用php函数exec执行到。

  在linux下

  

$php_exec = "/usr/local/php5/bin/php";
$www_path = "/var/www/script/crontab";
$runing    =    array(
    /test/test.php,
);
 foreach($runing as $task){
    exec($php_exec." ".$www_path.$task);      
}

  

  我是在windows下开发的,所以会在XP先试下

  

$exec = exec("d:\\wamp\\bin\\php\\php5.4.16\\php.exe d:\\htdoc\\dev\\Test\\test.php > d:\\htdoc\\dev\\Test\\execoutput.txt 2>&1 &",$array,$return_var);
var_dump($exec);
var_dump($array);
echo '<br />';
var_dump($return_var);die;

这里路径信息一定得是 '\\'这样的,php路径信息,必须把php.exe这个加入

'> d:\\htdoc\\dev\\Test\\execoutput.txt 2>&1 &' 这一截是把执行到的脚本结果写到文件中,如果有错误信息,也会写入到里面 -> 这个对于调试,是非常有用的。 使用时,请一定记得将后面的参数'2>&1 &'也带上.