« Movable Type β5リリース | メイン | くるり「ワルツを踊れ Tanz Walzer 」 »

お知らせ

JavaScript 中級講座 ~Ajaxを学ぶ前の基礎知識・2007年10月2日
新刊の「JavaScript 中級講座 ~Ajaxを学ぶ前の基礎知識」が発売されました。
JavaScriptの基本から、オブジェクトやAjaxなどの最近のJavaScriptの話題まで、幅広く取り上げています。
技術評論社刊、定価2,709円(税込)です。

このBlogについて メールフォームはこちら ゲストブックはこちら

Perl版ダイナミック・パブリッシング(MT4用)

「Perl版ダイナミック・パブリッシング」は、テンプレートの再構築を動的に行うことができるプラグインです。
読者がページにアクセスした時点でページを再構築する動作をします。
Movable Type本体のダイナミック・パブリッシングとは異なり、既存のプラグインをほとんど利用できるメリットがあります。
さらに、データベースとしてMySQLかPostgreSQLを使っている場合、ページをキャッシュして、動的再構築による負荷の増加を抑えることもできます。

このプラグインのMovable Type 4版を公開します。
なお、Movable Type 3.3では3.3用をお使いください。

1.プラグインのダウンロードと解凍

Perl版ダイナミック・パブリッシングのプラグインは、以下のアドレスからダウンロードします。

PerlDynamic_3_20.zip

また、今回のバージョンから、再構築処理を別プラグインに分離しています。
そのプラグインは以下のアドレスからダウンロードします。

RebuildHelper_1_00.zip

プラグインの継続的な開発やサポートのために、プラグインをご利用された方は、ドネーション(寄付)を行っていただけると幸いです。
ドネーションの方法は、こちらのページをご参照ください。

これら2つのファイルをダウンロードしたら、解凍しておいてください。
ただし、この時点ではまだアップロードは行いません。

2.全SQL対応版からバージョンアップする場合の準備

これまでに、全SQL対応版のPerl版ダイナミック・パブリッシングを利用していた場合、バージョンアップの前に準備の作業が必要です。

まず、MySQLまたはPostgreSQLでデータベースを管理している場合は、既存のキャッシュ用テーブルをデータベースから削除します。
手順は以下の通りです。

  • 1.の手順で解凍したものの中に、「PerlDynamic」というフォルダがあり、その中に「mt-dpcache-drop.php」というファイルがありますので、そのファイルをメモ帳等で開き、内容をすべてコピーします。
  • Movable Typeにログインして、Perl版ダイナミック・パブリッシングを利用しているBlogで、インデックス・テンプレートを新規作成します。
  • インデックス・テンプレートの名前と出力ファイル名を「mt-dpcache-drop.php」にし、「テンプレートの内容」の欄に、先程コピーしておいたmt-dpcache-drop.phpの内容を貼り付けます。
  • ここまででできたインデックス・テンプレートを保存し、再構築します。
  • 再構築されたページにアクセスすると、既存のキャッシュ用テーブルが削除されます。
  • mt-dpcache-drop.phpのテンプレートを削除し、またBlogの出力先ディレクトリからもmt-dpcache-drop.phpを削除しておきます。

また、データベースの種類に関係なく、以下の作業を行います。

  • 各ブログから「dynamic_init.pl」と「mt-dpcache-load.php」のテンプレートを削除します。
  • 各ブログの出力先ディレクトリから、「mt-dynamic.cgi」「dynamic_init.pl」「mt-dpcache-load.php」のファイルを削除します。
  • Movable Typeの「plugins」ディレクトリから、「GetConfig.pl」ファイルを削除します。

3.プラグインのインストール

次に、Perl版ダイナミック・パブリッシングのプラグインをインストールします。
先程解凍したファイルの中に、「PerlDynamic」と「RebuildHelper」の2つのフォルダがあります。
それらのフォルダを丸ごと、Movable Typeのインストールにある「plugins」ディレクトリにアップロードします。
ただし、「mt-dpcache-drop.php」ファイルはアップロードしないでください。

