225025 发表于 2018-12-20 12:05:48

crontab 定时执行php脚本文件

  什么是Cron和Crontab
  Unix和Linux系统的各个发行版本基本都支持Cron,Cron /Crontab允许我们在设定的时间自动执行或定时执行某个任务,如应用程序或脚本。更详细的概念和使用方法介绍请点击Cron和Crontab是什么?
  现在我们要讨论的是,许多的php程序员都可以很快完成Web应用的开发,PHP代码的调试也比PERL或C语言容易很多,不过经常会碰到有php程序员会问:如何在linux系统中使用crontab来运行Php脚本?比如ubuntu crontab 定时执行php代码。
  Ubuntu 如何使用Crontab定时自动执行PHP脚本
  现在远方博客也碰到了需要在指定的时间运行php脚本的情况,比如定时进行网站的数据统计、自动执行数据库备份任务、定时发送email等等。
  如果我们不使用Cron来执行php脚本,或许我们会采用php include的方法。比如在index.php 中添加代码:。当访客通过浏览器访问http://farlee.info/index.php的时候,自动执行了crontab.php。当然这只是一种思路,这种方法并不能指定时间定时运行PHP脚本,同时也给index.php带来了额外的服务器消耗。而Linux Ubuntu Crontab 可以很好地完成php 定时任务,这也是写这篇关于cron的文章的目的。
  然后首先想到的是和windows 系统下的计划任务一样,通过在windows中使用php的命令行模式执行计划任务实现定时自动执行php脚本,这是一个思路,另外一个思路就是直接在浏览器中访问php脚本的地址,定时自动打开浏览器访问该网址,执行php脚本。因此在Ubuntu服务器系统下,同样有类似的两种思路。下面http://farlee.info/逐步介绍使用Ubuntu Crontab定时执行PHP脚本的设置方法。
  PHP 安装模式
  首先我们必须先确认自己在LINUX Ubuntu 服务器上php的安装模式,以CGI 模块还是Apache模块方式安装? 如果不确定php安装模式,可以使用 phpinfo() 函数查看:将 写在php文件中上传到网站服务器,访问该页面,就在页面顶部我们找到“Server API”,如果类似“Apache 2.0 Handler”,那么就是apache模块;否则php是CGI 模式(shell 命令行模式)。这两种不同的php安装模式,正对应于前面介绍的ubuntu crontab 定时执行php的两种解决方法。
  CGI 编译
  如果Server API是cgi,那么在需要cron执行的php脚本的第一行额外加入一段代码#!/usr/bin/php -q(类似PERL语法),指定服务器中php可执行程序的位置,具体步骤如下:
  1. 确认Ubuntu系统已经安装了php5-cli模块,安装命令:apt-get install php5-cli。在目录 /usr/bin/php下生成 php可执行程序。
  2.编辑待定时执行的php脚本文件crontab.php,如:
  #!/usr/bin/php -q
  
  3.编辑 crontab 任务:
  打开终端,输入命令:crontab -e,
  Select an editor.To change later, run ‘select-editor’.
  1. /bin/ed
  2. /bin/nano         crontab crontab
  确认crontab.php的权限为可执行("chmod 755 /var/www/cron/crontab.php")。
  Apache 模块
  如果php安装是以 apache 模式运行的,那么在要在ubuntu服务器定时执行的php脚本开头就不用加 #!/usr/bin/php-q 这一行。php脚本在ubuntu 通过crontab的定时执行通过Lynx浏览器的自动访问来完成。
  1.Lynx浏览器安装。
  Lynx浏览器是一款轻便的web浏览器,使用于大部分Unix 和Linux系统环境。安装命令:sudo apt-get install lynx。
  2. 编辑cron任务,命令crontab -e
  * * * * * lynx -dump http://farlee.info/cron.php
  注意这个地址最好用绝对地址,包含“http://”的完整url。
  3. 再次执行下面的命令行:
  Shell> crontab crontab
  因为我在ubuntu安装的是lamp server,所以采用第二种Apache 模块的方法就可以使用crontab定时执行php脚本代码。

页: [1]
查看完整版本: crontab 定时执行php脚本文件