MovableType から WordPress への移行
昔使っていたMovableTyape 時代のblog を、パーマリンクを引き継いだまま WordPress に移行したときの記録。大変だった。
以前の状態
以前のホームページでは、ずっとMovable Type を使っていた。シンプルで、素人がいじっても うまく動いてくれたし、動作もそこそこ軽快で、何の不自由もなく使っていたんだけれど、 スパムに負けた。
スパム対策の充実をうたった、新しいバージョンに乗り換えたら、ファイルが複雑になっていて、 動作が重くて、自分が使うには荷が重すぎた。
庭いじりするのに小さなシャベルを使っていて、それで何の不便も感じていなかったのに、 ある日「バージョンアップしました」なんて、新しいの届いたら、シャベルがユンボになっていたかんじ。
バージョン4.X 以降のMovableTyape は、データベースの構造を変えてしまうから、後悔しようにも、 もう後戻りができなかった。
仕方がないのでWordPress を別の場所にインストールして、今のところ調子がいい。
移行前の構成
- xrea のサーバーを有料レンタルしている
- /public_html/ 以下に、「/MT 」、「/blog 」、「/wp 」というディレクトリを作って、 それぞれMovableTyape の本体、MovableTyape のデータ部分、WordPress の本体とデータを入れていた
- データベースは MySQL 。 xrea のサーバースペースを借りると、5つまでデータベースを作れる。 これまではMovableTyape 用途とWordPress 用途と、2つ作っていた
/MT にはMovableTyape の4.1 が、/wp にはWordPress の2.7 が、それぞれ入っていた。
やりたかったこと
MovableTyape 時代の文章は、それでもコメント欄を閉鎖せざるを得なかったり、過去ログの参照がおかしかったり、 うまく動いていなかった。すべての文章を「静的生成」にすることで、動作はわずかに軽くなったけれど、 「はてなブックマーク」との連携がうまくいかなかったりして、問題が多かった。
WordPress は今のところ快適で、何よりも、スパム対策が充実しているのがありがたい。
昔書いた文章を、URL を変更しないまま、管理ツールを WordPress に移行できたらいいなと思った。
手順
- MovableTyape を最新のものにバージョンアップする
- MovableTyape のエクスポートプログラムを編集して、旧サイトの内容を、URL ごと書き出す
- /blog のディレクトリをリネームして、同じ場所に WordPress をインストールする
- WordPress のインポートプログラムを編集して、元サイトのデータをURL ごと引き継ぐ
- WordPress の体裁を整える
書き出してしまえば簡単だけれど、問題山積みだった。
MovableTyape のバージョンアップ
小粋空間: Movable Type 4.1x から 4.2 へのアップグレードのやりかたに、そのまま従った。
最初はうまく動かなかった。
ダウンロードしたファイルをローカルに解凍 -> FFFTP でアップロード -> インストール まではうまくいくのだけれど、 「ダッシュボード」にログインしても、そこから何もできない。原因が分からなくて、結局一度、ディレクトリごと削除して、 全く同じ手順を繰り返したら、何事もなかったように動作した。
新しいMovableTyape は、ファイル数が1500 近くあって、アップロードの手順は一切変えていないから、 あるいは最初は、アップロードの途中で、ファイルが壊れたのかもしれない。
エクスポートプログラムの編集
Wordpress への移行顛末記のやりかたを、ほとんどそのまま踏襲した。
MovableTyape のバージョンアップは、この方が使っているバージョンに合わせたかったから。
URL を引き継いだ状態でのWordPress 移行は、たとえばkishi-r.com だとか、wiki@browncat.org のまとめのほうが検索上位にきて、どちらのサイトでも /lib/MT/ImportExport.pm の541 行目を編集するやりかたが記載されているのだけれど、うまくいかない。
MovableTyape 4.2 だと、どうもファイルが変更されているみたいで、指定された541 行の前後には、 書き換えるべき内容が見つからない。
MovableTyape 4.23 で書き換えるべきなのは、493行目以降だった。
似たような記述が510行前後、520行前後にそれぞれ出てくるけれど、 こっちはコメントの書式を指定している行だから、 こちらを書き換えても、URL はエクスポートされない。
ImportExport.pm を書き換えたあと「エクスポート」を行って、「PERMALINK: http://medt00lz.s59.xrea.com/blog/archives/2004/11/post_1.html」 のような文章が入っていれば、URL を含んだ書き出しは、たぶん成功している。
WordPress を入れる
WordPress のインストールは簡単。
- データベースを作る。Xrea の59番サーバーなら、ここ から ログインして、データベース -> 「作成」 で新しいのが作れる
- /blog のディレクトリと、/MT のディレクトリを、たとえば「/blog_ 」にリネームする。これで見かけ上、旧サイトはURL もろとも消滅したことになる
- /blog のディレクトリに、新たにWordPress 2.7 をアップロードして、WordPress 日本語サイトのインストール手順に従う。すぐに終わる
このあと「管理画面の設定」-> 「パーマリンク設定」で、URL構造を「その他」にチェック、 空欄に「 /archives/%year%/%monthnum%/%postname%.html 」と記述する。
Wordpress への移行顛末記の説明には「/archives 」が入っていないんだけれど、このあたりは 元サイトのURL をどう管理していたのか、人によって違うからなのだと思う。うちはこうしないと、URL が移行できなかった。
xrea でこの操作を行おうとすると、「.htaccess を書き込み可能にしてください」 という表示がされて、 操作が途中から進まなくなる。無理矢理終了してblog にアクセスすると、インデックスページは参照できるけれど、 あとはすべてのページが 404 になって、全くアクセスできなくなる。
.htaccess は、WordPress の中には存在しないので、自分で作らないといけない。
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /blog/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /blog/index.php [L]
</IfModule>
こういう .htaccess ファイルを作って、/blog と/blog/wp-admin にそれぞれアップロードした上で、属性を「666 」に してやると、操作が完了して、アクセス不可能の問題を回避できる。.htaccess は、 たぶんどちらか一方に置けば十分なんだけれど、 片方の状態で動作確認してないから分からない。
WordPress のインポートプログラムを書き換える
Weblogy のサイトで公開されている「mt.php.zip 」を ダウンロード、解凍して、このファイルを WordPressの /wp-admin/import/ にある同名ファイル「mt.php 」と差し替えれば、 作業は終了する。
バージョンが違うからなのか、インポートするたびにエラーメッセージが出るけれど、一応問題なく作業できた。
ここまででようやく、インポートの準備が完了する。
インポート作業
MovableTyape からダウンロードしてきたファイルは、テキストだけなのに7MB あった。
インポートは、WordPress のダッシュボード画面上からもできるんだけれど、Xrea だと「アップロードに失敗しました」 というエラーが出て、たいてい失敗する。PHP の動作が少し特殊なのが原因らしくて、回避可能みたいなんだけれど、 試していない。
このやりかた以外に、MovableTypeからエクスポートしたファイルを「mt-export.txt」という 名前で、 /wp-content に FFFTP を使ってアップロードする方法もあって、これだと問題なくデータがアップできるんだけれど、 ファイルサイズが大きすぎると、インポートが途中で止まって、やっぱりエラーが頻発する。
仕方がないので元のテキストファイルをいくつかに区切って、そのつど「mt-export.txt」にリネームして、 少しづつファイルをインポートした。
MovableTyape が書き出したファイルの書式はUTF-8 。たいていのテキストエディタは、 何も指定しないとShift-Jis で保存を行うので、保存形式をUTF-8 に指定するのを忘れて、 そのままアップロードすると、WordPress が文字化けして、びっくりすることになる。
いろんなファイルサイズを試したけれど、xrea だと、一度に2MB までだったら大丈夫みたい。
この段階で、WordPress 純正の体裁で、旧blog のテキストが、URLそのままで再現できる。
見た目の調整
以下の素材をお借りした。
- Commented entry list プラグイン: 小粋空間のテンプレートを使うのに必要になる
- Markdown プラグイン:Markdown 記法で文章を書くのに必須。慣れると戻れなくなる
- 小粋空間 の3カラムテンプレート
- wp-hatena プラグイン:「はてなブックマーク」ボタンを設置するのに便利
できることできないこと
WordPress になって、サイトの動作はたしかに軽快になって、「はてなブックマーク」との連携なんかが ずいぶん快適になった。
これは本当にありがたかったのだけれど、違うシステム間でURL を引き継いで、旧blog ではやっぱり、 新しい記事が書けなくなった。
MovableTyape のURL をそのまま引き継ぐ代償として、WordPress のパーマリンクは、移行後に 書いた新しい記事については、URL が日本語表記になってしまう。実際には、日本語版のWikipedia みたいな、 文字化けしたような、長ったらしいURL になる。
旧記事と新記事とで、パーマリンクを使い分けられればいいのだろうけれど、今のところはまだ、 そのやりかたが分からない。
今のところはここまで。
追記: コメント欄にて「投稿スラッグ」という機能を教えていただいた。これを使うと、今までみたいな短いURL で、 新しい記事を書いても大丈夫そう。ありがとうございました。