これで、Movable Typeの「plugins」ディレクトリの中に、「PerlDynamic」と「RebuildHelper」というディレクトリができます。
「PerlDynamic」ディレクトリの中にある「mt-perl-dynamic.cgi」と「mt-perl-dynamic-setup.cgi」のパーミッションを「755」などに変えて、実行可能にします。

なお、Movable Typeの設定をutf-8以外にしていても、ファイルをアップロードする際には文字コードを変えないでください

4.データベースの初期化

このプラグインをアップロードした後、初めてMovable Typeにログインする際には、以下のようなページが表示されますので、「アップグレードの開始」ボタンをクリックします。

↓Movable Typeのアップグレード
Movable Typeのアップグレード

サインインするようにメッセージが出たら、ログインを行います。
これで、データベースにテーブルが追加されます。
アップグレードが終わると、以下の表示になります。

↓アップグレード完了
アップグレード完了

5.FastCGI化の設定

FastCGIに対応したサーバーをお使いの場合は、Perl版ダイナミック・パブリッシングをFastCGI化することができます。

まず、サーバーにアップロードした「mt-perl-dynamic.cgi」の拡張子を、FastCGIの拡張子に変えます。
例えば、「.fcgi」の拡張子のファイルをFastCGIとして動作させるように設定している場合、「mt-perl-dynamic.cgi」を「「mt-perl-dynamic.fcgi」にリネームします。

次に、プラグインの設定で、「mt-perl-dynamic.cgi」の拡張子を指定します。
システムメニューのプラグイン一覧のページを開き、「Dynamic publishing by Perl」のプラグインの箇所で「設定を表示」のリンクをクリックします。
これで設定を行う状態になりますので、「mt-perl-dynamic.cgiの拡張子」の欄で、FastCGIの拡張子を設定します。
例えば、「.fcgi」の拡張子のファイルをFastCGIとして動作させるように設定している場合、この欄に「fcgi」と入力します。拡張子の前の「.」は入力しません。

↓mt-perl-dynamic.cgiの拡張子の設定
mt-perl-dynamic.cgiの拡張子の設定

6.ダイナミック・パブリッシングをオンにする

次に、Movable Typeのダイナミック・パブリッシングの機能をオンにします。

ダイナミック・パブリッシングにしたいBlogで、「設定」メニューの「ブログの設定」を選んで設定ページを開き、ページ左端のメニューで「公開」を選びます。
そして、「公開に関するオプション」の部分で「テンプレートごとに構築オプションを設定する」をオンにして、「変更を保存」ボタンをクリックします。

↓ダイナミック・パブリッシングをオンにする
ダイナミック・パブリッシングをオンにする

7.Perl版ダイナミック・パブリッシングの初期化

次に、Perl版ダイナミック・パブリッシングを初期化します。

ダイナミック・パブリッシングにしたいBlogで、「設定」メニューの「ブログの設定」を選んで設定ページに接続し、ページ左端のメニューで「プラグイン」を選びます。
そして、プラグイン一覧の「Dynamic Publishing by Perl」のところで「設定を表示」をクリックします。
すると、「初期化する」というリンクが表示されますので、それをクリックします。

↓「初期化する」のリンクをクリックする
「初期化する」のリンクをクリックする

初期化が終わると、以下のようなメッセージが表示されます。

↓初期化完了時のメッセージ
初期化完了時のメッセージ

なお、初期化では以下のような処理が自動的に行われます。

  • .htaccessファイルの書き換え
  • mt-dynamic.phpテンプレートの作成と再構築
  • SQL用テンプレート(sqlsub_mysql.phpまたはsqlsub_pgsql.php)の作成と再構築

8.Perl版ダイナミック・パブリッシングの設定

次に、Perl版ダイナミック・パブリッシングを設定します。

初期化完了のページで、「このリンクをクリックして、設定を続けてください。」をクリックすると、設定ページに移動します。
また、ブログの「設定」ページの「プラグイン」でPerl版ダイナミック・パブリッシングの「設定を表示」をクリックし、その中の「設定を行う」のリンクをクリックしても、設定ページを開くことができます。

