Moodleの移行

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

あなたの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のようなUnixnツール) を使用して、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フォーラムディスカッション: