Moodleの移行

提供:MoodleDocs
2012年9月16日 (日) 04:42時点におけるTakayuki ISHIKAWA (トーク | 投稿記録)による版 (整形)
移動先:案内検索

あなたの 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 フォーラムディスカッション: