「Moodleの移行」の版間の差分

提供:MoodleDocs
移動先:案内検索
 
(3人の利用者による、間の15版が非表示)
1行目: 1行目:
作成中です - [[利用者:Mitsuhiro Yoshida|Mitsuhiro Yoshida]] 2008年10月4日 (土) 11:35 (CDT)
{{Moodleのインストール}}
Moodleサイトをあるサーバから別のサーバに移動する必要がある場合があります。たとえば、Moodleサイトを共有ホスティングサービスのサーバから専用サーバに移動します。


あなたのMoodleサイトを別のサーバに移動する必要が生じる場合もあることでしょう。例えば、共有ホスティングから専用サーバに移行する場合等です - これは、Moodleサイトの移行 (migration) として知られています。よくやってしまう間違いで、気を付ける必要があるのは、あなたのMoodleの設定ファイル「config.php」詳細を忘れずに変更することです。
==推奨される方法==


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


ここでは、サイト全体を1台のサーバから別のサーバに移行することも含みます。あなたが新しいサーバに対して、新しいドメイン/IPアドレスを変更する場合、以下のステップを実行してください:
===メンテナンスモードをオンにします===
* '''メンテナンスモード''' - Moodleデータベースにデータが新たに追加されることを防ぐため、あなたの現在のMoodleサイトをメンテナンスモードに変更してください。移行中は、メンテナンスモードに影響を受けない管理者をログインさせないでください。
* '''あなたのMoodleデータベースをバックアップする''' - MySQLダンプの説明を含む、[[Moodleのアップグレード]]ページのインストラクションに従ってください。
* '''Moodleソフトウェアをコピーする''' - Moodleコード自体を新しいサーバにコピーしてください - 可能でしたら、コードを最新のものにアップグレードしてください。
* '''<code>$CFG->wwwroot</code>を変更する''' - あなたの (可能であれば新しい) Moodleディレクトリ内で、「config.php」ファイルの<code>$CFG->wwwroot</code>変数を新しいサーバに合わせて変更してください。
* '''データディレクトリ (moodledata) のコンテンツをコピーする''' - あなたのデータディレクトリのコンテンツ (<code>$CFG->dataroot</code>の設定値を確認してください) を新しいサーバにコピーしてください。新しいデータディレクトリにおいてもファイルのパーミッションが同じになっているか確認してください。また、あなたが新しいサーバでデータディレクトリの場所を変更した場合、<code>$CFG->dataroot</code>の設定値を変更してください。
* '''あなたのMoodle URIを変更する''' - あなたが新しいURIを使用する場合、Moodleデータベースを新しいURI用に変更する必要があります。この作業は、写真、ファイルへのリンク等、古い<code>$CFG->wwwroot</code>の設定値を参照する絶対リンクとして保存されたデータを変更するため必要です。Moodleサーバに関するMySQLバックアップダンプをそのまま読み込む場合、絶対参照リンクが壊れてしまいます。新しいURIに変更するには、2つの方法があります:
:(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が含まれています。
Moodleデータベースへのそれ以上の追加を防ぐために、 ''サイト管理 > サーバ > メンテナンスモード'' を介して現在のMoodleサイトを[[メンテナンスモード]]にします。管理者はメンテナンスモード設定の影響を受けないため、移行中に管理者にログインさせないでください。


:(b) 2番目の方法では、最初のMoodleデータベースをバックアップします。次に、あなたのテキストエディタの検索および置換機能 (または、sedのようなUnixnツール) を使用して、MySQLバックアップファイル内の古いURIを新しいURIに入れ替えます。以下、sedコマンドの例です:
===古いサーバにMoodleデータベースをバックアップする===


: <code>#sed -e 's/oldserver.com/newserver.com/g' oldmysqldump.sql > newmysqldump.sql</code>
データベースをバックアップする正しい方法は、使用しているデータベースシステムによって異なります。以下の手順は、MySQLデータベースをバックアップする1つの方法です。もう1つのオプションは、phpMyAdminなどのツールを使用して手動でバックアップを作成することです。データベースのドキュメントには、より多くのオプションがあります。このようなバックアップを実行する方法はたくさんあります。これは、Unixのコマンドラインから実行してデータベースをバックアップできる小さなスクリプトの概要です。


:'''ヒント''': mysqldumpファイルで古いサーバがどのように参照されているのか確認しても良いでしょう。:URIの変更後、MySQLデータベースをリストアしてください。
<pre>
* '''移行をテストする''' - 新しいインストールをテストするには、ブラウザを使用して、新しいサーバのMoodleのURIにアクセスしてください。あなたが多数のコースワーク内のリンクを確認できた場合、新しいMoodleサイトのメンテナンスモードを解除してください。
cd /my/backup/directory
'''関連情報''': [http://moodle.org/mod/forum/discuss.php?d=85812 フォーラムディスカッション (英語)] Windowsシステム内のMoodleデータの移行
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
</pre>


==完全なMoodleサイトを移行する - 方法2==
パスワードなしで ''-p'' と書くだけの場合は、プロンプトが表示されます。


あなたは、両方のサーバでシェルアクセスできますか? もしそうでしたら、以下の方法は、*nixベースのサイトでMoodleを移行するための、非常に素早い効率的な方法です。
===データベースのバックアップを新しいサーバに復元します===


また、スナップショットまたはテストサイトの作成も有用です。
データベースバックアップファイルを新しいサーバにコピーし、新しいデータベースサーバにリストアします。
*新しい空のデータベースを'''新しい'''サーバにセットアップしてください。
 
*あなたのMoodleサイトをメンテナンスモードに変更してください。
新しいサーバに新しいデータベースを作成したら、次のようにします。
*'''古い'''サーバのシェルにログインしてください。
 
*Use rsync to copy '''moodledata''' および '''public_html''' (または、あなたのMoodleがインストールされているディレクトリ) を新しいサーバにコピーするには、rsyncを使用してください - それぞれのディレクトリでrsyncを実行します (あなたの環境に従って、大文字の部分を入れ替えてください。SOURCE = あなたがコピーしたいディレクトリです):
<pre>mysql -p new_database < moodle-database.sql</pre>
 
その他のデータベースについては、バックアップを復元するための指示に従ってください。
 
===古いサーバから新しいサーバにmoodledataをコピーします===
 
データディレクトリの内容をコピーして( <code>$CFG->dataroot</code>値を確認してください)、新しいサーバにコピーします。これは大量のデータになる可能性があるため、[https://rsync.samba.org/rsync]などの優れたデータコピーツールの使用を検討してください。 FTPクライアントを使用している場合、 filedirフォルダの転送は '''BINARY''' モードである必要があります。そうでない場合、ファイルは処理中に破損します。
 
注意:これらのディレクトリの内容をコピーする必要はありません。
* /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はまだ正しいですか?データベース接続設定を変更する必要がありますか?
 
===コピーしたサイトをテストする===
 
これで、管理者として新しいサイトにログインし、ほとんどのものが機能していることを確認できるはずです。
 
===データベース内のwwwrootを含むリンクを更新します===
 
修正していないのは、データベースに保存されている内部リンクです。これらを修正するには、{wwwroot}/admin/tool/replace/index.phpにアクセスして[[検索および置換ツール]]を使用します。
 
古いサーバのURLを入力します( <nowiki>http://oldserver.com/</nowiki> )および新しいサーバ( <nowiki>http://newserver.com/</nowiki> )そしてそれはデータベースに保存されているリンクを修正します。
 
===サイトをメンテナンスモードから解除します===
 
移行をもう少しテストし、満足したら、サイトをメンテナンスモードから解除することを忘れないでください。
 
==迅速でハッキーな方法==
 
両方のサーバにシェルアクセスがある場合は、コマンドラインベースの簡単な方法を次に示します。
 
* '''新しい''' サーバに新しい空のデータベースをセットアップします。
*既存のMoodleサイトをメンテナンスモードにします。
* '''古い''' 既存のサーバのシェルにログインします。
* rsyncを使用して、'''moodledata''' および '''public_html''' または '''moodle''' フォルダ(またはMoodleがインストールされているディレクトリ)を新しいサーバにコピーします - 実行します(キャップをあなたの詳細に置き換える。 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'''ファイルを適切に修正してください。
*完全なサイトURLを継続するデータベース内のリンクを置き換えます。
*内部のMoodleリンクを修正するには、あなたの新しいMoodleにログインした後、'''admin/replace.php'''を使用して、古いURIを新しいURIに変更してください。
::<code>#sed -e 's/oldserver.com/newserver.com/g' oldmysqldump.sql > newmysqldump.sql</code>
*すべてが動作していることを確認してください。
* '''新しいサーバ''' '''config.php'''、該当する場合は関連する詳細(データベース名とユーザの詳細、wwwrootとdatarootなど)で更新します。
* moodleコードとmoodledataディレクトリの両方で所有権とパーミッションが正しいことを確認してください。
*すべてが機能していることを確認してください。


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


すべての作業が正常に完了した場合、必要に応じてDNSの設定を変更してください。新しいMoodleサイトのメンテナンスモードを解除して、古いサイトから新しいサイトへ移行してください。
すべてが順調に進んだことを確認したら、リダイレクトを設定し、必要に応じてDNSを変更し、新しいサイトをメンテナンスモードから解除して、古いサイトを ''オフ'' にします。


==他に考慮すべきポイント==
* IPアドレスを古いサーバから新しいサーバに切り替える場合は、IPアドレスの競合や混乱を避けるために、新しいサーバを起動する前に古いサーバの電源を切る必要があります。


===Moodleをアップグレードする===
==その他の考慮事項==


Moodleを移行する場合、Moodleを最新バージョンにアップグレードすることは、良いアイディアです。もし、あなたがサーバを管理しているのでしたら、[[アップグレード|Moodleのアップグレード]]のインストラクションに従ってください。そうでない場合、あなたのホストでMoodleをアップグレードできるかどうか確認してください。
=== Moodleを同時にアップグレードしますか?===


===サーバ間の単一コースリストア===
Moodleを移行する作業をしている間、あなたは[[アップグレード| Moodle]]を同時に最新バージョンにアップグレードします。一方、それを行って何かが壊れた場合、どの変更が問題の原因であるかわからないため、より慎重なアプローチは、一度に1つずつ変更し、その間にテストしてすべてが正常であることを確認することです 。


特に移行をテストしている場合、あなたは古いサイトの単一コースを新しいコースにリストアしてみることもあるでしょう。バックアップしたサーバとは異なるサーバにMoodleバックアップをリストアする場合、ファイルに対する絶対参照リンクが壊れてしまいます。この問題を修正するには、「backup-coursename.zip」ファイルを開いて、「moodle.xml」のリンクを <code>$@FILEPHP@$</code> と置換してください。
=== DNSとマスカレードの変更===


例えば、<nowiki>http://yourserver.com/file.php/243/</nowiki> と <code>$@FILEPHP@$</code> を置換します。
新しいMoodleサイトのDNSエントリを変更しなければならなかった可能性があります。これを行った場合、変更が複製されるまでに時間がかかるため、しばらくお待ちください。サーバがファイアウォールの背後にある場合は、新しいサーバへのアクセスを許可するようにファイアウォールルールを変更する必要がある場合もあります。 [[マスカレーディング|マスカレードドキュメント]]。
修正したファイルをリストアする場合、新しいコースの正しいファイルパスが使用されます。


===DNSおよびマスカレーディングの変更===
===内部および外部アクセス===


あなたは、新しいMoodleサイトのために、DNSエントリを修正しなければならなかったかもしれません。もしそうでしたら、DNSの変更がレプリケーションされるまで時間がかかりますので、我慢してください。あなたのサーバがファイアウォールの背後に設置されている場合、新しいサーバにアクセスできるよう、ファイアウォールのルールを変更する必要があります。詳細は、[[マスカレーディング]]をご覧ください。
ネットワークおよびインターネットを介してMoodleサイトにアクセスできるように設定している場合は、新しいサイトに内部および外部からアクセスできることを確認してください。


===内部および外部アクセス===
=== reCAPTCHA ===
新しいドメインに移行して[[Eメールによる自己登録]]を設定している場合は、Googleで新しいAPIキーを作成する必要があります。 [[Eメールによる自己登録]]にGoogleへの説明とリンクがあります。


あなたのMoodleサイトを内部ネットワークおよびインターネットからアクセスできるよう設定している場合、新しいサイトに内部および外部からアクセスできるかどうか確認してください。
==関連項目==


==関連情報==
* [[サイトのバックアップ]]
* [[サイトのリストア]]
* [[バックアップおよびリストアFAQ]]
* [[パフォーマンスの推奨]]


Using Moodleフォーラムディスカッション:
==質問はありますか?==
* [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=76704 移行中、アップグレードする] - 英語 
* [http://moodle.org/mod/forum/discuss.php?d=65450 内部および外部アクセス] - 英語 


[[Category:インストール]]
moodle.orgの[http://moodle.org/mod/forum/view.php?id=28 インストールおよびアップグレードヘルプフォーラム]に投稿してください。


[[en:Moodle_migration]]
[[en:Moodle migration]]
[[es:Migración de Moodle]]
[[fr:Migration de Moodle]]
[[de:Moodle-Migration]]

2023年11月7日 (火) 15:11時点における最新版

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

推奨される方法

これには、サイト全体を1つのサーバから別のサーバに移動することが含まれます。ドメイン/ 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値を確認してください)、新しいサーバにコピーします。これは大量のデータになる可能性があるため、[1]などの優れたデータコピーツールの使用を検討してください。 FTPクライアントを使用している場合、 filedirフォルダの転送は BINARY モードである必要があります。そうでない場合、ファイルは処理中に破損します。

注意:これらのディレクトリの内容をコピーする必要はありません。

  • /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はまだ正しいですか?データベース接続設定を変更する必要がありますか?

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

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

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

修正していないのは、データベースに保存されている内部リンクです。これらを修正するには、{wwwroot}/admin/tool/replace/index.phpにアクセスして検索および置換ツールを使用します。

古いサーバのURLを入力します( http://oldserver.com/ )および新しいサーバ( http://newserver.com/ )そしてそれはデータベースに保存されているリンクを修正します。

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

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

迅速でハッキーな方法

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

  • 新しい サーバに新しい空のデータベースをセットアップします。
  • 既存のMoodleサイトをメンテナンスモードにします。
  • 古い 既存のサーバのシェルにログインします。
  • rsyncを使用して、moodledata および public_html または moodle フォルダ(またはMoodleがインストールされているディレクトリ)を新しいサーバにコピーします - 実行します(キャップをあなたの詳細に置き換える。 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
  • 新しいサーバconfig.php、該当する場合は関連する詳細(データベース名とユーザの詳細、wwwrootとdatarootなど)で更新します。
  • moodleコードとmoodledataディレクトリの両方で所有権とパーミッションが正しいことを確認してください。
  • すべてが機能していることを確認してください。

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

すべてが順調に進んだことを確認したら、リダイレクトを設定し、必要に応じてDNSを変更し、新しいサイトをメンテナンスモードから解除して、古いサイトを オフ にします。

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

その他の考慮事項

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

Moodleを移行する作業をしている間、あなたは Moodleを同時に最新バージョンにアップグレードします。一方、それを行って何かが壊れた場合、どの変更が問題の原因であるかわからないため、より慎重なアプローチは、一度に1つずつ変更し、その間にテストしてすべてが正常であることを確認することです 。

DNSとマスカレードの変更

新しいMoodleサイトのDNSエントリを変更しなければならなかった可能性があります。これを行った場合、変更が複製されるまでに時間がかかるため、しばらくお待ちください。サーバがファイアウォールの背後にある場合は、新しいサーバへのアクセスを許可するようにファイアウォールルールを変更する必要がある場合もあります。 マスカレードドキュメント

内部および外部アクセス

ネットワークおよびインターネットを介してMoodleサイトにアクセスできるように設定している場合は、新しいサイトに内部および外部からアクセスできることを確認してください。

reCAPTCHA

新しいドメインに移行してEメールによる自己登録を設定している場合は、Googleで新しいAPIキーを作成する必要があります。 Eメールによる自己登録にGoogleへの説明とリンクがあります。

関連項目

質問はありますか?

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