是什么 ?
现在我们要讨论的是,许多的 php 程序员都可以很快完成 Web 应用的开发,PHP 代码的调试也比 PERL 或 C 语言容易很多,不过经常会碰
到有 php 程序员会问:如何在 linux 系统中使用 crontab 来运行 Php 脚本?比如 ubuntu crontab 定时执行 php 代码。
Ubuntu 如何使用 Crontab 定时自动执行 PHP 脚本
现在远方博客也碰到了需要在指定的时间运行 php 脚本的情况,比如定时进行网站的数据统计、自动执行数据库备份任务、定时发送 email
等等。
如果我们不使用 Cron 来执行 php 脚本,或许我们会采用 php include 的方法。比如在 index.php中添加代码:<?php include
"crontab.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 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
<?php
$file = "/var/www/".date('H').'_'.date('i').'_'.date('s').'.txt';
file_put_contents($file,date('Y-m-d'));
评论6