今天鼓捣了一上午的linux下定时执行php,都不能自动执行,最后还是下午周帮我解决的,再次感谢。
其实很简单:
①先写好要执行的php文件
文件开头要加上这句 #! /usr/local/php5/bin/php -q 告诉系统php的执行路径
记住要赋给可执行的权限 chmod +x weather.php
可以先手动测试下能不能执行:
在命令行中输入 /usr/local/php5/bin/php /usr/local/apache/htdocs/weather.php看看,这时会出现很多Unable to load dynamic library 的warning信息,不过暂时没有什么影响。
还有一点需要注意的是php文件中不能出现$_SERVER['DOCUMENT_ROOT'],因为这个需要apache来解析,直接用shell的方式执行php是不能用的,要写成绝对的路径。
#! /usr/local/php5/bin/php -q
$time = date("Y-m-d H:i:s");
file_put_contents("/usr/local/apache/htdocs/cache/weather_cache.txt",$time);
?>
②crontab -e
*/1 * * * * /usr/local/php5/bin/php /usr/local/apache/htdocs/weather.php 表示每分钟执行一次weather.php
之前我是这样写的*/1 * * * * root /usr/local/php5/bin/php /usr/local/apache/htdocs/weather.php ,就不能执行,现在不知道为什么,我再查查资料。