phpMyAdminを活用したMT3.3xのサーバー移転手順

先日、mixiのMovable Typeのコミュニティで、以下のような質問がありました。

今度、サーバーを移転しようと考えています。

そのためMTを移行しなければなりませんが、MTの機能としてバックアップを取れるのは、エントリーや、コメントTBなどです。

各種設定など一括してサーバー移行に使う方法はありませんでしょうか?

Movable Type 4には、バックアップと復元の機能がありますので、それをサーバーの移行に使うことができます。
しかし、3.3xにはエントリー(およびコメントとトラックバック)の書き出しと読み込みの機能しかなく、ブログ全体をまとめて完全に移行することができません。

ただ、データベースとしてMySQLを使っていて、かつサーバーにphpMyAdminがインストールされていれば、phpMyAdminを使ってデータベースを丸ごと移転することが可能です。
その方法を紹介します。

1.移転元のデータベースをphpMyAdminでバックアップ

まず、移転元のサーバーで、phpMyAdminを使ってデータベースをバックアップします。

phpMyAdminにログインし、Movable Typeのデータが入っているデータベースを操作する状態にします。
そして、ページ上端にあるメニューで、「エクスポート」をクリックします。

これで、エクスポートのページが表示されます。
デフォルトでは、「データ」の箇所の「長いINSERT文を作成する」にチェックが入っていますが、このチェックをオフにします。
また、「ファイルに保存する」にはチェックが入っていませんが、このチェックをオンにします。

↓Movable Typeのデータベースのバックアップ
Movable Typeのデータベースのバックアップ

「実行する」のボタンをクリックすると、データベースのバックアップが行われ、その結果のファイルをダウンロードする状態になります。
適当なファイル名をつけて、自分のパソコンにファイルを保存します。

2.バックアップしたファイルの分割

これまでに長期間Movable Typeを使っていた場合、バックアップしたファイルのサイズがかなり大きくなっていると思われます。
そのままだと、移転先のサーバーにファイルをアップロードする際に、一度にアップロードしきれないこともあります。

そこで、バックアップしたファイルをいくつかに分割して、少しずつアップロードできるようにします。
移転先のサーバーにもよりますが、分割後の1ファイルあたりのサイズは、1~3MB程度に抑えておくのが無難だと思います。

バックアップしたファイルの中には、「CREATE TABLE テーブル名 ( ・・・ );」のような文と、「INSERT INTO テーブル名 ( ・・・ ) VALUES ( ・・・ );」のような文が多数入っています。
CREATE TABLEはデータベースにテーブルを作成する文で、INSERT INTOはテーブルにレコードを作成する文です。
文と文の間であれば、どこでファイルを分割しても構いません。

なお、phpMyAdminのバージョンによっては、バックアップしたファイルの先頭の方に、「use database 'データベース名'」のような行が入っていることもあったような記憶があります。
もしそのような行があれば、その行は削除しておきます。

3.移転先にMTとプラグインをアップロード

次に、移転先のサーバーに、Movable Type本体と、これまで使っていたプラグインのファイルを、すべてアップロードします。
また、mt.cgi等のCGIのファイルでは、パーミッションを適切に設定して、実行可能な状態にします。
ただし、この時点ではアップロードだけを行い、インストールの作業は行いません。

なお、移転先ですでにインストールまで行っている場合は、以下の手順で、移転先のサーバーのデータベースをクリアしておきます。

  • 移転先のサーバーで、phpMyAdminにログインします。
  • Movable Typeのデータが入っているデータベースを操作できる状態にします。
  • Movable Type関連のすべてのテーブル(テーブル名の先頭に「mt_」がついているもの)を削除します。

4.移転先のサーバーにデータベースを復元

次に、移転先のサーバーで、phpMyAdminを使ってデータベースを復元します。

phpMyAdminにログインして、Movable Typeのデータを格納するデータベースを操作できる状態にします。
そして、ページ上端にある「インポート」のリンクをクリックします。

これで、「インポート」のページが表示されます。
「インポートするファイル」の箇所で、バックアップしたファイルの名前を指定し、「実行する」ボタンをクリックします。
バックアップのファイルが大きくて複数のファイルに分割した場合は、この作業を繰り返して、分割したファイルを1つずつ復元します。

↓インポートの機能で復元を行う
インポートの機能で復元を行う

5.mt-config.cgiの作成

次に、旧サーバーのmt-config.cgiを元にして、新サーバー用のmt-config.cgiを作成します。
旧サーバーのMovable Typeのディレクトリからmt-config.cgiをダウンロードし、以下の各設定を新サーバー用に書き換えて、新サーバーのMovable Typeのディレクトリにアップロードします。

  • CGIPath
  • StaticWebPath
  • Database
  • DBUser
  • DBPassword
  • DBHost

6.新サーバーのMovable Typeにログインする

ここまでの作業が正しく行われていれば、新サーバーのMovable Typeにログインできる状態になります。
ログイン時のユーザー名とパスワードは、旧サーバーで使っていたものになります。

7.サーバー移転と同時にMT4にアップグレードする

ここまでの手順を使うと、サーバーを移転するとともに、Movable Type 4にアップグレードすることもできます。
上記の手順3.で、移転先のサーバーにMovable Type 4(およびMT4用のプラグイン)をアップロードすればOKです。