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 相关文章推荐
杏林同学录(七)
Oct 09 PHP
php a simple smtp class
Nov 26 PHP
由php的call_user_func传reference引发的思考
Jul 23 PHP
PHP对象转换为数组函数(递归方法)
Feb 04 PHP
PHP Switch 语句之学习笔记
Sep 21 PHP
php制作中间带自己定义图片二维码的方法
Jan 27 PHP
两千行代码的PHP学习笔记汇总
Oct 05 PHP
thinkPHP实现表单自动验证
Dec 24 PHP
PHP指定截取字符串中的中英文或数字字符的实例分享
Mar 18 PHP
PHP全局变量与超级全局变量区别分析
Apr 01 PHP
VSCode+PHPstudy配置PHP开发环境的步骤详解
Aug 20 PHP
PHP实现简单注册登录系统
Dec 28 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
全国FM电台频率大全 - 1 北京市
2020/03/11 无线电
PHPMyadmin 配置文件详解(配置)
2009/12/03 PHP
PHP5.5在windows安装使用memcached服务端的方法
2014/04/16 PHP
用PHP代替JS玩转DOM的思路及示例代码
2014/06/15 PHP
CMS中PHP判断系统是否已经安装的方法示例
2014/07/26 PHP
PHP中让curl支持sock5的代码实例
2015/01/21 PHP
PHP通过微信跳转的Code参数获取用户的openid(关键代码)
2016/07/06 PHP
PHP去除空数组且数组键名重置的讲解
2019/02/28 PHP
复制小说文本时出现的随机乱码的去除方法
2010/09/07 Javascript
jquery插件制作 表单验证实现代码
2012/08/17 Javascript
JS注册/移除事件处理程序(ExtJS应用程序设计实战)
2013/05/07 Javascript
Jquery 的outerHeight方法使用介绍
2013/09/11 Javascript
jquery实现不同大小浏览器使用不同的css样式表的方法
2014/04/02 Javascript
手机端页面rem宽度自适应脚本
2015/05/20 Javascript
jquery 重写 ajax提交并判断权限后 使用load方法报错解决方法
2016/01/19 Javascript
Javascript实现倒计时(防页面刷新)实例
2016/12/13 Javascript
利用Angular2 + Ionic3开发IOS应用实例教程
2018/01/15 Javascript
vue 的keep-alive缓存功能的实现
2018/03/22 Javascript
vue中使用element-ui进行表单验证的实例代码
2018/06/22 Javascript
jQuery+Datatables实现表格批量删除功能【推荐】
2018/10/24 jQuery
Vue项目中数据的深度监听或对象属性的监听实例
2020/07/17 Javascript
python中的编码知识整理汇总
2016/01/26 Python
解决python3 urllib中urlopen报错的问题
2017/03/25 Python
Python 图像对比度增强的几种方法(小结)
2019/09/25 Python
TensorFlow命名空间和TensorBoard图节点实例
2020/01/23 Python
Python3以GitHub为例来实现模拟登录和爬取的实例讲解
2020/07/30 Python
Python使用socket_TCP实现小文件下载功能
2020/10/09 Python
Python字典dict常用方法函数实例
2020/11/09 Python
联想瑞士官方网站:Lenovo Switzerland
2017/11/19 全球购物
英国钻石公司:British Diamond Company
2020/02/16 全球购物
Goodee官方商店:迷你投影仪
2021/03/15 全球购物
abstract class和interface有什么区别?
2012/01/03 面试题
CSS代码检查工具stylelint的使用方法详解
2021/03/27 HTML / CSS
招标保密承诺书
2015/01/20 职场文书
2015年圣诞节活动总结
2015/03/24 职场文书
学校党支部承诺书
2015/04/30 职场文书