mod_diary - ブログシステムをつくった

2012-01-03

WordPressは素晴らしいブログシステムでした。

プラグインをインストールして簡単に機能拡張したり、TeXだって書く事が出来た。

でも様々なプラグインをインストールしていくうちに、WordPress本体のアップデートが困難になり、ブログの記事を書いている時間よりPHPのコードを読み書きする時間の方が多くなってしまった。

今なら、外部のブログサービスを利用したり、他のブログシステムを構築する選択肢もあるけれど、コンテンツの永続性とデータフォーマットのポータビリティを考慮した結果、自分で作る事にした。

mod_diaryは以下の特徴を持っています

  • apache moduleとして実装
  • markdown記法で記事を書ける
  • emacsやvimなど、お気に入りのテキストエディタで書ける
  • RDBを使用しない
  • 速くて軽い

速いというのがどれ位速いかというと、同じサーバー(スペック低い)、同じ記事の内容に対してabでベンチマークを行った所。

wordpress: 2.1 req/sec

mod_diary: 637 req/sec

と、パフォーマンスに約300倍程度の差が出た。 キャッシュシステムを実装すればまだ速くなる余地は残されてる。

軽いというのは主にメモリ使用量がふわふわの軽さ、という意味です。

WordPressはMySQLを必要とする為、それだけで数百Mのメモリを使用してしまいます。それが原因で512MのさくらのVPSや、612MのEC2マイクロインスタンスで動作させるのが難しい状況がありました。

mod_diaryはapache moduleで実装されており、メモリを1Mも使用しません。さらにWorker MPMで動作するのでhttpd自体が省メモリになります。ゆえに、mod_diaryは低スペックなVPSやクラウド環境、組み込み機器でさえ動作させる事が十分可能です。

本当の所、これは本日開催されたhackathonで何か正月っぽいモノを作れと言われて作ったネタですので、まだ多くの人に使ってもらえる様に出来ていませんが、一応本気でWordPressから移行するつもりでいます。

未実装な機能:

  • トップページ
    • そのうち作る
  • 検索機能
    • google検索にまかせるぜ
  • コメント機能
    • コメントはtwitterなどで貰えばよいのでは無いか

ソースコードはこちら

https://github.com/hamano/apache-mod-diary