cron.phpの自動実行
PHPは受動的なサーバーサイドスクリプトのシステムですのでクライアントからのリクエストが発生しない限り,自発的に処理を始めることはありません.しかし,Moodleは,
- 定期的に各コースデータをバックアップする.
- 統計情報を解析する.
- フォーラムに投稿があったことをユーザーに電子メールで通知する.
- RSSフィードを更新する.
といった処理を無人で自動的に処理する必要があります.これら一連のバックグラウンドで行う処理を記述したコマンドがcron.phpです.(moodle\admin\cron.php)
(1)Webブラウザでcron.phpを起動する.
Webブラウザのアドレス欄に
http://localhost/admin/cron.php
と入力して下さい.一連の処理が自動実行されるはずです.いまは一瞬で終わりますが,コースの数が増えてくると処理する項目が徐々に増えていきます.

(2)コマンドラインでcron.phpを起動する.
一般的に,この処理(cron.php)を5分間隔で行うことが推奨されています.Webブラウザを用いてcron.phpを5分間隔で実行するのは現実的な方法ではありません.cron.phpを自動実行するための手段は,いくつか存在します.ひとつは定期的にhttp://localhost/admin/cron.phpをHTTP手順で呼ぶ方法です.そのためのソフトウェアとしてWindows用にはMoodleCronというサービス型のプログラムが提供されています.ただ,このプログラムは(1)時々,動作に失敗する,(2)イベントログにメッセージが大量に残る,(3)Apacheを介するため処理が重い,という欠点があります.もう一つの方法は,サーバコンピュータ上で,cron.phpをダイレクトに実行する方法です.これにはC:\xampplite\phpフォルダ中のPHPの実行プログラムを利用します.
コマンドプロンプトを開いて,以下のコマンドを実行して見て下さい.
c:\xampplite\php\php.exe -f c:\xampplite\moodle\admin\cron.php

もしコマンドプロンプト内でcron.phpの処理結果が表示されたならば問題ありません.なお,c:\xampplite\phpフォルダ内には,php.exe,php-cgi.exe,php-win.exeの3つの実行形式があります.php.exeはコマンドラインでPHPを実行するためのもので,php-cgi.exeはCGIとして呼ばれることを前提とした実行形式です.これらはWindowsから起動された場合にコマンドプロンプトを自動的に開いて実行されますが,php-win.exeはコマンドプロンプトを開かずに(つまり画面表示を一切行わない)バックグラウンドで実行する実行形式です.
(3)cron.phpを一定時間周期で実行する.
(次へ: phpMyAdminのMoodleへの組み込み) (作業手順に戻る)