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关于array_multisort多维数组排序的使用说明
Jan 04 PHP
PHP登陆后跳转到登陆前页面实现思路及代码
Jan 17 PHP
php数组排序usort、uksort与sort函数用法
Nov 17 PHP
PHP内存缓存Memcached类实例
Dec 08 PHP
PHP获取某个月最大天数(最后一天)的方法
Jul 29 PHP
10款实用的PHP开源工具
Oct 23 PHP
深入解析PHP的Laravel框架中的event事件操作
Mar 21 PHP
php实现微信扫码自动登陆与注册功能
Sep 22 PHP
php文件上传、下载和删除示例
Aug 28 PHP
PHP中函数gzuncompress无法使用的解决方法
Mar 02 PHP
PHP实现微信提现功能
Sep 30 PHP
PHP获取星期几的常用方法小结
Dec 18 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
Syphon 虹吸式咖啡壶冲煮–拨动法
2021/03/03 冲泡冲煮
PHP中substr()与explode()函数用法分析
2014/11/24 PHP
ThinkPHP框架实现定时执行任务的两种方法分析
2018/09/04 PHP
javascript的内存管理详解
2013/08/07 Javascript
jquery购物车实时结算特效实现思路
2013/09/23 Javascript
深入浅析JavaScript中数据共享和数据传递
2016/04/25 Javascript
微信支付 JS API支付接口详解
2016/07/11 Javascript
JavaScript鼠标事件,点击鼠标右键,弹出div的简单实例
2016/08/03 Javascript
jQuery中的insertBefore(),insertAfter(),after(),before()区别介绍
2016/09/01 Javascript
原生javascript实现读写CSS样式的方法详解
2017/02/20 Javascript
jQuery EasyUI ProgressBar进度条组件
2017/02/28 Javascript
Angular-Ui-Router+ocLazyLoad动态加载脚本示例
2017/03/02 Javascript
关于JavaScript语句后面的分号问题
2017/12/07 Javascript
JavaScript中创建原子的方法总结
2018/08/26 Javascript
Vue表单绑定的实例代码(单选按钮,选择框(单选时,多选时,用 v-for 渲染的动态选项)
2019/05/13 Javascript
解决vue下载后台传过来的乱码流的问题
2020/12/05 Vue.js
javascript全局自定义鼠标右键菜单
2020/12/08 Javascript
python程序控制NAO机器人行走
2019/04/29 Python
Python之pymysql的使用小结
2019/07/01 Python
Python动态导入模块和反射机制详解
2020/02/18 Python
Python中openpyxl实现vlookup函数的实例
2020/10/28 Python
用python写一个带有gui界面的密码生成器
2020/11/06 Python
Pyecharts 中Geo函数常用参数的用法说明
2021/02/01 Python
New Balance波兰官方商城:始于1906年,百年慢跑品牌
2017/08/15 全球购物
中国跨境在线时尚零售商:Bellelily
2018/04/06 全球购物
介绍一下常见的木马种类
2014/11/15 面试题
幼儿园教育教学反思
2014/01/31 职场文书
采购经理岗位职责
2014/02/16 职场文书
2014年健康教育实施方案
2014/02/17 职场文书
《搭石》教学反思
2014/04/07 职场文书
乡镇保密工作责任书
2014/07/28 职场文书
放飞理想演讲稿
2014/09/09 职场文书
挂职个人工作总结
2015/03/05 职场文书
2016年秋季运动会广播稿
2015/12/21 职场文书
2016年心理学教育培训学习心得体会
2016/01/12 职场文书
Pygame如何使用精灵和碰撞检测
2021/11/17 Python