MT4からWordPressへURLそのまま移行しました

3/25の深夜にこのブログで使っているレンタルサーバXREAのバージョンアップメンテナンスが実施されました。
ようやくMySQLでUNICODEが扱えるようになったので、古いMovableType 4を使っていたこのブログをWordPress 4.1.1に移行してみました。URLなどがそのままになるようにシンプルに移行してみましたが、不具合等あるかも知れませんので、見つけたらお知らせ下さい。

移行の仕方やトラブル対処などをメモしておきます。

・XREAにSSH接続
管理メニューからホスト情報登録>SSH登録
Macのターミナルで
ssh -l ユーザ名 ホスト名
パスワードを入力して接続

・Movable Typeの復旧
まずは、MySQLのバージョンアップに伴いデータベースが初期化されたので、作業直前のダンプデータからデータベースを復旧
でも、文字コードがEUC-JPからUTF-8に変更になったので、文字コードを変換してリストア
nkf -w _DB_BACKUP_XREA_UPGRADE/mysql_(DB名).dump > mysql.dump
管理画面のデータベースでデータベースの残骸を削除、UNICODEで作成
mysql -p –default-character-set=utf8
use (DB名);
show tables;
でデータベースに接続してみて中身を確認
mysql -u(ユーザ名) -p -f (DB名) < mysql.dump
文字化けがいっぱい合ってエラーが出ていたので、mysql.dumpを修正して、データベースの削除・作成からエラーがなくなるまで繰り返す。
mt-config.cgiのPublishCharset euc-jpをPublishCharset UTF-8に変更。
これでMovable Type管理画面に入れるように。
結構ここまでで時間がかかってしまいました。

・Movable Type管理画面からの全記事書き出し
(MovableTypeのディレクトリ)/lib/MT/ImportExport.pmにパーマリンクを書き出すように変更
493c493,494
< DATE: <$MTEntryDate format="%m/%d/%Y %I:%M:%S %p"$><MTEntryIfTagged>
---
> DATE: <$MTEntryDate format="%m/%d/%Y %I:%M:%S %p"$>
> PERMALINK: <$MTEntryPermalink$><MTEntryIfTagged>

ツール>エクスポートを実行。

・WordPressのインストール
XREAの管理メニューからデータベースをUNICODEで作成
WordPressのファイルを展開
wp-config.phpを設定

WordPressを設定

・全記事のインポート
Movable Type and TypePad Importerプラグインをインストール
wp-content/plugins/movabletype-importer/movabletype-importer.phpに下記を追記

*** 372,377 ****
--- 372,381 ----
$context = 'comment';
} else if ( 'PING:' == $line ) {
$context = 'ping';
+ } else if ( 0 === strpos($line, "PERMALINK:") ) {
+ $value = trim( substr($line, strlen("PERMALINK:")) );
+ $tmpvalue = strrchr($value,"/");
+ $post->post_name = substr($tmpvalue, 0, strpos($tmpvalue, "."));
} else if ( 0 === strpos($line, 'AUTHOR:') ) {
$author = trim( substr($line, strlen('AUTHOR:')) );
if ( '' == $context )

エクスポートしたファイルをインポート

・パーマリンク設定

設定のパーマリンク設定で、カスタム構造を選んで、
/archives/%year%/%monthnum%/%postname%.html
を設定。
ルートの.htaccessを下記のような感じに。
RSSフィードのURLも今までと同じのが使えるようにしました。

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index.xml$ /?feed=rss2 [R=302,L]
RewriteRule ^atom.xml$ /?feed=atom [R=302,L]
RewriteRule ^index.rdf$ /?feed=rdf [R=302,L]
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

・その他設定
あとは、適当にプラグインやらウィジェットやらを設定しました。

テーマはAttitude
インストールしたプラグインは、とりあえず下記
アドバイス等あればよろしくお願いします。
(初めてWordPress使うのでよく分からないことばかり..)

Akismet
Auto Post Thumbnail
Captcha
EZ zenback
Google AdSense
Google Analytics by Yoast
Google XML Sitemaps
Jetpack by WordPress.com
Milliard Related Page
Movable Type and TypePad Importer
WP Multibyte Patch
WP Social Bookmarking Light

saya: