Moodleの移行

Moodleサイトをあるサーバから別のサーバに移動する必要がある場合があります。たとえば、Moodleサイトを共有ホスティングサービスのサーバから専用サーバに移動するなどです。

おすすめの方法

これには、サイト全体をあるサーバーから別のサーバーに移動することが含まれます。ドメイン/ IPアドレスを新しいサーバーに変更する場合は、次の手順を実行する必要があります。

メンテナンスモードをオンにする

Moodleデータベースにそれ以上追加されないようにするには、 サイト管理>サーバー>メンテナンスモードで現在のMoodleサイトをメンテナンスモードにしてください。メンテナンスモード設定の影響を受けないため、移行中は管理者にログインさせないでください。

古いサーバでMoodleデータベースをバックアップする

データベースをバックアップする正しい方法は、使用しているデータベースシステムによって異なります。以下の手順はMySQLデータベースをバックアップする1つの方法です。もう1つの選択肢はphpMyAdminのようなツールを使って手動でバックアップをとることです。あなたのデータベースのための文書はより多くの選択肢を与えるでしょう。このようなバックアップを実行する方法はたくさんあります。データベースをバックアップするためにUnix上のコマンドラインから実行できる小さなスクリプトの概要は次のとおりです。

cd /my/backup/directory
mv moodle-database.sql.gz moodle-database-old.sql.gz
mysqldump -h example.com -u myusername -p'mypassword' -C -Q -e --create-options mydatabasename > moodle-database.sql

パスワードなしで "-p"と書いただけの場合は、入力を促されます。

データベースバックアップを新しいサーバーにリストアします。

データベースのバックアップファイルを新しいサーバーにコピーし、新しいデータベースサーバーにリストアします。

新しいサーバーに新しいデータベースを作成したら:

mysql -p new_database < moodle-database.sql

他のデータベースの場合は、それらの指示に従ってバックアップをリストアします。

古いサーバーから新しいサーバーにmoodledataをコピーする

データディレクトリの内容をコピーします。
$CFG->dataroot
新しいサーバーに)。これは大量のデータになる可能性があるため、rsyncなどの優れたデータコピーツールの使用を検討してください。 FTPクライアントを使用している場合は、
filedir
フォルダはバイナリモードである必要があります。そうしないと、ファイルはプロセス中に破損します。

注意:/ moodledata / cache、/ moodledata / localcache、/ moodledata / sessions、/ moodledata / temp、または/ moodledata / trashdirディレクトリの内容をコピーする必要はありません。これらのファイルを省略すると、転送時間が大幅に短縮されます。

コピーしたファイルのファイル許可を確認してください。 Webサーバーは読み取りおよび書き込みアクセス権を必要とします。

古いサーバから新しいサーバにMoodleコードをコピーします

あなたはMoodleコード自体を新しいサーバにコピーする必要があります(これはあなたのwebrootフォルダにあるMoodleフォルダ、例えば/ var / wwwやpublic_htmlです)。

コピーしたファイルのファイル許可を確認してください。 Webサーバーは読み取りアクセス権が必要です。

新しいサーバーのURLでconfig.phpを更新します。

移行によってMoodleが新しいURLに移動する場合は、新しい場所を指すようにconfig.phpの$ CFG-> wwwrootを更新してください。

他のプロパティもそこで確認してください。パス$ CFG-> moodledataはまだ正しいですか?データベース接続設定を変更する必要がありますか?

コピーしたサイトをテストする

これで、新しいサイトにadminとしてログインでき、ほとんどのものが機能していることを確認できます。

データベース内のwwwrootを含むリンクを更新する

私たちが修正していないことの一つは、データベースに保存されている内部リンクです。これらを修正するには、{wwwroot} /admin/tool/replace/index.phpに移動するSearch and replaceツールの購入を使用してください。

古いサーバー(https://oldserver.com/)と新しいサーバー(https://newserver.com/)のURLを入力すると、データベースに保存されているすべてのリンクが修正されます。

サイトをメンテナンスモードから解除する

移行をもう少しテストしてから、満足したら、サイトをメンテナンスモードから解除することを忘れないでください。

手っ取り早い方法

両方のサーバーにシェルアクセスがある場合は、これがコマンドラインベースの簡単な方法です。

  • 新しいサーバーに新しい空のデータベースを設定します。
  • 既存のMoodleサイトをメンテナンスモードにします。
  • 古い既存サーバーのシェルにログインします。
  • rsyncを使用してmoodledatapublic_htmlまたはmoodleフォルダ(またはあなたのMoodleインストールがあるディレクトリ)を新しいサーバにコピーします - それぞれのディレクトリに対して(capsをあなたの詳細に置き換えます; 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"
  • フルサイトのURLに続くデータベース内のリンクをすべて置き換えます。
#sed -e 's/oldserver.com/newserver.com/g' oldmysqldump.sql > newmysqldump.sql
  • 新しいサーバー上で 、該当する場合は関連する詳細(データベース名とユーザーの詳細、wwwrootとdatarootなど)でconfig.phpを更新します。
  • 所有権と許可がmoodleコードとmoodledataディレクトリの両方で正しいことを確認してください。
  • すべてが機能していることを確認してください。

小さなサイトには約15分かかります。ただし、大規模サイトに数ギガバイトのデータを転送すると、ネットワーク接続とハードドライブの読み取り/書き込み速度によっては数時間かかる場合があります。

問題がなければ、リダイレクトを設定し、必要に応じてDNSを変更し、新しいサイトをメンテナンスモードから外し、古いサイトを「オフ」にします。

  • IPアドレスを古いサーバーから新しいサーバーに切り替える場合は、IPアドレスの競合や混乱を避けるために、新しいサーバーを起動する前に古いサーバーの電源を切る必要があります。

その他の考慮事項

同時にMoodleをアップグレードしますか?

Moodleを移行する作業をしながら、同時にMoodleを最新バージョンにアップグレードすることをお勧めします 。一方、それをして何かが壊れた場合、どの変更が問題を引き起こしたのかわからないので、もっと慎重なアプローチは一度に一つのことを変更し、その間にすべてをテストすることです。 。

DNSとなりすましの変更

新しいMoodleサイトのDNSエントリを変更しなければならなかったかもしれません。変更した場合は、変更が反映されるまでしばらく時間がかかりますので、しばらくお待ちください。サーバーがファイアウォールの内側にある場合は、新しいサーバーへのアクセスを許可するようにファイアウォールの規則を変更する必要があります。 なりすましのドキュメントを参照してください。

内部および外部アクセス

あなたのMoodleサイトがネットワーク経由でもインターネット経由でもアクセスできるように設定されている場合は、新しいサイトが内部的にも外部的にもアクセスできることを確認してください。

reCAPTCHA

新しいドメインに移行し、 Email-based_self-registrationを設定した場合は、Googleで新しいAPIキーを作成する必要があります。 Email-based_self-registrationに説明とgoogleへのリンクがあります。

関連情報

質問は?

moodle.orgのインストールとアップグレードのヘルプフォーラムに投稿してください。