B2evolution/设置linux时钟作业
你想定期执行.../cron/cron_exec.php脚本:
首先,你需要知道这个脚本在你的系统中的准确的位置,你可以使用下面命令来查看:
locate cron_exec.php
(注意:如果你刚刚上传了该脚本,那么它可能不能被发现。这种情况下,你可以输入updatedb来刷新你的定位数据库)
然后,你需要使用PHP解释器来运行cron_exec.php。注意:PHP可能是基于不同平台的:Apache组件、CGI组件、CLI等。
这里倾向于使用CLI,也就是Command Line Interface(命令行界面),你可以使用下面代码:
/usr/bin/php -v
如果是正确建立了的话,你会获得下面信息:
PHP 4.3.10-16 (cli) (built: Aug 24 2005 20:25:01) Copyright (c) 1997-2004 The PHP Group Zend Engine v1.3.0, Copyright (c) 1998-2004 Zend Technologies
注意到PHP版本号后的(cli)了吗?
如果出现错误的话,可能是因为你没有安装PHP CLI包,在DEBIAN下,你希望安装的程序应该是 PHP4-cli;
如果你获得的是许多HTML,那么你是在运行PHP,但不是CLI版本,这个可能不是最好的,但是也可以正常工作。
现在我们尝试从Command Line 命令行中运行 cron_exec.php:
/usr/bin/php /your/specific/path/cron/cron_exec.php
在我的系统中,出现了一个mysql应该启用的错误提示,这个需要在/etc/php4/cli/php.ini(同样需要使用定位命令找到php.ini文件)中取消下面代码前的注释符号:
extension=mysql.so
然后再次尝试运行cron_exec.php。当脚本运行后,会输出大量关于它执行的计划作业的信息,或者当没有作业需要执行的时候,它会简单的输出下面的信息:
There is no task to execute yet.
现在你已经可以在命令行中手动运行这个脚本了,接下来我们需要做的就是设置让它定期的自动的被执行。
编辑/etc/crontab文件,然后添加下行代码:
* * * * * root /usr/bin/php /your/own/path/cron/cron_exec.php >/dev/null 2>/dev/null
注意:root的意思是该脚本是在root用户下运行,你可以更改这一点。同样,>/dev/null 2>/dev/null的意思是丢弃所有信息包括错误信息,你可以将这些信息重定向到另一个文件然后调试...
多个B2evolution实例的自动Cron运行[ ]
这是为高级用户准备的。
如果你在同一个服务器上运行了多个B2evolution的实例,你可能希望你的系统可以自动运行每一个新安装的b2evolution的新的cron_exec.php脚本。
一个解决方法就是将下面代码添加到/usr/local/bin/evo-cron中去:
#!/bin/bash # Get list of crons we can run: CronList=`ls /home/*/www/cron/cron_exec.php` # Loop though all sites for Cron in $CronList do echo $Cron /usr/bin/php $Cron done
然后在/etc/crontab中添加下面代码来访问它:
* * * * * www-data /usr/local/bin/evo-cron
参考来源[ ]
B2evolution使用手册导航 | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
|