UnixまたはLinuxでのCron

提供:MoodleDocs
移動先:案内検索


UnixおよびLinuxではほぼすべてのシステムに標準装備されているcronプログラムを使用します。あなたはウェブサーバユーザの「crontab」(クーロンコマンドを保持するテーブル) にコマンドを追加する必要があります。

Moodleのcronプロセスを起動するには以下2つの異なる方法があります:

注意:表示されているコマンドを機能させるにはcrontabに追加する必要があります (後ほど、説明します)。しかし、まずコマンドラインで実行して動作をご確認ください。

方法1: コマンドライン (cli) cron

あなたに選択肢がある場合、通常、これがMoodle cronを実行する最適な方法です。

PHPはコマンドラインから直接プログラムを実行することもできます。そのためにはあなたのシステムをセットアップする必要があります。具体的には「CLI」バージョンのPHPをインストールする必要があります。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

これをサーバで実行するにはコマンドライン (テキストベース) ブラウザが必要です。 可能性は以下のとおりです (例えばvにはcurlのみ実装されています) ...

/usr/bin/wget -q -O /dev/null/ http://url.of.your/moodle/admin/cron.php

(出力は表示されません。テストするには「-O /dev/null/」を削除してください) ...OR... ... または ...

/usr/bin/curl http://url.of.your/moodle/admin/cron.php -o /dev/null/ -silent

(出力は表示されません。テストするには「-O /dev/null/」を削除してください)

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つの*エントリでは実行する時間およびコマンドを指定します。これはできるだけ頻繁につまり1分ごとにコマンドを実行することを意味しています。

cron設定に関する詳細は次をご覧ください: https://en.wikipedia.org/wiki/Cron#CRON_expression

関連情報