评论

收藏

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

开发技术 开发技术 发布于:2021-11-09 17:53 | 阅读数:470 | 评论:0

这篇文章主要介绍了php解决crontab定时任务不能写入文件问题的方法,结合实例形式分析了crontab定时任务无法正常执行的原因与解决方法,需要的朋友可以参考下
本文实例讲述了php解决crontab定时任务不能写入文件问题的方法。分享给大家供大家参考,具体如下:
今天使用crontab写的定时任务没有执行,很纳闷。
crontab.php
<?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
<?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);
所以我们给它绝对路径就好了,如下:
<?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

关注下面的标签,发现更多相似文章