記事一覧:2009年10月22日

WordPress導入

 ブログシステムをpyblosxom+自前のバックエンドから、WordPressに変更してみた。WordPressはデフォルトではMySQLをデータベースとして使うけど、今回はプラグインを入れてsqliteを使う構成でセットアップ。

 sqliteを入れたのは、ファイルのコピーだけでなにも考えずにバックアップができるというのと、パフォーマンス的に有利なんじゃないかなー、という理由。テキストデータしか入れる気はないので、データベースサイズはせいぜい数MBだし、ファイルキャッシュが効けば結構速くなるんじゃないの? とか考えてるんだけど、実際どうなってるかはちゃんと測ってないので不明。

 ちなみに、WordPressをsqliteを使うプラグインはこれ(PDO (SQLite) For WordPress)。基本的には付属ドキュメント通りにセットアップすればOK(WordPressのwp-contentディレクトリ以下に配布ファイルをコピー→wp-config.phpファイルに「define(‘DB_TYPE’, ‘sqlite’);」を追加)。Web上の情報では、ソースをいじったりする必要があるという話が書いてあるものもあったけど、自分が試したバージョン(WordPress 2.8.4+PDO For WordPress 2.6.1)では設定ファイル以外のソースの変更は不要だった。

 ただ、suexecを使っていない環境ではもちろんデータベースディレクトリおよびデータベースファイルを作成できるようにパーミッションを変更しておく必要がある。データベースファイルはwp-contentディレクトリ以下に「database」というディレクトリが作成され、その中に作成されるので、一時的にwp-content内にWebサーバーを動かしているユーザー権限でディレクトリを作成できるように設定しておく必要あり。

pyblosxomの記事のインポート

 でもって、過去のpyblosxomの記事のインポートなんだけど、直接はインポートできないので、過去の記事からインポート用のファイルを作成する必要がある。WordPressの「Importing Content」ページでは変換用スクリプトを用意してインポートする方法を紹介するページが紹介されているんだが、このスクリプトは日本語環境だと微妙な気がしたので、これを参考にPythonで書き直してみた。

 ただしこの変換スクリプト、カテゴリと記事コンテンツ、投稿日はインポートできるのだがタグとエントリのURL情報は無視してくれるのが困りどころ。おかげで過去記事のリンクが切れる……。カテゴリについては、.htaccessに次の1行を追加すれば解決なのだが、リンク切れはさぁどうしようかねぇ。

RewriteEngine On
RewriteBase /
RewriteRule ^(apple|bluegriffon|develop|fsm|handbrake|s|slashdot|twitter) category/$1 [R=301,L]

# BEGIN WordPress
 :
 :