一些Moodle的模块需要持续的检查来完成任务。 例如,Moodle需要检查讨论组以便它能够通过邮件的方式给订阅者发送拷贝。
完成这些任务的脚本放置在管理员目录下,叫做 cron.php。 然而,它自己不会自动运行,所有您需要设置一种机制让这个脚本有规律的运行 (例如:每5分钟或10分钟)。 这提供了 “触发器(heartbeat)” 所以脚本能够执行每个模块预先定义的功能。 这种规律的机制也被叫做 守护服务.
注意,运行守护进程的机器 不一定需要是跟运行Moolde的机器是同一台机器。例如, 您有一个仅提供有限服务的主机,不支持守护进程,那么您可能选择运行守护进程在一台其他的服务器上或在您家里的计算机上。 所有这些因素围绕 cron.php 文件需要被规律的调用。
这个脚本的负载不是很大,所以5分钟的间隔通常是合理的, 但如果您还担心负载的问题,您可以缩短时间间隔到15分钟或者甚至是30分钟。 但最好不要让时间间隔太长,因为延迟的邮递任务会让课程活动的速度减慢。
首先,测试脚本能够直接从您的浏览器中运行:
http://example.com/moodle/admin/cron.php
现在,您需要设置一种途径让脚本能够自动的有规律的运行。
在 Windows 系统
最简单的办法是使用这个小包 moodle-cron-for-windows.zip ,这个包使得事情变得非常简单通过安装一个小的Windows服务。运行它并且忘了它!
在主机托管服务
您的web控制面板一般会有一个页面,允许您来设置这个守护进程。例如,在 Cpanel 系统,查找一个叫做 “守护任务(Cron jobs)” 的按钮。 在那里,您可以输入一小段像下面列出这样的 Unix 命令。
在Unix下使用命令行
从命令行环境您可以使用不同的命令行程序来调用这个页面。并不是所有的在一个给定的服务器上都适用。
例如,您可以使用 Unix 工具像 ‘wget’:wget -q -O /dev/null http://example.com/moodle/admin/cron.php注意,在这个范例中输出被丢弃了(输出到 /dev/null).
相同的事情使用 lynx 完成如下:lynx -dump http://example.com/moodle/admin/cron.php > /dev/null作为选择,您可以使用标准版本的 PHP, 编译成允许从命令行运行。 这样做的好处是,您的web服务器日志不会被固定的到 cron.php 的请求填满。 不好的地方在于您需要具有访问命令行版本php的权限。/opt/bin/php /web/moodle/admin/cron.php在Unix环境下使用 crontab 程序
Cpanel 完成这个任务所做的工作就是提供一个web接口到一个叫做crontab的Unix 工具。如果您有一个命令行环境,您可以自己设置 crontab 工具通过命令行:
crontab -e
然后,添加一个行命令像下面这样:*/5 * * * * wget -q -O /dev/null http://example.com/moodle/admin/cron.php通常, “crontab” 命名将把您带入到’vi’ 编辑器环境。 您按下 “i” 进入到"插入模式", 然后输入像上面给出的一行,然后,按下ESC键退出插入模式。 输入 “:wq” 您就可以保存和退出,或者退出不保存使用 “:q!” (输入时不要包含引号)。