2010/09/04 10:02:18
since 1997/2/22: 226227 today: 53 yesterday: 167

PHPで再構築を軽量化する

| コメント(0) | トラックバック(0)

SSK Worldでは、ブログ管理用のサーバーアプリケーション・Movable Typeでサイト全体を運用しているわけですが、Movable Typeを使っているWeb管理者のストレスになりやすい作業に、「再構築」というものがあります。

投稿されたブログ記事や、月別、カテゴリー別などのアーカイブは、Webブラウザで表示できる形に整形する必要がありますが、Movable Typeでは、基本的にはあらかじめ整形されたファイルを作っておいて、アクセスがあったときにはこれをそのまま表示する...という手順で動作しています。このファイルを作っておく作業を「再構築」と呼んでいます。アクセスがあったときに、その都度データベースから整形されたファイルを生成して送り出す「動的再構築」という手法もあり、これに対してあらかじめファイルを作っておく手法は「静的再構築」とも呼ばれます。

静的再構築の場合、通常は、新しい記事が投稿されたときなどに、更新しなくてはならないファイルだけが再構築されるわけですが、サイトのデザインを変更したとき等には、すべてのページを再構築する必要が出てきます。記事のデータだけでなく、表示フォーマットも含めたファイル全体を出力しておくため、再構築作業時のサーバーへの負荷は大きくなり、最悪の場合には再構築作業がサーバーのタイムアウトで終了できない場合もあり得ます。また、記事数が多くなってくるとディスクスペースもより多く消費することになります。

一方、動的再構築の場合には、整形したファイルを置いておくサーバースペースは不要ですし、そもそも管理者側から見たときには明示的な再構築作業はありませんから、作成しているときのストレスは少なくなります。しかし、実際にアクセスがあったときに、ページを生成するためにサーバーには負荷が掛かり、表示されるまでに待たされるようになってきます。Web管理者に負担を掛ける静的再構築、閲覧するお客様に不満が出てしまうかも知れない動的再構築...と言えるかも知れません。


SSK Worldでは、これらの中間的な解として、藤本壱さんの著書「AjaxとPHPによる MovableType高速&最強システム構築法」で使われている手法を利用してみました。再構築するときに、個々の記事やアーカイブのページ全体を生成するのではなく、タグとして挿入されるデータを変数に代入するPHPスクリプトだけを生成しておきます。表示するときには、表示フォーマットを記述したインデックステンプレートに、PHPの変数をその都度差し込んでいく...という作りになっています。文章ではわかりにくいと思いますので、詳しくは本を読んでみてください。

Movable Typeのシステムにとっては、実に回りくどい処理になりますし、表示をカスタマイズしようとすると作業はとんでもなく煩雑になりますが、ひとたび仕組みが完成してしまえば、再構築の処理はこれまでよりもずいぶん短縮されます。もっとも、私の場合にはタグの内部に相当ややこしい処理がありますし、記事数も既に1,000を超えていますから、ブログ全体を再構築すると分単位の時間はかかるわけですが。また、PHPスクリプトを処理する分だけ、画面表示のレスポンスは低下するはずですが、実際に使ってみた感覚ではそれほど違和感はありません。作る側にとっても、読む側にとっても嬉しいですね。

トラックバック(0)

トラックバックURL: http://www.sskworld.net/mt/mt-tb.cgi/1946

コメントする

検索

SSK World内全文検索:
SSK World内をGoogle検索:
カスタム検索
SSK WorldからGoogle Web検索:
カスタム検索

最近のブログ記事

時間内で完走
先週末は、今や夏の風物詩となった(?)24時間テレビ「愛は地…
おうちシネマ
SSK Worldには「映画館に行こう」というカテゴリーがあ…
また走るのか
先日、妻の紫緒から「また走るの?」と訊かれて、ちょっと考え込…
「僕らしくていいと思う」
もう1週間前のことになってしまったんですが、8月18日の日本…
4から5へ、4から5へ
以前、SSK Worldのシステムに関してちょっと手を入れて…
ゆかたまじっく。
暦の上では既に秋だったりしますが、実際にはまだまだこれから暑…
ブラウザの速さ
トップページに表示している「閲覧環境について」の動作確認ブラ…

最近のコメント

最近のトラックバック

フィードの購読

Powered by(広告)