UnixおよびLinuxでは、ほぼすべてのシステムに標準で搭載されている組み込みのcronプログラムを使用します。ウェブサーバユーザの「crontab」(cronコマンドを保持するテーブル)にコマンドを追加する必要があります。
Moodleのcronプロセスを呼び出すには、2つの異なる方法を使用できます。
注:ここに示すコマンドを機能させるには、crontabに追加する必要があります(後ほど説明します)。ただし、まずコマンドラインで実行して動作することを確認できますし、確認すべきです。
方法1:コマンドライン(CLI)のcron
選択できる場合は、通常これがMoodleのcronを実行する最良の方法です。
PHPはコマンドラインからプログラムを直接実行することもできます。そのためにはシステムが適切に設定されている必要があり、具体的にはPHPの「CLI」バージョンがインストールされている必要があります。PHPがインストールされているほとんどのシステムには、デフォルトでインストールされています。PHP CLIバージョンがインストールされている場合は、これがcronを呼び出す推奨の方法です。正しいコマンドは次のようになります...
/usr/bin/php /path/to/moodle/admin/cli/cron.php
(必要に応じて、moodleとphpへの正しいパスに置き換えてください)
これをコマンドラインに入力するだけで、動作するかどうかを確認できます。PHPへのパスがわからない場合は、「which php」と入力できます。
ヒント::問題がある場合は、PHPページをご覧ください。特に、CLIのPHPコマンドが、適切な設定になっていない別のphp.iniを使用している可能性を疑ってください。
方法2:ウェブベースのcron
注:ウェブベースのcronスクリプトを使用するには、まずcron設定を確認して、この方法が許可されていることを確かめる必要があります。
この方法では、次のウェブページを呼び出します(ブラウザから試すことができます)。
http://url.of.your/moodle/admin/cron.php
サーバ上でこれを実行するには、コマンドライン(テキストベース)のブラウザが必要です。次のような選択肢があります(たとえば、OSXにはcurlのみが付属しています)...
/usr/bin/wget -q -O /dev/null/ http://url.of.your/moodle/admin/cron.php
(出力は表示されません。テストするには-O /dev/null/を削除してください)
...または...
/usr/bin/curl http://url.of.your/moodle/admin/cron.php -o /dev/null/ -silent
(出力は表示されません。テストするには-o /dev/null/ -silentを削除してください)
Unix/Linuxでのcrontabプログラムの使用
Moodleのcronを呼び出す適切なコマンドを選択(してテスト!)したら、定期的に実行されるようスケジュールするため、それをウェブサーバユーザの「crontab」に追加する必要があります。「crontab」は、ユーザのcronコマンドを含むファイルであると同時に、それを編集するために使用する(コマンドライン)プログラムの名前でもあります。次のコマンドを(rootとして)使用し、「www-data」の部分を正しいユーザに置き換えてください(例:CentOSでは「apache」、Debian/Ubuntuでは「www-data」、macOSでは「_www」。Googleで調べればわかります!)
# crontab -u www-data -e
エディタウィンドウが表示されます(初回は、使用するエディタを尋ねられることがあります)。次のように、ファイルの末尾にコマンドを追加します(ファイルは空の場合も、説明のコメントが含まれている場合もあります)。
* * * * * /usr/bin/php /path/to/moodle/admin/cli/cron.php
最初の5つの*のエントリで時刻を指定し、その後に実行するコマンドが続きます。これは、コマンドをできるだけ頻繁に、つまり毎分実行することを意味します。
cron式の詳細については、https://en.wikipedia.org/wiki/Cron#CRON_expression をご覧ください。