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(2)
Oct 09 PHP
php+mysql写的简单留言本实例代码
Jul 25 PHP
php preg_match_all结合str_replace替换内容中所有img
Oct 11 PHP
PHP中文件缓存转内存缓存的方法
Dec 06 PHP
控制PHP的输出:缓存并压缩动态页面
Jun 11 PHP
Codeigniter购物车类不能添加中文的解决方法
Nov 29 PHP
PHP执行SQL文件并将SQL文件导入到数据库
Sep 17 PHP
在WordPress的后台中添加顶级菜单和子菜单的函数详解
Jan 11 PHP
CI框架源码解读之URI.php中_fetch_uri_string()函数用法分析
May 18 PHP
浅析PHP开发规范
Feb 05 PHP
php实现获取近几日、月时间示例
Jul 06 PHP
PHP设计模式(一)工厂模式Factory实例详解【创建型】
May 02 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+DBM的同学录程序(2)
2006/10/09 PHP
PHP+MySQL插入操作实例
2015/01/21 PHP
laravel学习教程之存取器
2016/07/30 PHP
Laravel 5.4因特殊字段太长导致migrations报错的解决
2017/10/22 PHP
js 图片缩放(按比例)控制代码
2009/05/27 Javascript
Jquery 组合form元素为json格式,asp.net反序列化
2009/07/09 Javascript
IE下使用cloneNode注意事项分享
2012/11/22 Javascript
javascript中的startWith和endWith的几种实现方法
2013/05/07 Javascript
模拟多级复选框效果的jquery代码
2013/08/13 Javascript
jQuery中:has选择器用法实例
2014/12/30 Javascript
jQuery循环动画与获取组件尺寸的方法
2015/02/02 Javascript
js简单实现标签云效果实例
2015/08/06 Javascript
jQuery横向擦除焦点图特效代码分享
2015/09/06 Javascript
移动端使用localStorage缓存Js和css文的方法(web开发)
2016/09/20 Javascript
Angularjs中的页面访问权限怎么设置
2016/11/11 Javascript
jQuery基本选择器和层次选择器学习使用
2017/02/27 Javascript
Vue.js bootstrap前端实现分页和排序
2017/03/10 Javascript
利用JS hash制作单页Web应用的方法详解
2017/10/10 Javascript
实例解析ES6 Proxy使用场景介绍
2018/01/08 Javascript
JavaScript实现简单的文本逐字打印效果示例
2018/04/12 Javascript
Nodejs调用Dll模块的方法
2018/09/17 NodeJs
使用layui+ajax实现简单的菜单权限管理及排序的方法
2019/09/10 Javascript
vue实现树状表格效果
2020/12/29 Vue.js
Python新手入门最容易犯的错误总结
2017/04/24 Python
Python运维之获取系统CPU信息的实现方法
2018/06/11 Python
对python 命令的-u参数详解
2018/12/03 Python
pycharm配置git(图文教程)
2019/08/16 Python
使用Python实现牛顿法求极值
2020/02/10 Python
python 中的paramiko模块简介及安装过程
2020/02/29 Python
关于Python3爬虫利器Appium的安装步骤
2020/07/29 Python
python使用dlib进行人脸检测和关键点的示例
2020/12/05 Python
Marriott国际:万豪国际酒店查询预订
2017/09/25 全球购物
探亲假请假条
2014/04/11 职场文书
股权转让协议书范本
2014/04/12 职场文书
社会治安综合治理责任书
2015/01/29 职场文书
2016年大学光棍节活动总结
2016/04/05 职场文书