Movable Typeの再構築が遅い

エントリーが数件しかない状態でも、再構築に数分かかります。ちょっとありえません。

Movable Typeは、ウェブログのページを表示の際にダイナミック(動的)に構築する「ダイナミック(動的)ページ生成機能」を提供します。ウェブログは、記事の更新時などにあらかじめページを構築しておくことで、ページ表示の際のサーバー負荷を軽減しています。ただし記事の数が多くなってくると、ページの再構築に時間がかかることがあります。ダイナミック・ページ生成機能を使えば、ウェブログのSEO(検索エンジン最適化)効果を上げながら、ページを動的に構築できるため、ウェブログ・サイト管理時の再構築時間を抑えることが可能です。

というわけでダイナミックパブリッシングを考えてみます。

http://www.koikikukan.com/archives/2006/11/15-013053.php

Movable Type の管理画面から[設定]-[公開]の「公開」欄にある「再構築オプション」から下記のいずれかを選択し、「変更を保存」をクリックします。次にブログのルート・ディレクトリに templates_c という名前で新しいディレクトリを作成し、パーミッションを777に設定します。ディレクトリを作成しないとページが正常に表示されません。

再構築は速くなったものの、ページの閲覧に数秒かかるようになってしまいました。これではまともに見れません。アーカイブから動的に作られそうなモジュールを削除(月別アーカイブ、タグクラウドなど)してもそれでもやっぱり遅いです。

そうなるとページキャッシングを使うか、条件付きリクエストを使うかです。ページキャッシングはいちど作成したページをサーバ側にキャッシュしておいて使い回す。当然サーバ側の容量を消費します。条件付きリクエストは、ページの変更がない場合に、304を返却しブラウザのキャッシュを使ってもらうようにします。ブラウザのキャッシュはblogをみている人のPC上にあるためサーバ側の容量は使いません。

条件付きリクエストは当然そのユーザがブラウザでみたことがないページにしかキャッシュが有効になりません。ふつうに考えて同じ人が何度も同じページをみることは考えにくいのとダイナミックパブリッシングの目的は容量削減ではなく高速化目的なので今回はページキャッシングを使ってみます。キャッシングを有効にするには、ブログのルート・ディレクトリに cache という名前のディレクトリを作成し、パーミッションを777に設定します。次に、Dynamic Site Bootstrapperテンプレート(mtview.php)に $mt->caching =true;を加えます。

<?php
include('<$MTCGIServerPath$>/php/mt.php');
$mt = new MT(<$MTBlogID$>, '<$MTConfigFile$>');
$mt->caching =true;
$mt->view();
?>

それでも初見のページは10秒くらいかかる・・・どう考えてもサーバが遅すぎます。もーレンタルサーバかえてやる。。。

人見知りソフトウェアエンジニアです。ビジュアル系、お笑い、Pixarが好き。勢いで吉本超合金おたけびBOTを作った。オールザッツ漫才が放送されない東京在住。

趣味や日常からアウトプットの場としてブログを書いています。自作のWordPressプラグインにGitHub Flavored MarkdownAmazonJSなど。