crontab无法执行php的解决方法


Posted in PHP onJanuary 25, 2016

本文分析了crontab无法执行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代码中用绝对路径

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

PHP 相关文章推荐
BBS(php & mysql)完整版(五)
Oct 09 PHP
PHP中用header图片地址 简单隐藏图片源地址
Apr 09 PHP
php在线打包程序源码
Jul 27 PHP
php初学者写及时补给skype用户充话费的小程序
Nov 02 PHP
PHP 图片上传代码
Sep 13 PHP
PHPEXCEL 使用小记
Jan 06 PHP
基于php权限分配的实现代码
Apr 28 PHP
PHP SPL标准库之文件操作(SplFileInfo和SplFileObject)实例
May 11 PHP
php获取英文姓名首字母的方法
Jul 13 PHP
php快速排序原理与实现方法分析
May 26 PHP
PHP+Mysql+Ajax实现淘宝客服或阿里旺旺聊天功能(前台页面)
Jun 16 PHP
在Laravel中使用MongoDB的方法示例
Nov 11 PHP
win7安装php框架Yii的方法
Jan 25 #PHP
php结合md5实现的加密解密方法
Jan 25 #PHP
PHP几个实用自定义函数小结
Jan 25 #PHP
php代码架构的八点注意事项
Jan 25 #PHP
详解js异步文件加载器
Jan 24 #PHP
PHP导出Excel实例讲解
Jan 24 #PHP
PHP验证码生成原理和实现
Jan 24 #PHP
You might like
PHP网页游戏学习之Xnova(ogame)源码解读(七)
2014/06/23 PHP
php无法连接mysql数据库的正确解决方法
2016/07/01 PHP
arguments对象
2006/11/20 Javascript
jQuery控制输入框只能输入数值的小例子
2013/03/20 Javascript
AngularJS入门教程(一):静态模板
2014/12/06 Javascript
jQuery使用hide方法隐藏指定元素class样式用法实例
2015/03/30 Javascript
Javascript代码实现仿实例化类
2015/04/03 Javascript
如何实现JavaScript动态加载CSS和JS文件
2020/12/28 Javascript
jquery实现删除一个元素后面的所有元素功能
2015/12/21 Javascript
详解JavaScript的AngularJS框架中的表达式与指令
2016/03/05 Javascript
Bootstrap进度条组件知识详解
2016/05/01 Javascript
Vue数据驱动模拟实现4
2017/01/12 Javascript
微信小程序 视图容器组件的详解及实例代码
2017/01/19 Javascript
JS仿Base.js实现的继承示例
2017/04/07 Javascript
vue组件定义,全局、局部组件,配合模板及动态组件功能示例
2019/03/19 Javascript
微信小程序日历弹窗选择器代码实例
2019/05/09 Javascript
如何进行微信公众号开发的本地调试的方法
2019/06/16 Javascript
[58:21]DOTA2亚洲邀请赛 4.3 突围赛 Liquid vs VGJ.T 第二场
2018/04/04 DOTA
深入讨论Python函数的参数的默认值所引发的问题的原因
2015/03/30 Python
使用pyecharts无法import Bar的解决方案
2020/04/23 Python
python设置环境变量的原因和方法
2019/06/24 Python
django ModelForm修改显示缩略图 imagefield类型的实例
2019/07/28 Python
基于Python和C++实现删除链表的节点
2020/07/06 Python
Pythonic版二分查找实现过程原理解析
2020/08/11 Python
英国家庭、花园、汽车和移动解决方案:Easylife Group
2018/05/23 全球购物
高职助产应届生自荐信
2013/09/24 职场文书
电大学习个人自我评价范文
2013/10/04 职场文书
护士岗前培训自我评鉴
2014/02/28 职场文书
商业融资计划书
2014/04/29 职场文书
2015年度服装销售工作总结
2015/03/31 职场文书
关于空气污染危害的感想
2015/08/11 职场文书
2016年“5.12”国际护士节活动总结
2016/04/06 职场文书
实习员工转正的评语汇总,以备不时之需
2019/12/17 职场文书
Python初识逻辑与if语句及用法大全
2021/08/07 Python
MySQL多表查询机制
2022/03/17 MySQL
pandas时间序列之pd.to_datetime()的实现
2022/06/16 Python