設定ページでは、以下の点を設定します。そして、設定が終わったら、「設定を保存」のボタンをクリックします。

・インデックスページのファイル名
メインページとアーカイブページのファイル名を指定します。
初期値は「index.html」ですが、BlogをPHP化している方は「index.php」に変えてください。

・ページが見つからないときの移動先のURL
間違ったアドレスのページに接続されたときには、エラーページに転送することができます。
その機能を使いたい場合は、この欄にエラーページのURLを入力します。
なお、この欄を空欄にした場合、間違ったアドレスに接続されたときには、「ご指定のアドレスのページは見つかりませんでした。」というメッセージが表示されます。

・キャッシュの設定
Movable TypeのデータをMySQLかPostgreSQLに保存している場合、ページのキャッシュ機能を使うことができます。
キャッシュ機能を使いたい場合は、「キャッシュを使う」のチェックをオンにします。
また、キャッシュをオンにする場合、「キャッシュの容量」の欄で容量も指定することができます。

↓Perl版ダイナミック・パブリッシングの設定
Perl版ダイナミック・パブリッシングの設定

9.ダイナミック・パブリッシングにするテンプレートを選ぶ

次に、インデックス・テンプレートとアーカイブ・テンプレートの中で、ダイナミック・パブリッシングにしたいものを選びます。
対象のテンプレートを開き、「再構築オプション」の部分にある「このテンプレートをダイナミックページにする」のチェックをオンにして、テンプレートを保存します。

↓このテンプレートをダイナミックページにする」のチェックをオンにする
Perl版ダイナミック・パブリッシングの設定

10.Blog全体を再構築する

ダイナミック・パブリッシングにするテンプレートを選び終わったら、Blog全体を再構築します。
これ以後は、各ページがダイナミック・パブリッシングで出力されます。

なお、再構築後にBlogの出力先ディレクトリを見ると、「~.static」という名前のファイルができています。これらのファイルは、これまでの静的再構築で作られていたファイルです。
これらのファイルは不要になりますので、サーバーから削除することができます。

Movable Type 3.3 でつくる!最強のブログサイト Movable Type 3.3 でつくる!最強のブログサイト
小川 晃夫; 南大沢ブロードバンド研究会著 / ¥ 2,604
Movable Typeでつくる!最強のブログサイト プラグイン&カスタマイズ編 Movable Typeでつくる!最強のブログサイト プラグイン&カスタマイズ編
藤本 壱著 / ¥ 2,709
Movable Typeスタイル&コンテンツデザインガイド―コンテンツ管理システム(CMS)ツールとしてのMovable Type活用術&実践サイトデザイン術 Movable Typeスタイル&コンテンツデザインガイド―コンテンツ管理システム(CMS)ツールとしてのMovable Type活用術&実践サイトデザイン術
エ・ビスコム・テック・ラボ著 / ¥ 2,940
Movable Typeではじめる ビジネスブログ・テンプレートブック Movable Typeではじめる ビジネスブログ・テンプレートブック
中村 義和著 / ¥ 2,940
Movable Type標準ハンドブック Movable Typeで今すぐできるウェブログ入門 改訂版 Movable Type標準ハンドブック Movable Typeで今すぐできるウェブログ入門 改訂版
平田 大治, 関根 元和著 / ¥ 2,520
Movable Type公式タグリファレンス 第2版 Movable Type公式タグリファレンス 第2版
シックス・アパート株式会社著 / ¥ 2,415

トラックバック

このエントリーのトラックバックURL:
http://www.h-fj.com/mt/mt-tbb.cgi/966/hfjblog/XXXXXXXX

トラックバックスパム防止のため、お手数ですがコードの入力をお願いしています。
上記のトラックバックURLの「XXXXXXXX」の部分を、以下の画像に表示されている8桁の数値に置き換えてください。

トラックバックスパム防止用コード

この一覧は、次のエントリーを参照しています: Perl版ダイナミック・パブリッシング(MT4用):

» 1. MovableTypeをめっちゃ高速化する20の方法。 送信元 Junnama Online (Mirror)
いつかちゃんと書こうと思っていた。 こういうタイトルのEntryをM回以上かく... [詳しくはこちら]

