crontab运行php脚本

来源:互联网 发布:蜀山缥缈录女捏脸数据 编辑:程序博客网 时间:2024/05/03 16:44

一)关于crontab -e的适用语法如下:

image

二)首先,确认 PHP 可执行文件的位置 —— 对于大多数 Linux 系统,几乎肯定是 /usr/local/php/bin/php。如果不确定其位置,请在命令行中键入 which php 并查看响应内容。

在Linux下命令直接执行php脚本:

#/usr/local/bin/php /usr/local/apache2/htdoc/crontab/test.php,检查是否可以正确执行

三)以下是配置步骤:
1.Linux下必须编译安装PHP解释器,在安装完成后,要将安装目录下${PHP}/bin/php 文件复制到/usr/bin/下,并使用chmod +x ./php 为其添加可执行权限,ok了。然后在linux命令行下输入:php -q *.php;执行一个php程序,以验证是否解释器工作正常
2.发布php文件:将编写好的php程序发布到apache的发布目录:如:/var/www/html下加权限:chmod +x /var/www/html/*.php
3.创建定时任务:
(1)启动linux定时服务:service crond start
(2)查看当前定时任务: crontab -l
(3)添加新定时任务:crontab -e
在打开的文件中编辑:
*/2 * * * * /usr/bin/php -f  /var/www/html/*.php // 表示每2分钟执行一次/var/www/html/*.php文件(注: -f 很重要,不能修改成 -q )

例如我的测试例子:

*/1 * * * * /usr/local/php/bin/php  /usr/local/apache2/htdocs/crontab/test.php >> /var/mylog.log 2>&1

四)测试与执行过程检测

1.先是测试crontab对于普通任务能否执行:
  crontab -e  
*/1 * * * * date >> /usr/local/mydate.log
保存后重启crontab :
service crond restart
过一分钟后发现/usr/local下生成了mydate.log,说明对普通的定时任务可以执行。
2.现在php脚本不能定时执行,应该是脚本的路径问题或者php的路径问题,于是,手工执行了/usr/local/php/bin/php /usr/**/test.php
发现可以正常执行。于是想到把相关的log打出来
*/1 * * * * /usr/local/php/bin/php /usr/**/test.php >>mylog.log 2>&1
过一分钟后打开mylog.log文件,发现提示的错误是:file_get_contents(./view/....)这个错误,至此错误很明显了,是相对路径的问题,把它改为绝对路径后,可以执行了。

原创粉丝点击