Movable Type 備忘録

 ダイナミック・パブリッシング

ダイナミック・パブリッシング おはよございます^^

とうとうダイナミック・パブリッシングに手を出してしまいました。
別に避けてたわけじゃないけど、なんとなくダイナミック・パブリッシングやったら負け!? みたいな、わたしの中ではスタティック・パブリッシングなページに拘ってました (; ̄∇ ̄A

でも、現時点( 2008.08.11 )で再構築しても 12 分くらいで完了できるとこまでいろいろ試行錯誤してみたので、今となってはダイナミック・パブリッシングにする必要はないかな。
でもまぁ、気が向いたのでちょと試してみました。

右の図はわたしのサイトのテンプレート一覧になります。
青枠がダイナミック・パブリッシングにしたテンプレートで、主にアクセス頻度の低いページをダイナミック・パブリッシングにしてます。
赤枠はダイナミック・パブリッシングにしたことで生成された、ダイナミック・パブリッシング用のテンプレートです。

そもそもダイナミック・パブリッシングとは、ページアクセスされた時に再構築するというものなのですが、どんなメリットがあるかというと、

  1. 再構築時間の短縮

    サイト全体を再構築といった場合、ダイナミック・パブリッシングにしたテンプレートは再構築されず、ページがアクセスされたときに始めて再構築されます。

  2. ディスクスペース節約

    ダイナミック・パブリッシングにするとファイルが作成されません。

  3. 変更内容が即時反映 [2008.08.14] 追記

    ページアクセス時に再構築されるので、その直前の内容が即反映されるようになります。
    ただし、キャッシュを利用してる( 再構築されない )場合には少しタイムラグがあります。

これに尽きると思います ( ̄∇ ̄)b
訪問者さんにストレスがかからないのは、やっぱりスタティック・パブリッシングだと思います。なので、エントリ数が少ない内はダイナミック・パブリッシングにする必要はないかと思いますが、エントリ数が多い場合にはサイト全体を再構築といった場合メッチャ時間かかってしまい、ブログ管理者側にストレスがかかりまくりって状況になります。

じゃぁ、デメリットはというと、

  1. 諸刃の剣みたいな

    ページアクセス時に再構築を行うため、サーバの負荷状況、テンプレートの内容によっては再構築失敗なんてこともあり得るかも。サーバスペックが低いとエラーの確率高そう。よく WP でそのようなページに遭遇したりしましたが、同じ状況なんだと思います。

  2. プラグインが利用できない

    基本的にはダイナミック・パブリッシングにしたテンプレート内ではプラグインはそのままでは利用できません。 でも、テンプレートを工夫することでプラグインを使うことができます。

てなとこでしょうか。

Perl 版ダイナミック・パブリッシング

スタティック・パブリッシングからダイナミック・パブリッシングに変更した場合、一番ネックになるのはやっぱりプラグインだと思います。
デメリットでも言ったように、出回ってるプラグインのほとんどはダイナミック・パブリッシングに対応してないです。なので、今まで使ってたテンプレートはそのままでは使えなくなる可能性があります。

先ほどちょっと触れた、テンプレートを工夫すればというのは、今まで使ってたテンプレート内のプラグインに依存するコードを外部ファイル化して、そのファイルをテンプレート内で読み込むといったことをすれば可能になります。( これも万能ではないです。 )

でも、わたしはそんなことに時間をかけるくらいなら別なことに費やしたいので、時間をかけず手軽に、それでいて今まで通りプラグインが利用可能な、Perl 版ダイナミック・パブリッシングというものをインストールして使ってみました。
Perl 版ダイナミック・パブリッシングは、The blog of H.Fujimoto さんとこで配布されてるプラグインになります。

Perl 版ダイナミック・パブリッシングの使い方

使い方はカンタンです。 カンタンなんだけどなぜか一発では成功しませんでした(つω-`。)
なので、インストール手順は配布元の The blog of H.Fujimoto さんのページを読んでいただくとして、エラーリカバリーについてメモしておきます。参考にしてください。

  1. .htaccessファイルの確認

    Movable Type の管理画面からダイナミック・パブリッシングを有効にしたことで作成される .htaccess で何回やってもエラーします。
    でも、エラーしたからといって特に問題にはなりませんでした。

    ただし、作成された .htaccess 内の 3 行目を以下のようにコメントにしました。

    .htaccess / 3 行目

    1. ## %%%%%%% Movable Type generated this part; don't remove this line! %%%%%%%
    2. # Disable fancy indexes, so mtview.php gets a chance...
    3. #Options -Indexes +SymLinksIfOwnerMatch

    青字のようにコメント( 行頭に「#」を追加 )にして保存します。保存したら元の場所にアップロードします。
    これはたぶんほんとどの人がいらないんじゃないかなぁ。少なくとも CORESERVER( たぶん、XREA も )、さくらインターネットでは不要です。

以上です。

 Trackback Pings(0)

No trackbacks found.

 Comments(4)

#1: Posted by Author Profile Page oscar @ August 13, 2008 [REPLY]
user-pic

ダイナミック・パブリッシングと聞いて飛んできました。(笑)
最大のメリットを忘れてますよ。
・表示を行ったその瞬間の情報が出力される
です。
今はハイブリッド・パブリッシングですね。
これにキャッシュ機能を上手に組み合わせれば、最強になるはず。

#2: Posted by Author Profile Page bzbellからoscarへの返信 @ August 13, 2008 [REPLY]
user-pic

>>1 oscar さん

> 表示を行ったその瞬間の情報が出力される

あっそうですね。追記しまぁ~すキャハハ

素朴な疑問なんですけど、以前、どっかのブログでダイナミック・パブリッシングとブログの PHP 化は別もの・・・PHP 化しなくっても OK と書かれてたのを読んだことがあります。
その時はダイナミック・パブリッシングにはあまり興味がなかったので「そうなんだ」程度にしか覚えてなかったのですが、今回始めてやってみて PHP 化なしのダイナミック・パブリッシングってあり得ないと思うんです。

「公開」設定の中にしたって PHP 化してないと表示されないし、そもそもアクセス時に実行されるプログラムは PHP なわけで。
確かに機能( 主旨 )はまったく別ものなので、そういった意味で言われてるのなら納得しますが、PHP 化しなくってもダイナミック・パブリッシング可能というのがイマイチ納得できないところでありますグウグウ

#3: Posted by Author Profile Page oscar @ August 13, 2008 [REPLY]
user-pic

>ダイナミック・パブリッシングとブログの PHP 化は別もの
厳密な言い方をすれば
「ダイナミックパブリッシング化と、ブログの出力拡張子をphpにするのは別モノ」
です。

ここが正しく理解されていなくて、大抵の方はゴッチャになっています。
どちらもサーバー側でPHP対応していることが前提ですが、出力拡張子をPHPにするのはページ上でPHP機能を使うためのものであり、ダイナミックパブリッシング化には拡張子をPHPにする必要は一切ありません。

というか、大抵はPHPスクリプト書いてもエラーになりますね。もちろん動くケースもありますけど。
ダイナミック・パブリッシング下で、自分でPHPスクリプトに手を入れたい時は、Smartyで書くようにします。

#4: Posted by Author Profile Page bzbellからoscarへの返信 @ August 13, 2008 [REPLY]
user-pic

>>3 oscar さん

> ダイナミック・パブリッシング下で、自分でPHPスクリプトに手を入れたい時は、Smartyで書くようにします。

なるほど。そこで Smarty がでてくるわけですかっ!!
この記事書く前にわたしなりにいろいろ検証してみたのですが、どうもそこら辺が曖昧だったのであえて PHP 化のことは触れないでいました。

今回 PHP 化しなくってもダイナミック・パブリッシング可能という確証が得られたので、もう一度検証してみます。
ありがとございますもじもじ

 Post a Comment

 

コメント用フィード