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

提供:MoodleDocs
移動先:案内検索
編集の要約なし
 
(3人の利用者による、間の64版が非表示)
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アドレスを新しいサーバに変更する場合は、次の手順を実行する必要があります。


This involves moving a whole site from one server to another. If you are changing the domain/IP address to the new server you need to do these steps:
===メンテナンスモードをオンにします===
* '''Maintenance mode'''. Place your current Moodle site in maintenance mode to prevent any further additions to the Moodle database. Don't let administrators login during the migration as they are not affected by the maintenance mode setting.
* '''Backup your current Moodle database'''. Do this by following the instructions in the [[Upgrading | upgrading Moodle]] page. This will give you a text file containing the mysql dump.
* '''Copy the Moodle software'''. You will need to copy the Moodle code itself to the new server - upgrade the code to the latest version if you can.
* '''Change <code>$CFG->wwwroot</code>'''. In your (possibly new) Moodle directory, change the <code>$CFG->wwwroot</code> variable in the ''config.php'' file for the new server.
* '''Copy data directory contents (moodledata)'''. Copy the contents of your data directory (check for the value in <code>$CFG->dataroot</code>) to the new server. Check also that permissions remain the same on the new dataroot folder and change the value if you have changed its location on the new server.
* '''Change your Moodle URL'''. If you have a new URL, you'll need to change this in the Moodle database to the new server. This is needed as links to pictures, files, etc are stored as absolute links and will reference the old <code>$CFG->wwwroot</code> value. So when loading a mysql backup dump of the Moodle server into mysql on another server the absolute referenced links will be broken. There are two methods of doing this:
:(a) The first method changes the Moodle URL using the Moodle script ''replace.php'' while your site is currently running just before you backup the Moodle database. Point your browser to <nowiki>http://yourserver.com/admin/replace.php</nowiki>


:Enter the url for your old server (<nowiki>http://oldserver.com/</nowiki>) and new server (<nowiki>http://newserver.com/</nowiki>) and it will fix the mysql tables. You will also need to clear out any cached links by restarting your webserver. Now, take another backup of the Moodle database - this one will have the correct URLs.
Moodleデータベースへのそれ以上の追加を防ぐために、 ''サイト管理 > サーバ > メンテナンスモード'' を介して現在のMoodleサイトを[[メンテナンスモード]]にします。管理者はメンテナンスモード設定の影響を受けないため、移行中に管理者にログインさせないでください。


:(b) The second method is to backup the Moodle database first, then use the search and replace feature of your text editor (or use a unix tool like sed) to replace the old URL with the new one in the mysql backup file. Here is an example sed command:
===古いサーバにMoodleデータベースをバックアップする===


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


:'''Tip''': You may want to check the mysqldump file to see how the old server was referenced.
<pre>
:After changing the URL, restore the mysql database
cd /my/backup/directory
* '''Test the migration'''. To test the new install, access Moodle using your browser and the new server's URL. When you have tested that a number of links in the courses work, take the new Moodle site out of maintenance mode.
mv moodle-database.sql.gz moodle-database-old.sql.gz
'''See also''': [http://moodle.org/mod/forum/discuss.php?d=85812 Forum discussion] on migrating Moodle's data directory on a Windows system.
mysqldump -h example.com -u myusername -p'mypassword' -C -Q -e --create-options mydatabasename > moodle-database.sql
</pre>


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


Do you have shell access on both servers? If so, the following method is a very quick and efficient method to migrate a *nix based site.
===データベースのバックアップを新しいサーバに復元します===


It is also useful for creating snapshots or test sites.
データベースバックアップファイルを新しいサーバにコピーし、新しいデータベースサーバにリストアします。
*Set up a new empty database on the '''new''' server.
 
*Place your Moodle site into maintenance mode.
新しいサーバに新しいデータベースを作成したら、次のようにします。
*Login to shell on the '''old''' server.
 
*Use rsync to copy '''moodledata''' and '''public_html''' (or whatever directory your Moodle install is in) to the new server - execute (replacing caps with your details; SOURCE = the directory you want to copy) for each directory:
<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>
*Dump existing database and move and import into database on new server by executing:
*既存のデータベースをダンプし、以下を実行して新しいサーバのデータベースに移動およびインポートします。
::<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>
*On the '''new server''', update '''config.php''' with relevant details.
*完全なサイトURLを継続するデータベース内のリンクを置き換えます。
*To fix any internal Moodle links, login to your "new" Moodle install on your new server and use '''admin/replace.php''' to search and replace the old uri for the new.
::<code>#sed -e 's/oldserver.com/newserver.com/g' oldmysqldump.sql > newmysqldump.sql</code>
*Make sure everything is working.
* '''新しいサーバ''' 、'''config.php'''、該当する場合は関連する詳細(データベース名とユーザの詳細、wwwrootとdatarootなど)で更新します。
* moodleコードとmoodledataディレクトリの両方で所有権とパーミッションが正しいことを確認してください。
*すべてが機能していることを確認してください。


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


When happy all has gone well, set up redirects/make DNS changes if required, take new site out of maintenance mode and "switch off" old site.
すべてが順調に進んだことを確認したら、リダイレクトを設定し、必要に応じてDNSを変更し、新しいサイトをメンテナンスモードから解除して、古いサイトを ''オフ'' にします。


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


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


When migrating Moodle it is often a good idea to take the opportunity to upgrade Moodle to the latest version. If you manage your own server, follow the instructions in [[Upgrading | upgrading moodle]], otherwise check if your host can upgrade for you.
=== Moodleを同時にアップグレードしますか?===


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


You may need to restore a single course from an old site to a new one, especially if you are testing the migration. When restoring a Moodle backup file to Moodle on a different server than the one used to create the backup, the absolute referenced links to files maybe broken. To fix this problem open the ''backup-coursename.zip'' file and edit the ''moodle.xml'' file replacing links with <code>$@FILEPHP@$</code>.
=== DNSとマスカレードの変更===


For example, replace <nowiki>http://yourserver.com/file.php/243/</nowiki> with <code>$@FILEPHP@$</code>
新しいMoodleサイトのDNSエントリを変更しなければならなかった可能性があります。これを行った場合、変更が複製されるまでに時間がかかるため、しばらくお待ちください。サーバがファイアウォールの背後にある場合は、新しいサーバへのアクセスを許可するようにファイアウォールルールを変更する必要がある場合もあります。 [[マスカレーディング|マスカレードドキュメント]]。
When the file is restored it will use the correct file path for the new course.


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


You may have had to change the DNS entries for the new Moodle site. If you have done so, it will take some time for the changes to replicate, so be patient. If your server is located behind a firewall, you may also have to change your firewall rules to allow access to the new server. See the [[Masquerading | masquerading docs]].
ネットワークおよびインターネットを介してMoodleサイトにアクセスできるように設定している場合は、新しいサイトに内部および外部からアクセスできることを確認してください。


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


If you have a set up where your Moodle site can be accessed via a network and via the internet, ensure you check that the new site can be accessed internally and externally. 
==関連項目==


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


Using Moodle forum discussions:
==質問はありますか?==
* [http://moodle.org/mod/forum/discuss.php?d=62959 Changing Moodle URL]
* [http://moodle.org/mod/forum/discuss.php?d=57477 Changing site address]
* [http://moodle.org/mod/forum/discuss.php?d=76704 Upgrading whilst migrating]
* [http://moodle.org/mod/forum/discuss.php?d=65450 Internal and external access]


[[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のインストールおよびアップグレードヘルプフォーラムに投稿してください。