» 2. MT4: PerlDynamicの適用とエントリのインポート完了 送信元 cefa::blog
それなりにベータ版やRC版でテストをしていたつもりでしたが、最後には特大のトラップが色々と待っていたお陰で約半日完全に公開できない状態に陥っていた私たち夫... [詳しくはこちら]

» 3. ダイナミック・パブリシングができない 送信元 OKANO WEB Cstomize
ここのサーバはさくらインターネットなんですが、一応ググッてみるとさくらでダイナミ... [詳しくはこちら]

コメント (12)

キャッシュを使う設定にすると、
「キャッシュファイルのコピーに失敗しました」と表示され、
キャッシュを外すと、今度は
"Warning: include() [function.include]: Failed opening '' for inclusion (include_path='.:/usr/local/lib/php') in .../mt-dynamic.php on line 181"と表示されます。

なんだか、いつも同じ質問をしているようで恐縮なのですが、
今回もおつき合い下さい。

よろしくお願いします。

[TypeKey Profile Page]:

>footbrainさん
こんにちは。

mt-perl-dynamic.cgiが正しく動作していないものと思われます。
mt-perl-dynamic.cgiのパーミッションを確認してみてください。

たびたびスミマセン。自己レスです。

http://www.h-fj.com/blog/archives/2007/03/07-124806.php#comment-1858
の「試しに、mt-perl-dynamic-setup.cgiと、mt-perl-dynamic.cgiの先頭の行を、
以下のように変えて、警告メッセージを出力しないようにしてみてください。

変更前:
#!/usr/bin/perl -w

変更後:
#!/usr/bin/perl」を参考にして見たところ、
Perl版ダイナミック・パブリッシングからのエラー表示はなくなりました。

キャッシュのon/offに関わらず、問題なく機能しています。

ご迷惑をおかけしました。ゴメンナサイ。

へま:

お世話になります。

MT4へアップグレードしたため、ダイナミックパブリッシングもアップグレードすることにしました。
しかし、手順どおり作業を進めても、ダイナミックパブリッシングが有効になっていないようで、index.htmlにアクセスしてもInternalServerErrorになってしまいます。

気になることがあるのですが、私の場合、データベースのキャッシュテーブルを削除して、何度、「PerlDynamic」と「RebuildHelper」の2つのフォルダをアップロードし直しても、MTへの再ログイン後、「アップグレード開始」の画面が出ないのです。設定→プラグインを見てみると、きちんと「Dynamic publishing by Perl 3.20」となっていて、初期化や設定ができるので、一見、インストールが完了しているようには見えるのですが。

でも、、「アップグレード開始」をしていないということは、アップグレードができていないということなのですよね?

これまでPerlDynamic_3_10を使っていて正常に動いていましたがどうしてでしょうか。。。

アドバイスをいただけましたら嬉しく思います。
よろしくお願いいたします。

[TypeKey Profile Page]:

>へまさん
こんにちは。プラグインご利用ありがとうございます。

もし、さくらインターネットをご利用であれば、以下の点を確認してみてください。

1.Blogのディレクトリに.htaccessファイルが出力されていますので、そのファイルから「Options」の行を削除します。
2.Blogのディレクトリに「mt-perl-dynamic.php」ファイルが出力されていますので、そのパーミッションを705に変えます。

なお、バージョン3.10からバージョンアップした場合、データベースは既存のものを使いますので、「アップグレード開始」の画面は表示されません。

へま:

壱さま

ご回答いただき、ありがとうございました。

おかげさまで、成功しました。
バージョン3.10からのバージョンアップにかかわらず、「3.全SQL対応版からバージョンアップする場合の準備」にてキャッシュテーブルを削除してしまったのが1番の原因でした。

http://www.h-fj.com/blog/archives/2007/03/07-124806.php

上記のエントリーに、その場合の対処法がありましたので参考にさせていただき、無事、キャッシュテーブルを復旧させることができました。その後、今回教えていただいた1と2をやってみて、成功しました。

ありがとうございました!!

匿名:

