php定时任务为什么不好写,php解决crontab定时任务不能写入文件问题的方法分析...
本文實例講述了php解決crontab定時任務不能寫入文件問題的方法。分享給大家供大家參考,具體如下:
今天使用crontab寫的定時任務沒有執行,很納悶。
crontab.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
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);
所以我們給它絕對路徑就好了,如下:
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程序設計有所幫助。
總結
以上是生活随笔為你收集整理的php定时任务为什么不好写,php解决crontab定时任务不能写入文件问题的方法分析...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: php执行mysql insert,当执
- 下一篇: nsq php,Nsq从入门到实践