当前位置:首页 > PHP教程 > php应用 > 列表

php解决crontab定时任务不能写入文件问题的方法分析

发布:smiling 来源: PHP粉丝网  添加日期:2021-12-17 18:37:12 浏览: 评论:0 

本文实例讲述了php解决crontab定时任务不能写入文件问题的方法,分享给大家供大家参考,具体如下:

今天使用crontab写的定时任务没有执行,很纳闷。

crontab.php

  1. <?php 
  2. error_reporting(0); 
  3. $time = date("Y-m-d h:i:s",time()); 
  4. file_put_contents($dir."/crontab.txt","[$time]\n",FILE_APPEND); 

crontab -e

*/1 * * * * /opt/php/bin/php /var/www/koastal/crontab.php

我直接运行php命令也是可以的。

/opt/php/bin/php /var/www/koastal/crontab.php

然后我把写入文件的命令改成输出,然后存到一个文件里面就可以了。

crontab.php

  1. <?php 
  2. error_reporting(0); 
  3. $time = date("Y-m-d h:i:s",time()); 
  4. echo $time

crontab -e

*/1 * * * * /opt/php/bin/php /var/www/koastal/crontab.php >> /var/www/koastal/log.txt

这说明crontab命令是正常的,php也只正常执行的,于是我开始怀疑人生。

网上查了查资料发现,原来是crontab命令的php是执行在cli模式下的,不能正确识别相对路径。

我之所以直接运行php命令没有报错是因为我设置了error_reporting(0);

所以我们给它绝对路径就好了,如下:

  1. error_reporting(0); 
  2. $dir = __DIR__; 
  3. $time = date("Y-m-d h:i:s",time()); 
  4. file_put_contents($dir."/crontab.txt","[$time]\n",FILE_APPEND);

Tags: crontab php定时任务

分享到: