您的位置:首页 > 编程学习 > > 正文

php如何定时执行某项(php解决crontab定时任务不能写入文件问题的方法分析)

更多 时间:2021-10-22 07:48:03 类别:编程学习 浏览量:433

php如何定时执行某项

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

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

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

crontab.php

  • ?
  • 1
  • 2
  • 3
  • 4
  • <?php
  • error_reporting(0);
  • $time = date("Y-m-d h:i:s",time());
  • 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
  • 2
  • 3
  • 4
  • <?php
  • error_reporting(0);
  • $time = date("Y-m-d h:i:s",time());
  • 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
  • 2
  • 3
  • 4
  • 5
  • <?php
  • error_reporting(0);
  • $dir = __DIR__;
  • $time = date("Y-m-d h:i:s",time());
  • file_put_contents($dir."/crontab.txt","[$time]\n",FILE_APPEND);
  • 希望本文所述对大家PHP程序设计有所帮助。

    原文链接:https://blog.csdn.net/koastal/article/details/51038330