Mahara日本語ドキュメント/システム管理者ガイド/Cronジョブ: Difference between revisions
From Mahara Wiki
< Mahara日本語ドキュメント | システム管理者ガイド
(Created page with "予約された時間により、Maharaでは、いくつかのタスクを実行する必要があります。これは、'''cronジョブ'''を使用することで実現され…") |
No edit summary |
||
Line 9: | Line 9: | ||
<div id="section_1"> | <div id="section_1"> | ||
== Cronジョブの設定方法 == | ==Cronジョブの設定方法== | ||
cronスクリプトは、<code>lib/cron.php</code> です。 あなたは、このスクリプトに毎分アクセスするよう、設定が必要です - [http://your-mahara-site.org/lib/cron. | cronスクリプトは、<code>lib/cron.php</code> です。 あなたは、このスクリプトに毎分アクセスするよう、設定が必要です - [http://your-mahara-site.org/lib/cron.phpã¸ã®ã¦ã§ãã¢ã¯ã»ã¹ã«ããå®è¡ http://your-mahara-site.org/lib/cron...へのウェブアクセスによる実行]、またはスクリプトを実行するコマンドライン /path/to/mahara/htdocs/lib/cron.php です。両者とも利点および不利点があります。 | ||
<div id="section_2"> | <div id="section_2"> | ||
=== ウェブよりcron.phpを実行する === | ===ウェブよりcron.phpを実行する=== | ||
これは、cronを実行するシンプルな方法です。crontabにて、あなたは、以下の行を入力するだけです: | これは、cronを実行するシンプルな方法です。crontabにて、あなたは、以下の行を入力するだけです: | ||
Line 27: | Line 27: | ||
</div><div id="section_3"> | </div><div id="section_3"> | ||
=== コマンドラインよりcron.phpを実行する === | ===コマンドラインよりcron.phpを実行する=== | ||
これは、若干難しい方法ですが、あなたは、cron出力を分けてログに記録することができます。あなたがcronジョブを必要な権限すべてを持ったウェブサーバユーザとして実行させる点がトリックです。または、ユーザフィールドにウェブサーバユーザを追加して、rootのcrontabに記述します: | これは、若干難しい方法ですが、あなたは、cron出力を分けてログに記録することができます。あなたがcronジョブを必要な権限すべてを持ったウェブサーバユーザとして実行させる点がトリックです。または、ユーザフィールドにウェブサーバユーザを追加して、rootのcrontabに記述します: |
Revision as of 16:29, 11 Mayıs 2011
予約された時間により、Maharaでは、いくつかのタスクを実行する必要があります。これは、cronジョブを使用することで実現されます。Maharaスクリプトに毎分アクセスするジョブを設定することで、残りの作業はMaharaが引き受けます。
ジョブには以下の処理が含まれます:
- 配信されたRSSフィードの更新
- フォーラム投稿および他の通知に関する送信メール
- 保存スペースを空けるため、古いファイルのクリーンアップ
Cronジョブの設定方法
cronスクリプトは、lib/cron.php
です。 あなたは、このスクリプトに毎分アクセスするよう、設定が必要です - http://your-mahara-site.org/lib/cron...へのウェブアクセスによる実行、またはスクリプトを実行するコマンドライン /path/to/mahara/htdocs/lib/cron.php です。両者とも利点および不利点があります。
ウェブよりcron.phpを実行する
これは、cronを実行するシンプルな方法です。crontabにて、あなたは、以下の行を入力するだけです:
* * * * * curl http://your-mahara-site.org/lib/cron.php
「毎分、crulを使用して、cron.phpをスクリプトを実行する」と読むことができます。
これは、非常にシンプルな方法です。また、通常あなたは望まないと思いますが、ウェブサーバのエラーログに、cron出力が記録されることを意味します。しかし、動作しないよりは良いでしょう。
コマンドラインよりcron.phpを実行する
これは、若干難しい方法ですが、あなたは、cron出力を分けてログに記録することができます。あなたがcronジョブを必要な権限すべてを持ったウェブサーバユーザとして実行させる点がトリックです。または、ユーザフィールドにウェブサーバユーザを追加して、rootのcrontabに記述します:
ウェブサーバユーザのcrontabでは:
* * * * * php /path/to/mahara/htdocs/lib/cron.php >> /path/to/mahara/cron.log 2>&1
または、rootのcrontabで (www-data を適切なウェブサーバユーザに換えてください):
* * * * * www-data php /path/to/mahara/htdocs/lib/cron.php >> /path/to/mahara/cron.log 2>&1
この方法には、いくつかの注意点があります:
- ウェブサーバユーザにより、ログファイルを書き込めることを確認してください。あなたは、debianにおいて、ディレクトリ「directory /var/log/mahara-cron」を作成して、所有権を「www-data」にすることができます。そして、ログファイルのパスを「/var/log/mahara-cron/cron.log」にしてください。
- コマンドラインで使用するPHPのphp.iniは、Apacheで使用するPHPのものとは異なります。例えば、Debianでは、コマンドラインのPHPが「/etc/php5/cli/php.ini」を使用するのに対して、Apacheでは「/etc/php5/apache2/php.ini」を使用します。そのため、あなたは、両者を同じにする必要があります。または、下記のように、あなたのPHPコールに「-c」フラグを使用しても良いでしょう: * * * * * php -c /etc/php5/apache2/php.ini /path/to/mahara/htdocs/lib/cron.php >> /path/to/mahara/cron.log 2>&1
- いくつかのディストリビューション (例 Debian) 配下では、拡張モジュールのロード方法により、PHPセグメンテーション違反が生じる場合があります。これは、postgresモジュールの前にphp curlモジュールがロードされることにより発生します。あなたは、curl.iniを語彙的に後ろに移動することで、この問題を解決できます (例 Z99_curl.ini)。