php解决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",FILE_APPEND);

更多关于PHP相关内容感兴趣的读者可查看本站专题:《PHP进程与线程操作技巧总结》、《PHP网络编程技巧总结》、《PHP基本语法入门教程》、《PHP数组(Array)操作技巧大全》、《PHP字符串(string)用法总结》、《PHP+MysqL数据库操作入门教程》及《PHP常见数据库操作技巧汇总》

希望本文所述对大家PHP程序设计有所帮助。

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...