「Moodleの移行」の版間の差分
Mitsuhiro Yoshida (トーク | 投稿記録) |
Takayuki ISHIKAWA (トーク | 投稿記録) 細 (整形) |
||
1行目: | 1行目: | ||
あなたの Moodle サイトを別のサーバに移動する必要が生じる場合もあることでしょう。例えば、共有ホスティングから専用サーバに移行する場合等です - これは、Moodle サイトの移行 (migration) として知られています。よくやってしまう間違いで、気を付ける必要があるのは、あなたの Moodle の設定ファイル「config.php」詳細を忘れずに変更することです。 | |||
== | ==完全な Moodle サイトを移行する - 方法1== | ||
ここでは、サイト全体を1台のサーバから別のサーバに移行することも含みます。あなたが新しいサーバに対して、新しいドメイン/IPアドレスを変更する場合、以下のステップを実行してください: | ここでは、サイト全体を1台のサーバから別のサーバに移行することも含みます。あなたが新しいサーバに対して、新しいドメイン/IPアドレスを変更する場合、以下のステップを実行してください: | ||
* '''メンテナンスモード''' - | * '''メンテナンスモード''' - Moodle データベースにデータが新たに追加されることを防ぐため、あなたの現在の Moodle サイトをメンテナンスモードに変更してください。移行中は、メンテナンスモードに影響を受けない管理者をログインさせないでください。 | ||
* ''' | * '''あなたの Moodle データベースをバックアップする''' - MySQL ダンプの説明を含む、[[Moodleのアップグレード]]ページのインストラクションに従ってください。 | ||
* ''' | * '''Moodle ソフトウェアをコピーする''' - Moodle コード自体を新しいサーバにコピーしてください - 可能でしたら、コードを最新のものにアップグレードしてください。 | ||
* '''<code>$CFG->wwwroot</code>を変更する''' - あなたの (可能であれば新しい) | * '''<code>$CFG->wwwroot</code> を変更する''' - あなたの (可能であれば新しい) Moodle ディレクトリ内で、「config.php」ファイルの <code>$CFG->wwwroot</code> 変数を新しいサーバに合わせて変更してください。 | ||
* '''データディレクトリ (moodledata) のコンテンツをコピーする''' - あなたのデータディレクトリのコンテンツ (<code>$CFG->dataroot</code>の設定値を確認してください) を新しいサーバにコピーしてください。新しいデータディレクトリにおいてもファイルのパーミッションが同じになっているか確認してください。また、あなたが新しいサーバでデータディレクトリの場所を変更した場合、<code>$CFG->dataroot</code>の設定値を変更してください。 | * '''データディレクトリ (moodledata) のコンテンツをコピーする''' - あなたのデータディレクトリのコンテンツ (<code>$CFG->dataroot</code> の設定値を確認してください) を新しいサーバにコピーしてください。新しいデータディレクトリにおいてもファイルのパーミッションが同じになっているか確認してください。また、あなたが新しいサーバでデータディレクトリの場所を変更した場合、<code>$CFG->dataroot</code> の設定値を変更してください。 | ||
* ''' | * '''あなたの Moodle URI を変更する''' - あなたが新しい URI を使用する場合、Moodle データベースを新しい URI 用に変更する必要があります。この作業は、写真、ファイルへのリンク等、古い <code>$CFG->wwwroot</code> の設定値を参照する絶対リンクとして保存されたデータを変更するため必要です。Moodle サーバに関する MySQL バックアップダンプをそのまま読み込む場合、絶対参照リンクが壊れてしまいます。新しい URI に変更するには、2つの方法があります: | ||
:(a) | :(a) 最初の方法では、Moodle データベースをバックアップする直前、あなたのサイトが稼動している場合、Moodle スクリプト「replace.php」を使用して、Moodle URI を変更します。あなたのブラウザに次の URI を入力してください: <nowiki>http://yourserver.com/admin/replace.php</nowiki> | ||
: | :あなたの古いサーバの URI (<nowiki>http://oldserver.com/</nowiki>) および新しいサーバの URI (<nowiki>http://newserver.com/</nowiki>) を入力した後、「Yes, do it now」ボタンをクリックしてください。MySQL テーブルが修正されます。また、ウェブサーバを再起動することで、キャッシュされているリンクをクリアしてください。次に、もう一度 Moodle データベースをバックアップします - このバックアップには、正しい URI が含まれています。 | ||
:(b) | :(b) 2番目の方法では、最初の Moodle データベースをバックアップします。次に、あなたのテキストエディタの検索および置換機能 (または、sed のような Unix ツール) を使用して、MySQL バックアップファイル内の古い URI を新しい URI に入れ替えます。以下、sed コマンドの例です: | ||
: <code>#sed -e 's/oldserver.com/newserver.com/g' oldmysqldump.sql > newmysqldump.sql</code> | : <code>#sed -e 's/oldserver.com/newserver.com/g' oldmysqldump.sql > newmysqldump.sql</code> | ||
:'''ヒント''': mysqldumpファイルで古いサーバがどのように参照されているのか確認しても良いでしょう。: | :'''ヒント''': mysqldumpファイルで古いサーバがどのように参照されているのか確認しても良いでしょう。:URI の変更後、MySQLデータベースをリストアしてください。 | ||
* '''移行をテストする''' - | * '''移行をテストする''' - 新しいインストールをテストするには、ブラウザを使用して、新しいサーバの Moodle のURIにアクセスしてください。あなたが多数のコースワーク内のリンクを確認できた場合、新しい Moodle サイトのメンテナンスモードを解除してください。 | ||
'''関連情報''': [http://moodle.org/mod/forum/discuss.php?d=85812 フォーラムディスカッション (英語)] | '''関連情報''': [http://moodle.org/mod/forum/discuss.php?d=85812 フォーラムディスカッション (英語)] Windowsシステム内の Moodle データの移行 | ||
== | ==完全な Moodle サイトを移行する - 方法2== | ||
あなたは、両方のサーバでシェルアクセスできますか? もしそうでしたら、以下の方法は、* | あなたは、両方のサーバでシェルアクセスできますか? もしそうでしたら、以下の方法は、*nix ベースのサイトで Moodle を移行するための、非常に素早い効率的な方法です。 | ||
また、スナップショットまたはテストサイトの作成も有用です。 | また、スナップショットまたはテストサイトの作成も有用です。 | ||
*新しい空のデータベースを'''新しい'''サーバにセットアップしてください。 | *新しい空のデータベースを'''新しい'''サーバにセットアップしてください。 | ||
* | *あなたの Moodle サイトをメンテナンスモードに変更してください。 | ||
*'''古い'''サーバのシェルにログインしてください。 | *'''古い'''サーバのシェルにログインしてください。 | ||
*'''moodledata'''および'''public_html''' ( | *'''moodledata''' および '''public_html''' (または、あなたの Moodle がインストールされているディレクトリ) を新しいサーバにコピーするには、rsync を使用してください - それぞれのディレクトリで rsync を実行します (あなたの環境に従って、大文字の部分を入れ替えてください。SOURCE = あなたがコピーしたいディレクトリです): | ||
::<code>rsync -av -e ssh SOURCE/ USERNAME@NEW_SERVER.COM:/PATH/TO/DESTINATION/</code> | ::<code>rsync -av -e ssh SOURCE/ USERNAME@NEW_SERVER.COM:/PATH/TO/DESTINATION/</code> | ||
*次のコマンドを実行することで、既存のデータベースをダンプして、新しいデータベースにデータをインポートしてください: | *次のコマンドを実行することで、既存のデータベースをダンプして、新しいデータベースにデータをインポートしてください: | ||
::<code>mysqldump --allow-keywords --opt -uMySQL_USERNAME -pPASSWORD DATABASE | ssh USER@DOMAIN "mysql -uMySQL_USERNAME -pPASSWORD DATABASE"</code> | ::<code>mysqldump --allow-keywords --opt -uMySQL_USERNAME -pPASSWORD DATABASE | ssh USER@DOMAIN "mysql -uMySQL_USERNAME -pPASSWORD DATABASE"</code> | ||
*'''新しいサーバ'''の'''config.php'''ファイルを適切に修正してください。 | *'''新しいサーバ'''の'''config.php'''ファイルを適切に修正してください。 | ||
*内部のMoodleリンクを修正するには、あなたの新しいMoodleにログインした後、'''admin/replace.php''' | *内部のMoodleリンクを修正するには、あなたの新しいMoodleにログインした後、'''admin/replace.php'''を使用して、古い URI を新しい URI に変更してください。 | ||
*すべてが動作していることを確認してください。 | *すべてが動作していることを確認してください。 | ||
15分ほどかかります。 | 15分ほどかかります。 | ||
すべての作業が正常に完了した場合、必要に応じて DNS の設定を変更してください。新しい Moodle サイトのメンテナンスモードを解除して、古いサイトから新しいサイトへ移行してください。 | |||
==他に考慮すべきポイント== | ==他に考慮すべきポイント== | ||
=== | ===Moodle をアップグレードする=== | ||
Moodle を移行する場合、Moodle を最新バージョンにアップグレードすることは、良いアイディアです。もし、あなたがサーバを管理しているのでしたら、[[アップグレード|Moodleアップグレード]]のインストラクションに従ってください。そうでない場合、あなたのホストで Moodle をアップグレードできるかどうか確認してください。 | |||
===サーバ間の単一コースリストア=== | ===サーバ間の単一コースリストア=== | ||
56行目: | 56行目: | ||
修正したファイルをリストアする場合、新しいコースの正しいファイルパスが使用されます。 | 修正したファイルをリストアする場合、新しいコースの正しいファイルパスが使用されます。 | ||
=== | ===DNS およびマスカレーディングの変更=== | ||
あなたは、新しい Moodle サイトのために、DNS エントリを修正しなければならなかったかもしれません。もしそうでしたら、DNS の変更がレプリケーションされるまで時間がかかります。我慢してください。あなたのサーバがファイアウォールの背後に設置されている場合、新しいサーバにアクセスできるよう、ファイアウォールのルールを変更する必要があります。詳細は、[[マスカレーディング]]をご覧ください。 | |||
===内部および外部アクセス=== | ===内部および外部アクセス=== | ||
あなたの Moodle サイトを内部ネットワークおよびインターネットからアクセスできるよう設定している場合、新しいサイトに内部および外部からアクセスできるかどうか確認してください。 | |||
==関連情報== | ==関連情報== | ||
Using | Using Moodle フォーラムディスカッション: | ||
* [http://moodle.org/mod/forum/discuss.php?d=62959 Moodle URIを変更する] - 英語 | * [http://moodle.org/mod/forum/discuss.php?d=62959 Moodle URIを変更する] - 英語 | ||
* [http://moodle.org/mod/forum/discuss.php?d=57477 サイトアドレスを変更する] - 英語 | * [http://moodle.org/mod/forum/discuss.php?d=57477 サイトアドレスを変更する] - 英語 |
2012年9月16日 (日) 04:42時点における最新版
あなたの Moodle サイトを別のサーバに移動する必要が生じる場合もあることでしょう。例えば、共有ホスティングから専用サーバに移行する場合等です - これは、Moodle サイトの移行 (migration) として知られています。よくやってしまう間違いで、気を付ける必要があるのは、あなたの Moodle の設定ファイル「config.php」詳細を忘れずに変更することです。
完全な Moodle サイトを移行する - 方法1
ここでは、サイト全体を1台のサーバから別のサーバに移行することも含みます。あなたが新しいサーバに対して、新しいドメイン/IPアドレスを変更する場合、以下のステップを実行してください:
- メンテナンスモード - Moodle データベースにデータが新たに追加されることを防ぐため、あなたの現在の Moodle サイトをメンテナンスモードに変更してください。移行中は、メンテナンスモードに影響を受けない管理者をログインさせないでください。
- あなたの Moodle データベースをバックアップする - MySQL ダンプの説明を含む、Moodleのアップグレードページのインストラクションに従ってください。
- Moodle ソフトウェアをコピーする - Moodle コード自体を新しいサーバにコピーしてください - 可能でしたら、コードを最新のものにアップグレードしてください。
$CFG->wwwroot
を変更する - あなたの (可能であれば新しい) Moodle ディレクトリ内で、「config.php」ファイルの$CFG->wwwroot
変数を新しいサーバに合わせて変更してください。- データディレクトリ (moodledata) のコンテンツをコピーする - あなたのデータディレクトリのコンテンツ (
$CFG->dataroot
の設定値を確認してください) を新しいサーバにコピーしてください。新しいデータディレクトリにおいてもファイルのパーミッションが同じになっているか確認してください。また、あなたが新しいサーバでデータディレクトリの場所を変更した場合、$CFG->dataroot
の設定値を変更してください。 - あなたの Moodle URI を変更する - あなたが新しい URI を使用する場合、Moodle データベースを新しい URI 用に変更する必要があります。この作業は、写真、ファイルへのリンク等、古い
$CFG->wwwroot
の設定値を参照する絶対リンクとして保存されたデータを変更するため必要です。Moodle サーバに関する MySQL バックアップダンプをそのまま読み込む場合、絶対参照リンクが壊れてしまいます。新しい URI に変更するには、2つの方法があります:
- (a) 最初の方法では、Moodle データベースをバックアップする直前、あなたのサイトが稼動している場合、Moodle スクリプト「replace.php」を使用して、Moodle URI を変更します。あなたのブラウザに次の URI を入力してください: http://yourserver.com/admin/replace.php
- あなたの古いサーバの URI (http://oldserver.com/) および新しいサーバの URI (http://newserver.com/) を入力した後、「Yes, do it now」ボタンをクリックしてください。MySQL テーブルが修正されます。また、ウェブサーバを再起動することで、キャッシュされているリンクをクリアしてください。次に、もう一度 Moodle データベースをバックアップします - このバックアップには、正しい URI が含まれています。
- (b) 2番目の方法では、最初の Moodle データベースをバックアップします。次に、あなたのテキストエディタの検索および置換機能 (または、sed のような Unix ツール) を使用して、MySQL バックアップファイル内の古い URI を新しい URI に入れ替えます。以下、sed コマンドの例です:
#sed -e 's/oldserver.com/newserver.com/g' oldmysqldump.sql > newmysqldump.sql
- ヒント: mysqldumpファイルで古いサーバがどのように参照されているのか確認しても良いでしょう。:URI の変更後、MySQLデータベースをリストアしてください。
- 移行をテストする - 新しいインストールをテストするには、ブラウザを使用して、新しいサーバの Moodle のURIにアクセスしてください。あなたが多数のコースワーク内のリンクを確認できた場合、新しい Moodle サイトのメンテナンスモードを解除してください。
関連情報: フォーラムディスカッション (英語) Windowsシステム内の Moodle データの移行
完全な Moodle サイトを移行する - 方法2
あなたは、両方のサーバでシェルアクセスできますか? もしそうでしたら、以下の方法は、*nix ベースのサイトで Moodle を移行するための、非常に素早い効率的な方法です。
また、スナップショットまたはテストサイトの作成も有用です。
- 新しい空のデータベースを新しいサーバにセットアップしてください。
- あなたの Moodle サイトをメンテナンスモードに変更してください。
- 古いサーバのシェルにログインしてください。
- moodledata および public_html (または、あなたの Moodle がインストールされているディレクトリ) を新しいサーバにコピーするには、rsync を使用してください - それぞれのディレクトリで rsync を実行します (あなたの環境に従って、大文字の部分を入れ替えてください。SOURCE = あなたがコピーしたいディレクトリです):
rsync -av -e ssh SOURCE/ USERNAME@NEW_SERVER.COM:/PATH/TO/DESTINATION/
- 次のコマンドを実行することで、既存のデータベースをダンプして、新しいデータベースにデータをインポートしてください:
mysqldump --allow-keywords --opt -uMySQL_USERNAME -pPASSWORD DATABASE | ssh USER@DOMAIN "mysql -uMySQL_USERNAME -pPASSWORD DATABASE"
- 新しいサーバのconfig.phpファイルを適切に修正してください。
- 内部のMoodleリンクを修正するには、あなたの新しいMoodleにログインした後、admin/replace.phpを使用して、古い URI を新しい URI に変更してください。
- すべてが動作していることを確認してください。
15分ほどかかります。
すべての作業が正常に完了した場合、必要に応じて DNS の設定を変更してください。新しい Moodle サイトのメンテナンスモードを解除して、古いサイトから新しいサイトへ移行してください。
他に考慮すべきポイント
Moodle をアップグレードする
Moodle を移行する場合、Moodle を最新バージョンにアップグレードすることは、良いアイディアです。もし、あなたがサーバを管理しているのでしたら、Moodleアップグレードのインストラクションに従ってください。そうでない場合、あなたのホストで Moodle をアップグレードできるかどうか確認してください。
サーバ間の単一コースリストア
特に移行をテストしている場合、あなたは古いサイトの単一コースを新しいコースにリストアしてみることもあるでしょう。バックアップしたサーバとは異なるサーバにMoodleバックアップをリストアする場合、ファイルに対する絶対参照リンクが壊れてしまいます。この問題を修正するには、「backup-coursename.zip」ファイルを開いて、「moodle.xml」のリンクを $@FILEPHP@$
と置換してください。
例えば、「http://yourserver.com/file.php/243/」と「$@FILEPHP@$
」を置換します。
修正したファイルをリストアする場合、新しいコースの正しいファイルパスが使用されます。
DNS およびマスカレーディングの変更
あなたは、新しい Moodle サイトのために、DNS エントリを修正しなければならなかったかもしれません。もしそうでしたら、DNS の変更がレプリケーションされるまで時間がかかります。我慢してください。あなたのサーバがファイアウォールの背後に設置されている場合、新しいサーバにアクセスできるよう、ファイアウォールのルールを変更する必要があります。詳細は、マスカレーディングをご覧ください。
内部および外部アクセス
あなたの Moodle サイトを内部ネットワークおよびインターネットからアクセスできるよう設定している場合、新しいサイトに内部および外部からアクセスできるかどうか確認してください。
関連情報
Using Moodle フォーラムディスカッション:
- Moodle URIを変更する - 英語
- サイトアドレスを変更する - 英語
- 移行中、アップグレードする - 英語
- 内部および外部アクセス - 英語