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 相关文章推荐
PHP mail 通过Windows的SMTP发送邮件失败的解决方案
May 27 PHP
深入理解:XML与对象的序列化与反序列化
Jun 08 PHP
PHP输出当前进程所有变量/常量/模块/函数/类的示例
Nov 07 PHP
PHP错误WARNING: SESSION_START() [FUNCTION.SESSION-START]解决方法
May 04 PHP
thinkphp模板继承实例简述
Nov 26 PHP
详解PHP中array_rand函数的使用方法
Sep 11 PHP
浅谈PHP拦截器之__set()与__get()的理解与使用方法
Oct 18 PHP
yii2实现 "上一篇,下一篇" 功能的代码实例
Feb 04 PHP
详解thinkphp中的volist标签
Jan 15 PHP
Yii2语言国际化自动配置详解
Aug 22 PHP
php实现微信小程序授权登录功能(实现流程)
Nov 13 PHP
PHP中SESSION过期设置
Mar 09 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设计模式 php实现单例模式(singleton)
2015/12/07 PHP
老生常谈文本文件和二进制文件的区别
2017/02/27 PHP
Thinkphp 框架扩展之应用模式实现方法分析
2020/04/27 PHP
JavaScript 页面坐标相关知识整理
2010/01/09 Javascript
extjs 为某个事件设置拦截器
2010/01/15 Javascript
JS 非图片动态loading效果实现代码
2010/04/09 Javascript
jquery 多级下拉菜单核心代码
2010/05/21 Javascript
jquery插件开发方法(初学者)
2012/02/03 Javascript
js 为label标签和div标签赋值的方法
2013/08/08 Javascript
AngularJS中的Directive实现延迟加载
2016/01/25 Javascript
基于BootStrap Metronic开发框架经验小结【六】对话框及提示框的处理和优化
2016/05/12 Javascript
jQuery与JS加载事件用法分析
2016/09/04 Javascript
浅谈在js传递参数中含加号(+)的处理方式
2016/10/11 Javascript
Bootstrap源码解读媒体对象、列表组和面板(10)
2016/12/26 Javascript
javascript中BOM基础知识总结
2017/02/14 Javascript
vue如何从接口请求数据
2017/06/22 Javascript
基于Particles.js制作超炫粒子动态背景效果(仿知乎)
2017/09/13 Javascript
vscode 开发Vue项目的方法步骤
2018/11/25 Javascript
微信小程序环境下将文件上传到OSS的方法步骤
2019/05/31 Javascript
python使用pandas实现数据分割实例代码
2018/01/25 Python
使用python进行文本预处理和提取特征的实例
2018/06/05 Python
基于PyQt4和PySide实现输入对话框效果
2019/02/27 Python
机器学习实战之knn算法pandas
2019/06/22 Python
Numpy 中的矩阵求逆实例
2019/08/26 Python
Python常用数字处理基本操作汇总
2020/09/10 Python
世界上最大的在线学习和教学市场:Udemy
2017/11/08 全球购物
如何删除一个表里面的重复行
2013/07/13 面试题
车间班组长岗位职责
2013/11/13 职场文书
管理专员自荐信
2014/01/26 职场文书
安全生产活动月方案
2014/03/09 职场文书
毕业生就业推荐表自我鉴定
2014/03/20 职场文书
三八红旗手先进事迹材料
2014/05/13 职场文书
2014党员四风对照检查材料思想汇报
2014/09/17 职场文书
横空出世观后感
2015/06/09 职场文书
有关保护环境的宣传标语100条
2019/08/07 职场文书
详解JavaScript的计时器和按钮效果设置
2022/02/18 Javascript