`

crontab执行不了php的解决方法

    博客分类:
  • php
php 
阅读更多
用crontab跑php程序时,如何去调试,各人有各人的方法。我也有套方法,看一下,我是如何解决crontab执行不了php程序这个问题的。
一,php文件有没有执行权限
[root@linux cron]# ls -al |grep del 
-rwxr-xr-x  1 zwh  ftpgroup  494 10-20 16:42 del_redis.php 
如果没有X,说明没有执行权限,当然也执行不了。如果你不知道你登录的用户所在的组是不是有权限,直接给所有组都加上权限就行了。方法如下:
查看复制打印?
[root@linux cron]# chmod +x ./del_redis.php 
二,如果有执行权限了,还是执行不了
解决方法如下:
1,在php程序里面写log(例如:error_log()这个函数),这也是必须的,因为crontab定时执行,要是没有log,你怎么知道程序执行的结果怎么样。这样我们可以通过log来查看crontab执行的情况。
2,也可以直接在crontab里面,将执行的结果输出一个文件当中。然后在这个文件当中查看执行情况。例如:
查看复制打印?
*/10 * * * * /usr/local/php/bin/php /var/www/cron/del_redis.php >> /home/zhangy/cron.txt

3,用crontab来执行php,是不走apache,nginx,所以$_SERVER,$_ENV这类变量根本用不了。所以检查一下php代码中有没有这类变量,如果有拿掉。

4,php的相对路径问题
因为有思维定势在做怪,这个问题也是最容易忽视的。
查看复制打印?
include_once'./mysql.php'; 
当php代码中,用的是相对路径时,只有进入到那个目录下执行/usr/local/php/bin/php /var/www/cron/level_rank.php才能生效。这个问题我遇到过至少二次,但是再遇到时还是想不起来。
解决方法如下:
查看复制打印?
*/10 * * * * cd /var/www/cron && /usr/local/php/bin/php /var/www/cron/level_rank.php 
或者
在php代码中用绝对路径


详细见
http://blog.51yip.com/php/1346.html
分享到:
评论

相关推荐

    crontab无法执行php的解决方法

    主要介绍了crontab无法执行php的解决方法,较为详细了Linux平台使用crontab运行PHP的相关注意事项,需要的朋友可以参考下

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

    本文实例讲述了php解决crontab定时任务不能写入文件问题的方法。分享给大家供大家参考,具体如下: 今天使用crontab写的定时任务没有执行,很纳闷。 crontab.php <?php error_reporting(0); $time = date(Y-m-d ...

    可以在线执行PHP代码包装修正版

    您可能感兴趣的文章:PHP实现动态执行代码的方法PHP执行linux命令常用函数汇总crontab无法执行php的解决方法4种PHP异步执行的常用方式详解PHP执行定时任务的实现思路PHP定时执行任务的3种方法详解PHP执行SQL文件并将...

    php命令行(cli)下执行PHP脚本文件的相对路径的问题解决方法

    主要介绍了php命令行(cli)下执行PHP脚本文件的相对路径的问题解决方法,特别是在crontab中运行PHP脚本时,肯定会遇到路径问题,参照本文方法即可解决,需要的朋友可以参考下

    记录一次排查PHP脚本执行卡住的问题

    登录机器后执行top命令,果然发现存在一个CPU占用较高的PHP进程,然后执行下列命令,发现存在一个由crontab启动的执行了很长时间的PHP脚本: ps aux | grep 'php' | grep -v 'php-fpm' 由于之前也遇到过PHP脚本执行...

    关于PHP定时发送服务的解决办法

    一、定时发送任务解析  在进行手机APP或者微信开发的时候,经常会有需要定时推送消息的场景。  定时发送又分为两种:  一种是在开发的时候固定... linux:使用CronTab定时执行php  首先,进入命令行模式。作为服

    php定期拉取数据对比方法实例

    首先要解决的问题是:如何让程序每天自动执行一次脚本 php定时执行任务 关于定时执行,最常见的方法是利用系统级别自带的功能 linux ( crontab 定时任务命令) windows计划任务 这需要手动修改系统的任务文件,然后...

    Linux定时更新MySQL数据库

    PHP端(Linux服务器)每两秒向MySQL数据库执行一条命令的定时任务解决方案,主要用了crontab命令,过程是系统每分钟执行crontab.sh,crontab.sh可以执行一分钟,每两秒调用createtable.php一次,与数据库相关的代码...

    php使用Swoole实现毫秒级定时任务的方法

    项目开发中,如果有定时任务的业务要求,我们会使用linux的crontab来解决,但是它的最小粒度是分钟级别,如果要求粒度是秒级别的,甚至毫秒级别的,crontab就无法满足,值得庆幸的是swoole提供的强大的毫秒定时器。...

    PHP程序中的文件锁、互斥锁、读写锁使用技巧解析

    这个锁可以防止重复运行一个进程,例如在使用crontab时,限定每一分钟执行一个任务,但这个进程运行时间可能超过一分钟,如果不用进程锁解决冲突的话两个进程一起执行就会有问题。 使用PID文件锁还有一个好处,方便...

    Jshop小程序商城-PHP

    Jshop小程序商城,是一款开源的电商系统,包含微信小程序、支付宝小程序、APP、公众号和H5端,为大中小企业提供移动电子商务优秀的解决方案。 后台采用Thinkphp5.1框架开发,执行效率、扩展性、稳定性值得信赖。并且...

    20150726-Linux系统及程序设计实验全部代码+4种动态网页语言完成综合性实验+2000字综合性实验报告详细

    5、参考书本98-99页crontab命令内容,使用root执行crontab -e,编写时程表,完成每隔5分钟把当前时间追加进/tmp/test.log中。 6、执行crontab -l,把输出内容追加进/tmp/test.log。 7、待完成2次时间记录追加后,...

    百度地图开发java源码-disjob:失业

    对于需要执行几个小时的大型job没有分片功能,或者不能非常方便的分片。因此disjob调度中心是为解决这些问题而设计,初步计 划要实现的功能如下: 1、防单点故障:业务系统的单点故障以及调度中心本身的单点故障 ...

Global site tag (gtag.js) - Google Analytics