僕は発展途上技術者

WordPress のブログを Lokka に移行しようとしています(まだ途中)

» Lokkathon #8 : ATND


に参加して、WordPress で書かれているこのブログを Lokka に移行するプロジェクトに取り組みました。


タイトル通り、まだ途中の段階での記録ですが、結構いいところまで行ってます。もうあと数歩といった段階。


Lokka に WordPress のデータをインポートするには、WordPress のエクスポート機能を使って吐き出す WordPress eXtended RSS と呼ばれる xml ファイルが必要です。


ところがこのブログが使っている WordPress ME2.0.5 は結構古いバージョンであるため、エクスポート機能がついていません。


そこで、まずは最新の WordPress 3.2.1 の環境を用意し、そこにこのブログのデータを流し込むという作業から始めました。


WordPress 3.2.1 を Mac で動かす


WordPress 3.2.1 の環境は、ローカルの Mac に用意することにしました。


最初の難関は PHP が動く環境を用意すること。


» Pow: Zero-configuration Rack server for Mac OS X


を使っているため、ローカルへのアクセスはすべて Pow に横取りされてしまい、Apache にアクセスがいかない。


そこで、IPv4 と IPv6 を使い分ける方法で Pow と Apache を共存させます。詳しくは以下の記事を御覧ください。


» Pow and Apache Side-by-Side - Jerod Santo


httpd.conf の



LoadModule php5_module libexec/apache2/libphp5.so

のコメントアウトを外し、http-vhosts.conf に以下を追加。



<VirtualHost *:80>
ServerName blog
DocumentRoot "[home dir]/php/blog"
ErrorLog [home dir]php/blog/log/error.log
CustomLog [home dir]/php/blog/log/access.log common
<Directory "[home dir]/php/blog">
AllowOverride All
Order allow,deny
Allow from all
</Directory>
</VirtualHost>

WordPress eXtended RSS を作成


サーバー側にログインし、ブログのデータを保存している mysql の DB をダンプ、ローカルの DB にリストアします。


WordPress のホームページより WordPress 3.2.1 をダウンロードし、ファイルを http-vhosts.conf で追加した DocumentRoot に置きます。


本当は、テーマファイルなどもコピーしないと完全な移行にはならないのですが、データをエクスポートさえできればいいので、データの移行だけで十分です。


wp-config-sample.php を wp-config.php にコピーし、データベースの情報を書き換えます。


ひとつはまったのは、MySQL のホスト名。


localhost に指定したらうまく接続できず、127.0.0.1 に変えたところ動くようになりました。



/** MySQL hostname */
define('DB_HOST', '127.0.0.1');

http://[wordpress に割り当てた ServerName]/wp-login.php で初めてログインすると、データベースのアップグレードを WordPress 側がよろしくやってくれます。


しばし待つと無事管理画面が開けました。


テーマファイルなどがないため、ブログの表示はまともにはできないですが、管理画面の Tools > Export さえ使えれば OK。


ただし、WordPress のエクスポート機能には


» #15203 (Export function does not properly escape ]]> (CDATA)) – WordPress Trac


でも報告されている をエスケープしてくれないというバグがあり、ソースコードを貼り付けていることが多い僕のブログも影響を受けてしまっていました。


Lokka へのインポートのときに を含むエントリーでインポートが止まってしまい、以降のエントリーがインポートされなくなっていました。


そこで、wordpress の wp-admin/includes/export.php を開き、126 行目の部分を追加。



エクスポートを実行し wordpress.2011-08-31.xml というファイルが吐き出されて一安心。


Export ‹ 僕は発展途上技術者 — WordPress

Lokka にインポート


ようやく Lokka 登場です。


インポート機能は最新バージョンの Lokka に実装されているので、まだ Lokka をインストールしていなければ、



git clone git://github.com/komagata/lokka.git

でインストールしましょう。すでにインストール済みの場合は git pull です。


Lokka の管理画面に入り、左メニューの一番下の方にインポートがあります。


僕は発展途上技術者 - Lokka

WordPress でエクスポートした xml ファイルを選んで、「WordPressからのインポート」を押すとインポートが始まります。


WordPress でドラフト状態の投稿を残したままインポートをおこなうと途中でエラーとなる問題がありましたが、


» Comparing 0fb46d0...718137e for komagata's lokka - GitHub


でコミットを push しておきました。


僕のブログの場合は、以上でインポート無事完了。


以下の感じで一応は Lokka にインポートされました。


lokka.dev

残されたタスク


残されたタスクは以下の通り。



  1. http://blog.champierre.com/archives/928 といった同じ URL のままで個別の記事にアクセスできるよう Lokka 側で URL を Rewrite する仕組みを用意する

  2. 画像などのメディアファイルも移行する

  3. WordPress では改行2つがpタグに自動的に変換されていたのが、Lokka では変換されないため、段落がまったくなくなってしまうのを何とかする


これらを次回の


» Lokkathon #9 : ATND


以降で解決していきます。


WordPress を Lokka に移行したいという方、一緒に参加しましょう。


プロフィール

株式会社まちクエスト代表、つくる社LLC代表。

Scratchで楽しく学ぶ アート&サイエンスRaspberry Piではじめる どきどきプログラミングを書きました。

オンラインコンテンツ: 大人のためのScratch

Amazonから図書館検索 Libron、iPhoneアプリ ひらがなゲーム かなぶん を作っています。

Email: webmaster at champierre dot com

Twitter @jishiha

最近のエントリー

アーカイブ