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 相关文章推荐
用ODBC的分页显示
Oct 09 PHP
第八节--访问方式
Nov 16 PHP
PHP 批量删除数据的方法分析
Oct 30 PHP
php中根据变量的类型 选择echo或dump
Jul 05 PHP
PHP数组及条件,循环语句学习
Nov 11 PHP
解析php中call_user_func_array的作用
Jun 07 PHP
php遍历文件夹下的所有文件和子文件夹示例
Mar 20 PHP
浅谈Eclipse PDT调试PHP程序
Jun 09 PHP
Laravel实现用户注册和登录
Jan 23 PHP
ThinkPHP模板标签eq if 中区分0,null,false的方法
Mar 24 PHP
PHP使用curl_multi实现并发请求的方法示例
Apr 29 PHP
php高性能日志系统 seaslog 的安装与使用方法分析
Feb 29 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开发入门教程之面向对象
2006/12/05 PHP
?算你??的 PHP 程式大小
2006/12/06 PHP
PHP的开发框架的现状和展望
2007/03/16 PHP
追求程序速度,而不是编程的速度
2008/04/23 PHP
php设计模式 Strategy(策略模式)
2011/06/26 PHP
php数组函数序列之in_array() 查找数组值是否存在
2011/10/29 PHP
javascript getElementsByName()的用法说明
2009/07/31 Javascript
JavaScript 数组运用实现代码
2010/04/13 Javascript
关于jQuery对象数据缓存Cache原理以及jQuery.data详解
2013/04/07 Javascript
js中传递特殊字符(+,&)的方法
2014/01/16 Javascript
判断日期是否能跨月查询的js代码
2014/07/25 Javascript
javascript中String对象的slice()方法分析
2014/12/20 Javascript
基于jquery实现表格无刷新分页
2016/01/07 Javascript
JQuery实现文字无缝滚动效果示例代码(Marquee插件)
2017/03/07 Javascript
vue.js给动态绑定的radio列表做批量编辑的方法
2018/02/28 Javascript
如何编写一个d.ts文件的步骤详解
2018/04/13 Javascript
解决在Vue中使用axios POST请求变成OPTIONS的问题
2020/08/14 Javascript
今天 平安夜 Python 送你一顶圣诞帽 @微信官方
2017/12/25 Python
利用Hyperic调用Python实现进程守护
2018/01/02 Python
Python实现修改IE注册表功能示例
2018/05/10 Python
Django用户认证系统 User对象解析
2019/08/02 Python
python编写猜数字小游戏
2019/10/06 Python
python属于解释语言吗
2020/06/11 Python
PyCharm 2020.2.2 x64 下载并安装的详细教程
2020/10/15 Python
python 实用工具状态机transitions
2020/11/21 Python
利用CSS3实现折角效果实例源码
2016/09/28 HTML / CSS
阿迪达斯比利时官方商城:adidas比利时
2016/10/10 全球购物
巴西一家专门从事家居和装饰的连锁店:Camicado
2019/08/14 全球购物
10条PHP编程习惯
2014/05/26 面试题
铣床操作工岗位职责
2014/06/13 职场文书
村长反四风问题个人对照检查材料
2014/09/21 职场文书
小学六年级班主任工作经验交流材料
2015/11/02 职场文书
初一数学教学反思
2016/02/17 职场文书
简述Java中throw-throws异常抛出
2021/08/07 Java/Android
Pandas实现DataFrame的简单运算、统计与排序
2022/03/31 Python
SpringBoot项目多数据源及mybatis 驼峰失效的问题解决方法
2022/07/07 Java/Android