ぼくのサーバ移転:MT(Movable Type)移行篇

サーバ移転から約2週間。だいぶ落ち着いてきたので、忘れないうちにまとめておこうかと。以下、移転作業についてのメモ。

サーバ移転先

【移転前】ロリポップ ⇒ 【移転先】エックスサーバ

ロリポップからエックスサーバへ

サーバ選びでいろいろ迷ったんだけど、結果的には、ロリポップからエックスサーバーへ移転することに。

データベースが複数個つかえて、マルチドメイン対応で、とか前提条件をいくつか決めてエックスサーバーを選んだんだけど、乗換直後にロリポのチカッパプランが誕生。もう少しタイミングが早ければ、嗚呼・・・。

サーバ移転の手順

全体の流れは、以下のような感じ。

  1. MT(Movable Type)の移行
  2. Wordpressの移行
  3. メールサーバ変更
  4. DNS変更
  5. リダイレクト処理

今回は、「1. MT(Movable Type)の移行」についてまとめます。以下、詳細。

1. MT(Movable Type)の移行

旧サーバでバックアップ取って、新サーバで復元するだけなのだが、移行前にMTのバージョンを揃えておくのがポイント。データ移行は、同じバージョン間じゃないとうまくいかないらしい。

(参考)別のサーバーへ移行したい | Movable Type 4 FAQ
http://www.movabletype.jp/faq/export-blogs.html
バックアップ

ということでまずは、バックアップから。

MT管理画面でのバックアップ

上図の通り、管理画面の「システムメニュー>ツール>バックアップ」画面に移動。zip圧縮を選択の上、「バックアップデータを作成」ボタンをクリック。しばらくたつと、zipファイルがダウンロードされます。
※「ツール>エクスポート」だと、テンプレートデータ等がエクスポートできないので注意!

(参考)

MT4 のバックアップ・復元についてのまとめ | Movable Type 4 | 阿部辰也のブログ――人生はひまつぶし。
http://www.abe-tatsuya.com/web_prog/movabletype4/backup.php
ブログの完全バックアップと、データベースのバックアップ | Movable Type 4 ドキュメント
http://www.movabletype.jp/documentation/start_backup.html
MTのバージョンアップ

続いて、MTを最新版にバージョンアップ。

当然のごとく、MT5へのアップグレードを考えたけど、SQLiteはサポートしてないみたいで、断念。そのうち、MySQLに移行して、MT5にするかな・・・。

結局、以下のバージョンアップを実施。
Movable Type 4.261 ⇒ Movable Type 4.28

MTのバージョンアップ手順
  1. インストールディレクトリ「mt」を「mt--」にリネームし、バックアップ
  2. 「mt--」と同ディレクトリに、インストール用「mt」ディレクトリを新規作成
  3. 「mt」ディレクトリに、MT4.28の全ファイルをアップロード
  4. 「mt--」内のmt-config.cgiをコピーして「mt」ディレクトリにアップロード
  5. ブラウザで「mt/mt.cgi」にアクセスし、アップグレード実施

※メモ
MTファイルをアップロードする際、転送モードは「バイナリ転送モード」を選択する。
mt.cgi等のCGIファイルは、パーミッションを「755」に変更する。

(参考)小粋空間: Movable Type 4.21 から 4.22 へのアップグレード
http://www.koikikukan.com/archives/2008/10/19-003333.php
データの復元

続いて、バックアップデータを復元。

データの復元手順
  1. 「mt」ディレクトリ内に、データ復元用の「import」ディレクトリを作成
  2. 「import」ディレクトリ内に、先ほどのバックアップデータ(zip形式)を解凍の上、アップロード
  3. 管理画面の「システムメニュー>ツール>復元」で、バックアップファイルを何も指定せず、「復元」ボタンをクリックし、データを復元(※下図参照)

MT管理画面での復元

※メモ
sqlitedbファイルを利用して、データ移行する際は、FTPの転送モードに注意。
ダウンロードもアップロードもバイナリモードで行うこと。
アスキーモードのままだと、mtログイン画面にて、下記エラーが発生する。
「DBD::SQLite::db prepare failed: database disk image is malformed(11)」

(参考)

バックアップしたブログの復元 | Movable Type 4 ドキュメント
http://www.movabletype.jp/documentation/start_restore.html
やっちまっただ - 流れ着いたら。。。
http://www.flotsam-fareast.com/2009/04/mt-reset-20090423.html
MT4を別サーバで復元するとき - ウェブデザイン hasegawahiroshi.jp
http://hasegawahiroshi.jp/2008/03/24/mt4/
再度バックアップ

バージョンアップしたMTでデータが復元されていることが確認できたら、再度バックアップを実施。新サーバへの移行に備える。

新サーバへMTをインストール

ここからようやく、新サーバでの作業。

旧サーバと同じバージョンのMTを、新サーバにインストールしていくのだが、手順は、「MTのバージョンアップ」のときとほぼ同じなので割愛。

サブドメインで公開する場合

http://blog.example.com/のように、サブドメインで公開する場合は、mt-config.cgiの「CGIPath」と「StaticWebPath」を、絶対パスで指定する必要がある。

ルート相対のままにしておくと、ディレクトリを読みにいけないため、captchが表示されないなど、不具合が発生する。

(変更前)mt-config.cgiの設定

CGIPath /mt/
StaticWebPath /mt/mt-static/
StaticFilePath ルート相対


(変更後)mt-config.cgiの設定

CGIPath http://www.example.com/mt/
StaticWebPath http://www.example.com/mt/mt-static/
StaticFilePath (変更なし)

(参考)

小粋空間: Movable Type(MT)のインストール
http://www.koikikukan.com/archives/2008/11/01-015555.php
サブドメインでブログを公開したい | Movable Type 4 FAQ
http://www.movabletype.jp/faq/post-36.html
小粋空間: Movable Type でサブドメインを利用する場合の設定
http://www.koikikukan.com/archives/2008/03/06-020202.php
Movable Type 4.2  Can't call method "label" on an undefined value - 徒然雑草
http://veritascreative.org/continuous_connection/2009/09/02_165800.html
xserver で cron | trash-area.com
http://trash-area.com/archives/335
まとめ

ということで、以上でMTの移転完了。

これにプラスして、プラグインの動作確認したり、移行データの検証したり、リダイレクトの設定したり、みんなにお知らせしたりと、やること盛りだくさん。ひとことで言えば大変でした。

でも、参考として挙げている数々のサイトに助けられ、無事移行が完了しました。感謝、感謝。

<結論>
サーバの移転なんて、しないに越したことないね! なんだ、この結論。。。

サーバ移転:Wordpress移行篇に続きます。