僕も同じ用に、

Warning: include() [function.include]: Failed opening '' for inclusion (include_path='.:/usr/local/lib/php') in .../mt-dynamic.php on line 181

といったメッセージで使用できませんでした。
ログを読んで、全部試しましたが、変化ないので…。
非常に残念ですが、導入を断念します…。

はじめまして。Perl版ダイナミック・パブリッシング(MT4版)の導入を試みているものです。

この記事の手順に従って導入し、テンプレート「ブログ記事リスト」のダイナミック化を指定しました。これによってそれまで存在したindex.htmlはindex.html.staticにリネームされました。

しかし、ブログからアクセスすると500エラーが出ます。上記コメント5の1,2の対応も試しましたが状況は好転しませんでした(Option行を削ると403エラーに変わり、スタティックなindex.htmlも同エラーとなる)。

お手数とは思いますが、もしなにか思い当たる点などありましたらご指摘いただければ幸いです。ホスティングサービスはCPIです。

[TypeKey Profile Page]:

>細野さん
こんにちは。

CPIのヘルプを少し読んでみましたが、CPIのPHPは独自のカスタマイズがなされているようで、何か特殊な設定をしないとこのプラグインを動作させられないのかも知れません。
申し訳ありませんが、いただいた状況だけでは、それ以上のことは分かりません。

藤本さま

返答ありがとうございます。
お手数をおかけいたしました。解決いたしました。

お恥ずかしい限りですが、CPIの管理画面でapacheのログが見られることを失念していまして、それを確認しましたところ、blogのフォルダ自体の属性が適切でないとのエラーがでていました。これを設定しなおしましたところ、稼動いたしました。

これがCPI独自のカスタマイズのためなのかどうかは不明ですが、ともあれ助かりました。

ありがとうございました!

虎! [TypeKey Profile Page]:

導入していて、くだらない部分でつまづいていましたのでご報告です。

症状はメインindexは問題なく表示されるのですが、アーカイブだけがInternalServerErrorと表示されました。

ブログの設定 → 公開 → アーカイブをサイトパスとは別のパスで公開する

にチェックが入れてある場合、その別のパスにも.htaccessファイルが出力されています。
これを、ブログ公開先にある.htaccessファイルと同じ内容にコピーすることで本来の動作が行えました。

ダイナミックパブリッシングでアーカイブの公開先を変更しても意味は無いのですが、元々ダイナミックパブリッシングではなく、今回の導入前に、この部分にチェックが入っていてつまづく原因になりました。

同じところでつまづいている人が居ましたら参考にしてください。

素敵なプラグインをありがとうございます。
さくらインターネットでは標準のダイナミックパブリッシングが使えないようなので助かりました。

[TypeKey Profile Page]:

>虎!さん
こんにちは。
有益な情報をいただきありがとうございました。

コメントを投稿

管理者にメールを送りたい方はこちら
Blog全体への感想など、このエントリーに直接関係しないコメントは、お気軽にゲストブックに投稿してください。



このページについて

エントリー「Perl版ダイナミック・パブリッシング(MT4用)」のページです。

携帯電話でもご覧いただくことができます。

Perl版ダイナミック・パブリッシング(MT4用)のQRコード

メインページはこちら

最近の拙著

アーカイブ

フィード & List Me

Blog Parts

ステータス

  • ステータス
    • Entry:1081
    • Comment:2176
    • Trackback:1120
  • Google PageRank
    • Now loading...
  • Technorati Blog Info
    • Inbound Blogs:413
    • Inbound Links:687
    • Technorati Rank:10830
  • FeedBurner
    • Circulation:128
    • Hits:3674
  • 当エントリーの被ブックマーク数
    • Now loading...
  • アクセス
    • Now loading...
  • 訪問者
    • Now loading...

RSS feed meter for http://www.h-fj.com/blog/

track feed

あわせて読みたい

スカウター : The blog of H.Fujimoto

FC2 Blog Ranking

Yahoo!ブックマークでこのサイトを登録している人数

Powered by
Movable Type 3.35

Copyright © 2004-2007 By H.Fujimoto