お知らせ

これだけは知っておきたい Webアプリケーションの常識 2008年3月28日

これだけは知っておきたい Webアプリケーションの常識」が発売されました。
Webアプリケーションを作る上では、HTTPのプロトコルや、開発言語、データベースなど、さまざまな知識を組み合わせることが必要になります。
それらを全般的にまとめた一冊です。
Webアプリケーション開発にチャレンジしたい方や、実際に開発までしないまでも基礎知識として知っておきたい方にお勧めです。

他にも多数書籍を執筆しています。
こちらもぜひご覧ください。

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

| コメント(78) | トラックバック(6)

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

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

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

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

PerlDynamic_3_21.zip

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

RebuildHelper_1_01.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. .htaccessファイルの確認

環境によっては、Movable Typeのダイナミック・パブリッシングの機能をオンにした際に、.htaccessファイルが正しく出力されないことがあるようです。
その場合、上記の手順での.htaccessの書き換えが正しく行われません。

初期化の際に「.htaccessファイルの書き換えに失敗しました。」のメッセージが表示された場合は、Blogの出力先ディレクトリに、以下の内容の.htaccessファイルを作成します。
また、Blogのサイトパスとアーカイブパスを別にしている場合は、アーカイブの出力先ディレクトリにも同じ内容の.htaccessを作成します。

ただし、リスト中の赤字の部分(4か所)は、Blogのトップページがサイトのルートにある場合のものです。
ルート以外のディレクトリにブログがある場合、赤字の部分を書き換える必要があります。
例えば、Blogのトップページのアドレスが「http://www.foo.com/blog/」の場合、赤字の部分を「/blog/mt-dynamic.php」にします。

## %%%%%%% Movable Type generated this part; don't remove this line! %%%%%%%
# Disable fancy indexes, so mtview.php gets a chance...
Options -Indexes +SymLinksIfOwnerMatch
  <IfModule mod_rewrite.c>
  # The mod_rewrite solution is the preferred way to invoke
  # dynamic pages, because of its flexibility.

  # Add mtview.php to the list of DirectoryIndex options, listing it last,
  # so it is invoked only if the common choices aren't present...
  <IfModule mod_dir.c>
    DirectoryIndex index.php index.html index.htm default.htm default.html default.asp /mt-dynamic.php
  </IfModule>

  RewriteEngine on

  # don't serve mtview.php if the request is for a real directory
  # (allows the DirectoryIndex lookup to function)
  RewriteCond %{REQUEST_FILENAME} !-d

  # don't serve mtview.php if the request is for a real file
  # (allows the actual file to be served)
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !\.(cgi|css|gif|jp*g|png)$
  # anything else is handed to mtview.php for resolution
  RewriteRule ^(.*)$ /mt-dynamic.php [L,QSA]
</IfModule>

<IfModule !mod_rewrite.c>
  # if mod_rewrite is unavailable, we forward any missing page
  # or unresolved directory index requests to mtview
  # if mtview.php can resolve the request, it returns a 200
  # result code which prevents any 4xx error code from going
  # to the server's access logs. However, an error will be
  # reported in the error log file. If this is your only choice,
  # and you want to suppress these messages, adding a "LogLevel crit"
  # directive within your VirtualHost or root configuration for
  # Apache will turn them off.
  ErrorDocument 404 /mt-dynamic.php
  ErrorDocument 403 /mt-dynamic.php
</IfModule>
## ******* Movable Type generated this part; don't remove this line! *******

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

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

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

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

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

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

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

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

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

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

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

11.Blog全体を再構築する

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

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

トラックバック(6件)

このブログ記事を参照しているブログ一覧: Perl版ダイナミック・パブリッシング(MT4用)

このブログ記事に対するトラックバックURL: http://www.h-fj.com/mt/mt-tb.cgi/963.

» MovableTypeをめっちゃ高速化する20の方法。(Junnama Online (Mirror))からのトラックバック

いつかちゃんと書こうと思っていた。 こういうタイトルのEntryをM回以上かく... 続きを読む

» MT4: PerlDynamicの適用とエントリのインポート完了(cefa::blog)からのトラックバック

それなりにベータ版やRC版でテストをしていたつもりでしたが、最後には特大のトラップが色々と待っていたお陰で約半日完全に公開できない状態に陥っていた私たち夫... 続きを読む

» ダイナミック・パブリシングができない(OKANO WEB Cstomize)からのトラックバック

ここのサーバはさくらインターネットなんですが、一応ググッてみるとさくらでダイナミ... 続きを読む

» モブログ再開(SLOW CAMP -- のんびりと自然を楽しもうよ --)からのトラックバック

このブログはMovableTypeのバージョン4で稼働していますが、このバージョ... 続きを読む

» ブログ復旧しました(iwashiwomizu的。)からのトラックバック

お待たせいたしました。何とか、ブログが復旧しました。 個別ページへのリンクも50... 続きを読む

» ダイナミックパブリッシングを導入したけれど...(mekk.jp)からのトラックバック

マニアックな話です。 mekk.jpにコメントをしようとしたことがある人はわかる... 続きを読む

コメント(スレッド28件,コメント78件)

コメントはスレッド表示になっています。
また、スレッドの先頭のコメントに対する返信には、先頭に矢印を表示しています。

No.1 footbrain : (無題)

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

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

よろしくお願いします。

No.2  Author Profile Page: (無題)

>footbrainさん
こんにちは。

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

No.3 footbrain : (無題)

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

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に関わらず、問題なく機能しています。

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

No.4 へま : (無題)

お世話になります。

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

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

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

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

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

No.5  Author Profile Page: (無題)

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

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

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

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

No.6 へま : (無題)

壱さま

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

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

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

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

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

No.7 (匿名) : (無題)

僕も同じ用に、

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

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

No.8 細野 : (無題)

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

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

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

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

No.9  Author Profile Page: (無題)

>細野さん
こんにちは。

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

No.10 細野 : (無題)

藤本さま

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

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

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

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

No.11 虎! : (無題)

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

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

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

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

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

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

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

No.12  Author Profile Page: (無題)

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

No.13 わ~さん : (無題)

こんにちわ。Perl版ダイナミック・パブリッシング(MT4版)の導入を試みているのですが、全ての手順を行って再構築を行っても、file not foundになってしまいます。(現在は静的にしています)

私なりに原因を探ってみたのですが、手順7で初期化を行った際、「.htaccess」が作られますが、その内容がなぜか空っぽになっています。これが原因ではないかと思うのですが・・・

サーバーはXREAです。

よろしければ、「.htaccess」で本来記述される内容を教えていただけないでしょうか。(手動でアップしますので)

以上、よろしくお願いします。

No.14  Author Profile Page: (無題)

>わ~さん
こんにちは。

.htaccessの内容は以下のようになります。

## %%%%%%% Movable Type generated this part; don't remove this line! %%%%%%%
# Disable fancy indexes, so mtview.php gets a chance...
Options -Indexes +SymLinksIfOwnerMatch
<IfModule mod_rewrite.c>
# The mod_rewrite solution is the preferred way to invoke
# dynamic pages, because of its flexibility.

# Add mtview.php to the list of DirectoryIndex options, listing it last,
# so it is invoked only if the common choices aren't present...
<IfModule mod_dir.c>
DirectoryIndex index.php index.html index.htm default.htm default.html default.asp /mt-dynamic.php
</IfModule>

RewriteEngine on

# don't serve mtview.php if the request is for a real directory
# (allows the DirectoryIndex lookup to function)
RewriteCond %{REQUEST_FILENAME} !-d

# don't serve mtview.php if the request is for a real file
# (allows the actual file to be served)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !\.(cgi|css|gif|jp*g|png)$
# anything else is handed to mtview.php for resolution
RewriteRule ^(.*)$ /mt-dynamic.php [L,QSA]
</IfModule>

<IfModule !mod_rewrite.c>
# if mod_rewrite is unavailable, we forward any missing page
# or unresolved directory index requests to mtview
# if mtview.php can resolve the request, it returns a 200
# result code which prevents any 4xx error code from going
# to the server's access logs. However, an error will be
# reported in the error log file. If this is your only choice,
# and you want to suppress these messages, adding a "LogLevel crit"
# directive within your VirtualHost or root configuration for
# Apache will turn them off.
ErrorDocument 404 /mt-dynamic.php
ErrorDocument 403 /mt-dynamic.php
</IfModule>
## ******* Movable Type generated this part; don't remove this line! *******

ただし、赤字の「/mt-dynamic.php」の箇所は、ブログのURLに応じて変える必要があります。
例えば、ブログのURLが「http://www.foo.com/blog/」だとすると、mt-dynamic.phpのURLは「http://www.foo.com/blog/mt-dynamic.php」になるはずです。
この場合、赤字の「/mt-dynamic.php」を「/blog/mt-dynamic.php」に書き換えます。

No.15 わ~さん : (無題)

藤本さま

早速のご回答ありがとうございます。
おかげさまで解決いたしました。

No.16 Shima : (無題)

はじめまして。
こちらのPerl版ダイナミック・パブリッシングを利用させていただいております。

ブログ記事のテンプレートをダイナミック・パブリッシングで出力させると以下の現象が起きます。

1.ブラウザ(IE6)のステータスバーに「'commenter_name'は宣言されていません。」というエラーメッセージが表示される
2.デフォルトでは非表示になるはずのコメントフォームが常に表示されてしまう
3.「MTIf=entry_template」で出力させている「カテゴリ」が出力されない

ブラウザをFireFoxに切り替えても2.、3.の現象が起きます。
ダイナミック・パブリッシングを解除するとこれらの問題は起きないのですが…
なお、現在の状態はMT4.01のデフォルト状態で、テンプレート等には手を加えていません。
考えられる原因など、ご教授いただければ幸いです。

No.17  Author Profile Page: (無題)

>shimaさん
こんにちは。

ご指摘の不具合を修正したものを公開しました。

http://www.h-fj.com/blog/archives/2007/11/27-104639.php

No.18 Shima : (無題)

壱さま

素早い対応、ありがとうございます。
差し替えたところ問題なく表示されるようになりました。

No.19 maruo : 表示がされません。。

はじめまして。
仕事の関係でMT4を使用しています。
そのサイトでは、エントリーページでも常にすべてのエントリーも表示したいため、エントリーアーカイブのみダイナミックパブリッシングにしようと思い、こちらのプラグインを使用させていただくことにしました。
プラグインをインストールし、各設定も問題なく済み、さぁ!とエントリーページを見ようとしましたが、、、何も表示されませんでした。。
各々のエントリーへのリンクはあるものの、エラーメッセージも出なく、ただの白い画面があるだけです。(ソースも真っ白です。)
なにが原因なのか、もしよろしければ教えていただけませんでしょうか。MT初心者で、ここ毎日MT残業です。。
よろしくお願いします。

No.20  Author Profile Page: Re:表示がされません。。

こんにちは。

申し訳ありませんが、そちらのサーバーにログインして動作を追ってみないと、問題の原因をつかめなさそうです。

No.43 MTOSユーザー : Re:表示がされません

私も同じ様な状況になりました。

条件が違うかもしれませんが、参考までに行った事メモしておきます。

システム:MTOS
私のサイトはW3C勧告準拠で構築しているので、
先頭にXML宣言を入れているのですが、

これを直書きしていると、何も出力されなくなります。
(テンプレートのヘッダー内に記述しています。)

試しにxml宣言を削除すると表示されます。

インデックスの拡張子は.htmlで、ダイナミックパブリッシングのプラグインでもindex.htmlなのですが、どうも先頭の"

がないかモジュールテンプレートをチェックしてみる事をお勧めします。

>はじめまして。
>仕事の関係でMT4を使用しています。
>そのサイトでは、エントリーページでも常にすべてのエントリーも表示したいため、エントリーアーカイブのみダイナミックパブリッシングにしようと思い、こちらのプラグインを使用させていただくことにしました。
>プラグインをインストールし、各設定も問題なく済み、さぁ!とエントリーページを見ようとしましたが、、、何も表示されませんでした。。
>各々のエントリーへのリンクはあるものの、エラーメッセージも出なく、ただの白い画面があるだけです。(ソースも真っ白です。)
>なにが原因なのか、もしよろしければ教えていただけませんでしょうか。MT初心者で、ここ毎日MT残業です。。
>よろしくお願いします。

No.21 yuha : (無題)

いつもお世話様です。
Perl版ダイナミック・パブリッシングを何とか導入させていただきました。この状態でモブログすべくMTmailを使用してエントリを投稿したところ、管理画面のブログ記事の一覧には正常に現れるのですが、全然サイトに反映されませんでした。管理画面で手動でサイトの再構築をしても改善せず、試行錯誤した結果、プラグインの設定のところからキャッシュをクリアしたところ表示されるようになりました。この現象を回避する方法はないもんでしょうか。

No.22  Author Profile Page: Re:MTMailの件

>yuhaさん
こんにちは。

ご質問の件ですが、おそらくMT/lib/XMLRPCServer.pmを書き換えれば動作するようになると思います。
MT4.01だと、上記ファイルの250行目に「$entry->save;」という文があります。この後に、以下の2行を追加してみてください。

$blog->touch;
$blog->save;

No.23 yuha : Re:MTMailの件

壱様

すばやいご回答ありがとうございました。
今さっき帰宅しまして、早速ご教示の内容でMT/lib/MT/XMLRPCServer.pmにパッチをあててみたところ、モブログで投稿してもサイトに反映されるようになりました。

どうもありがとうございました。

No.24 (匿名) : (無題)

キャッシュの保存に失敗しました sql = insert into mt_dpcache (dpcache_blog_id, dpcache_uri, dpcache_modified_on, dpcache_pagefile, dpcache_pagesize) values ( 2, '/index.html', '2008-01-11 20:45:53', '0630988794.php', 45148)

といったエラーが続出するようになってしまったのですが、どうにか、ならないものでしょうか?

何回かリロードすると直ることもあるのですが、どうもアクセスが集中する時間帯でエラーが頻発するような気がします。(たまにアクセスがないときにも出ることがあり。)

ぜひなにか対策などございましたらぜひ教えていただきたく思います。よろしくお願いします

No.25  Author Profile Page: (無題)

>匿名さん
プラグインご利用ありがとうございます。

ご質問の件ですが、キャッシュを保存しようとして失敗している状況です。
何らかの原因で、MySQLの負荷が高くなっているものと思われます。

個人向けのレンタルサーバーだと、多数の人でMySQLを共有する形になりますので、負荷が上がりやすいです。
特に、ロリポップなどの一部のレンタルサーバーでは、MySQLのサーバーの台数が少なく、負荷が非常に高くなることもあります。
この場合だと、レンタルサーバーを乗り換えるしかないと思います。

また、推測ですが、スパムボットから多数のアクセスを受けていて、それによって負荷が上がっているのかもしれません。
その場合、.htaccessを使って、スパムボットからのアクセスをはじくような対策をすることが考えられます。

No.26 (匿名) : (無題)

壱さんご返答ありがとうございます。

>キャッシュの保存に失敗しました sql = insert into mt_dpcache (dpcache_blog_id, dpcache_uri, dpcache_modified_on, dpcache_pagefile, dpcache_pagesize) values ( 2, '/index.html', '2008-01-11 20:45:53', '0630988794.php', 45148)

のものです。 使っているサーバーはヘテムルというサーバなのですが、さきほど問い合わせた際、壱さんの言うとおり、やはりアクセスの過多によるものと返答がきました。

1日30000PV程なのですが、壱さんのダイナミック・パブリに耐えられるようなサーバを教えていただけないでしょうか?

さくらのプレミアムは、MySQLが重いそうで、Webアリーナは少し割高だなぁ・・・と四苦八苦しております。

ぜひ何処かいいサーバがありましたらぜひご教授くださるとさいわいでございます。

No.27  Author Profile Page: (無題)

>匿名さん
こんにちは。

1日30000PVともなると、共有のレンタルサーバーでは厳しいのではないかと思います。

再構築を楽にしたいということであれば、「Junnama Online」というブログで配布されている「Rebuild at 1st View」というプラグインもあります。
このプラグインは、動的に再構築したものを、キャッシュではなく実ファイルに保存する形式です。
キャッシュのチェックのためにDBにアクセスすることがないので、より高い負荷に耐えうると思います。

http://junnama.alfasado.net/online/2008/01/post_126.html

No.28 (匿名) : (無題)

さっそくのご返事ありがとうございます。 このプラグインをつかってみようと思うのですが、実はMT3.34からMT4に移行した際に静的に再構築すると最新の1~2記事しか生成できないのです。 さきほどこのプラグインをインストールしてやってみましたが、結果は同じでした。 MT4のインストールは普通に新品からやってみたのですが・・・。 なにかありましたらぜひご教授いただけるとさいわいです。

No.29  Author Profile Page: (無題)

>匿名さん
こんにちは。

Junnamaさんのプラグインに関しては、申し訳ありませんがJunnamaさんにお問い合わせください。

No.30 sky@nanosharp Author Profile Page: ページの表示がされない

はじめまして。
このプラグインをMT4.1で使おうと思い、何回も設置をやってみたのですが、サーバの広告しか表示されません。
広告を一度取り外してみましたが同じくダメでした。

一度echoを入れてどこまで実行しているか確認したのですが、どうもinclude($filename);の部分でただしく読み込まれていないようです。

キャッシュはOFFで.htaccessファイル/mt-dynamic.php/sqlsub-mysql.phpは正しく生成されています。

No.31  Author Profile Page: Re:ページの表示がされない

>sky@nanosharpさん
こんにちは。

試しに、以下のようなアドレスにアクセスして、どのようなメッセージが表示されるかを調べていただけますでしょうか。
「○○○」には、表示したいページのアドレスから、「http://ドメイン名」を除いたものを指定します。

http://MTのディレクトリ/plugins/PerlDynamic/mt-perl-dynamic.cgi?uri=○○○

例えば、MTを「http://www.foo.com/mt/~」のディレクトリにインストールしているとします。
また、表示したいページのアドレスが「http://www.foo.com/blog/index.html」だとします。
この場合、以下のアドレスにアクセスします。

http://www.foo.com/plugins/PerlDynamic/mt-perl-dynamic.cgi?uri=/blog/index.html

No.32 sky@nanosharp Author Profile Page: (無題)

Perl版ダイナミックパブリッシングは有効にしていないのですが、次のように表示されました。
/home/nsblog/public_html/blogs/nsblog3/phptemp/0014760794.php

No.33  Author Profile Page: (無題)

>sky@nanosharpさん
こんにちは。

mt-perl-dynamic.cgiの中で、ページのアドレスからページの情報を得る処理を行っていますが、その処理がなぜかうまくいっていないようです。
外からはそこまでのことは分かりますが、なぜそうなってしまっているかは、申し訳ありませんが、そちらのサーバーでデバッグしてみないと分からないです。

No.34 sky@nanosharp Author Profile Page: (無題)

そうですか、わかりました。
ありがとうございました。

No.37 iwashiwomizu Author Profile Page: (無題)

こんばんは。
何度かこちらにコメントを送信させていただいているのですが、スパムに分類されてしまうような部分があったようなので、再編集して再度コメントさせていただきます…。

プラン変更、MT4.1へUPグレードに伴い、こちらのプラグインを利用させていただきました。

当方、1つのMTで2つのブログを稼動させているのですが、こちらのプラグインではどちらかひとつのブログだけしかダイナミックパブリッシング化できないのでしょうか。
分かる範囲で結構ですのでご教授ください。


ブログID1(リンク先のURLのブログです)…メイン・アーカイブページのみ静的ファイル。その他全てを動的ファイル化したところ、動的ファイル部分で500エラーを発症。

ブログID2…メインページのみ静的ファイル。その他全てを動的ファイル化。こちらはエラー表示などは出ず、問題なく正常稼動中。


利用しているホスティングはさくらのスタンダードプランで、こちらのコメント欄にありました.htaccessのOptionsの行を削除する対策については両ブログとも実施済みです。

No.38  Author Profile Page: (無題)

プラグインご利用ありがとうございます。

ご質問の件ですが、これまでにも数名の方から同様の現象で問い合わせをいただいています。
ただ、こちらがテストしている限りでは、1つのMTで複数ブログでPerl版ダイナミック・パブリッシングを動作させることができています。
何かサーバーに依存する問題があるのだと思いますが、申し訳ありませんが、現状では解決策が見つからない状況です。

No.41 iwashiwomizu Author Profile Page: (無題)

ご返答ありがとうございます。

かなり便利なのでどうしても使いたかったんですが、サーバー依存の問題となると、ここでは解決できませんね…。

ちょっとホスティング先に問い合わせてみます。

No.39 yuha : 日別アーカイブの生成で妙な現象発生

いつもお世話になっております。

Perl版ダイナミック・パブリッシングを導入させていただいております。立ち上げが出来てからは特に問題なく運用させていただいていたのですが、先日横一列カレンダーを入れてみようと思い立って日別アーカイブを作成するように変更しました。この状況でもPerl版ダイナミック・パブリッシングは順調に稼動しておりましたが、なぜか2008年1月26日のアーカイブだけ作成に失敗してしまう現象が発生しています。

横一列カレンダーの問題かと思ったのですが、テストとして静的構築で横一列カレンダーをつけたブログを作ってみたところ(/test2000/)、そちらではそのような問題は発生しませんでした。

2008年1月26日だけ記事を書かなければ何も問題はないのですが、何か類似の事例をご存知でしたら、対策等ご教示いただけませんでしょうか・・・

No.40  Author Profile Page: Re:日別アーカイブの生成で妙な現象発生

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

ご質問の件ですが、記事の中でタグを使えるようにするプラグインをお使いではないでしょうか。
1月26日の記事に何らかのタグを使っていて、そのタグの処理に失敗しているのではないかと推測しました。
ただ、ダイナミック・パブリッシングだと失敗する理由は、申し訳ありませんが分かりません。

No.42 yuha : (無題)

壱様

お忙しいところご回答いただきましてありがとうございました。

私も最初は記事自体に何か問題があったのかと思ったのですが、公開日を他の日に変更しただけで問題なく表示できるようになってしまったため、頭を抱えております。

きっと何かと何かが干渉してこのような現象が起こっているのだと思います。いろいろ試してみまして、何か判明しましたらまたfeedbackさせていただきます。

お忙しいところお手数おかけしまして申し訳ございませんでした。

No.50 yuha : (無題)

お世話様です。

本件ですが、最近発生した別の現象を調べているうちに、MySQLのテーブル「mt_fileinfo」に、登録されているデータのileinfo_archive_typeがDailyの属性の項目で、消した筈の記事nの物がfileinfo_file_pathのところに同じ名前で何個もあることがわかりました。
該当する記事は無い筈なのでこれらを削除したところ問題が解決してしまいました。

何故こんな風になったのかよくわかりませんが、対症療法がわかりましたので、ご報告いたします。

No.44 MTOSユーザー : Perl版ダイナミック・パブリッシング使用時のXML宣言追加に関する質問

いつも有益なプラグインをありがとうございます。

さて、先日もこのエントリに他の方へのレスの形で
コメントさせていただきましたが、
MTOSで、このプラグインを利用させていただく際、
ファイル先頭にXML宣言を入れると、ソースが出力されない
まっ白な状態になります。

試行錯誤の結果、PHPのechoでXMLを出力させると、
表示される事は確認したのですが、
システムテンプレートでは、ソース内にPHPのecho文が残った状態で
出力されてしまいます。

この現象が、特定条件(私の環境)のみの物なのか、
判断がつきませんが、なにか対処法がありましたらアドバイス頂けませんでしょうか?

よろしくお願い致します。

No.45  Author Profile Page: Re:Perl版ダイナミック・パブリッシング使用時のXML宣言追加に関する質問

>MTOSユーザーさん
こんにちは。

まず、XML宣言は「<:?」と「?>」で囲まれますが、PHPの一般的な設定では、「<:?」と「?>」で囲まれた部分はPHPのスクリプトと見なされます。
Perl版ダイナミック・パブリッシングでは、ページをPHPで処理しますので、XML宣言をそのまま入れると、正しく動作しなくなります。
XML宣言を入れたい場合は、以下のようにXML宣言をPHPのスクリプトで出力するようにします。

<?php print('XML宣言の内容' . "\n"); ?>

次に、システムテンプレートの件です。
システムテンプレートはCGIによって処理され、PHPの処理を通らないので、PHPの文はそのままの形で出力されます。
1つの解決方法は、システムテンプレートではPHPを使わないようにすることです。小粋空間様の以下の記事を参考にしてください。

・Movable Type 4 で PHP 化する時の注意事項
http://www.koikikukan.com/archives/2007/12/21-013313.php

もう1つは、CGIで出力されたものをファイルに保存し、それをPHPで処理する方法です。
これについては、当ブログの以下の記事を参照してください。

・コメント/検索関連テンプレートのPHP化
http://www.h-fj.com/blog/archives/2005/09/16-161205.php

No.46 MTOSユーザー : Re:Re:Perl版ダイナミック・パブリッシング使用時のXML宣言追加に関する質問

壱様

すみません、返信の形で投稿出来なかったので新しいスレッドで。

お休みに素早いご返事頂き恐縮です。

お知らせ頂いた対処法、判りやすかったです。
ただ、最初の書き込みに書いていなかったのですが、
こちらの環境ではPHP化を行っておりません。

拡張子は.htmlで出力している状態なのですが
上記の様な対処法が必要でした。

この状態は意図された挙動でしょうか?

何度もお手を煩わせて申し訳ございません。

よろしくお願い致します。

No.47  Author Profile Page: Re:Perl版ダイナミック・パブリッシング使用時のXML宣言追加に関する質問

>MTOSユーザーさん
こんにちは。

ページの拡張子がhtmlであっても、Perl版ダイナミック・パブリッシングではPHPで処理を行います。

No.48 MTOSユーザー : 解決しました!

壱様

>ページの拡張子がhtmlであっても、Perl版ダイナミック・パブリッシングではPHPで処理を行います。

了解しました。

小粋空間様の記事を参考に解決出来ました。
ありがとうございました。

No.51 ma2ten : (無題)

はじめまして。
こちらのPerl版ダイナミック・パブリッシング(MT4版)の導入を試みているものです。
こちらの手順通りで、とりあえず初期化、再構築まで行いました。
特にエラー等は出なかったのですが、ブログを表示してみておかしな点に気付きました。
テンプレートを見てみると、テンプレート名や内容に含まれる日本語文字列部分が全て"????"に化けてしまっていました。
その関係で再構築時にエラーになってしまいました。
何か手順を間違えてしまったでしょうか?

全ての文字化けを手直しするのは困難なので、仕方なくいったんブログを削除し、新たにブログを作成し直しました。
すると、今度はPerlDynamicプラグインの設定で、初期化や設定へのリンクURLにMTCGIPathが反映されずリンクエラーになってしまいました。
(http://foo.bar.com/hoge/mt/plugins/~ のはずが http://foo.bar.com/plugins/~ になっている)
正しいURLを直打ちすれば一応設定できたのですが、このリンクを直すにはどうすれば良いでしょうか?

よろしくお願いします。

No.52 ma2ten : 追伸

ブログを作成し直した後、少しいじっていたら、いつの間にか再度文字化けしてしまいました。
ちなみにテンプレートだけでなく、ブログ名等全般的に化けてしまうようです。
もしかして環境の問題でしょうか。
いずれにせよ、ちょっとこれでは使えないので使用をあきらめます。
もし原因が分かりましたら対応よろしくお願いします。

No.53 ma2ten : 解決(?)

何度もすいません。
その後インストール時の

> ただし、「mt-dpcache-drop.php」ファイルはアップロードしないでください。

の一文を見逃していた事に気付きました。
それでこのファイルのせいかどうか分かりませんが、改めて一からやり直した所、今度は文字化けも起こらず、普通に動作しているようです。(少なくとも今のところ)

これでダイナミックパブリッシングでもテンプレートタグのプラグインが使えるようになって助かります。

ということで、何度もお騒がせしてすみませんでした。

No.54 “教官”都々目さとし Author Profile Page: (無題)

MT4.1にインストールしようとしたところ、最初のログインで以下のエラーが出て、インストールが成功しませんでした。

データベースをアップグレードしています・・・
dpcacheのテーブルを更新しています...

アップグレード中にエラーが発生しました failed to execute statement ALTER TABLE mt_dpcache ADD dpcache_id integer NOT NULL PRIMARY KEY auto_increment: Multiple primary key defined at lib/MT/Upgrade.pm line 2003.

全SQL対応版Perl版ダイナミック・パブリッシングは使ったことがなかったので、その部分は飛ばしてやったのですが……。

No.55  Author Profile Page: (無題)

>“教官”都々目さとしさん
プラグインご利用ありがとうございます。

ご質問の件ですが、すでにあるテーブルをアップデートしようとして、失敗しているようです。
MySQLをお使いで、かつphpMyAdminが使えるのであれば、以下の手順でテーブルを削除して、再度ログインを試してみてください。

1.「mt_dpcache」テーブルを削除します。
2.「mt_config」テーブルの内容を表示します。
3.1つだけレコードがありますので、そのレコードを編集する状態にします。
4.「config_data」フィールドの値から、以下の部分を削除します。

PluginSchemaVersion PerlDynamic/PerlDynamic.pl=3

No.56 “教官”都々目さとし Author Profile Page: (無題)

わざわざありがとうございます。
config_dataフィールドにはPluginSchemaVersion~はありませんでしたが、mt_dpcacheを削除したところ、データベースの更新ができました。
ただ、実際にダイナミック・パブリッシングを使用しようとすると500でエラー。さくらインターネットを使っているので、.htaccessのOptions行をコメントアウトし、あとphpに実行属性をつけたのですが、それでも駄目。結局挫折しております……。

No.57 footbrain Author Profile Page: MTIfDynamicのような条件タグはありませんか?

テンプレートがPerl版ダイナミック・パブリッシングで構築する設定になっているかどうかを判定したいのですが、MTIfDynamicのような条件タグはありませんか?

他の方法で判定できるとすれば、どのような方法がありますか?

まいどまいど妙な質問で恐縮ですが、よろしくお願いします。

No.58  Author Profile Page: RE:MTIfDynamicのような条件タグはありませんか?

>footbrainさん
こんにちは。

Perl版ダイナミック・パブリッシングで構築されているかどうかを判断するようなタグは、申し訳ありませんがありません。
手動で判断する方法として、以下のようなものが考えられます。

1.Perl版ダイナミック・パブリッシングを使うテンプレートの先頭に、以下のようなMTSetVarタグを入れます。

<MTSetVar name="perl_dynamic" value="1">

2.Perl版ダイナミック・パブリッシングを使っているかどうかを判断して出力を変えたい箇所に、以下のようなタグを入れます。

<MTIf name="perl_dynamic">
Perl版ダイナミックパブリッシングを使っているときに出力する内容
<MTElse>
Perl版ダイナミックパブリッシングを使っていないときに出力する内容
</MTIf>

No.59 footbrain Author Profile Page: RE:MTIfDynamicのような条件タグはありませんか?

>壱さん

なるほど、そうですね。それでいいですよね。
ありがとうございました。

No.60 さむらい : キャッシュの保存に失敗しました

キャッシュを使うに設定した際なのですが、キャッシュの保存に失敗しました sql = insert into mt_dpcache (dpcache_blog_id, dpcache_uri, dpcache_modified_on, dpcache_pagefile, dpcache_pagesize) values ・・・
などと表示されます。
同じような現象で経験された方はいらっしゃいますでしょうか?

No.61 さむらい : No25に関して

すみません、自己レスです
No25を参照させて頂いておりましたが、
レンタルサーバーでもなく、負荷による障害では考えにくい状態に有るとき、当エラーが出ている状態となります。

MYSQL Version 5.0.27
PHP Version 5.2.5
Perl Version 5.8.5

の環境なのですが、これ以外では特に不具合などはありません。
環境の設定などによるものなのでしょうか・・・
ちょっと今のところ解決策が見つかっておらず、いったんOFFにして利用させていただいています。

No.62  Author Profile Page: Re:キャッシュの保存に失敗しました

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

キャッシュをオンにすると常にエラーが出るのであれば、キャッシュ用のテーブル(mt_dpcache)が正しく作られていないといった原因が考えられます。
ただ、実際の動作を追ってみないと、はっきりとした原因は何ともいえません。

No.63 さむらい : (無題)

>壱さま

お世話になります、ご返信ありがとうございます。
プライグインを活用させていただきましてありがとうございます。

mt_dpcacheの存在を確認致しましたところ、問題なくテーブル自体はございましたが、やはりレコードが存在しなく、書込みにいく際になにか障害がでているものと思われます。

なぜこのテーブルだけには失敗しているのかが分かれば自動的に解決しそうなので、もう少し出来る限り現象を詰めてみたいと思います。

キャッシュ機能なしでも実際は支障がないのですが、せっかくある機能なので活用できればなと思いまして ^^;

また何か分かりましたらご報告したいと思います!

No.64 りある : サーバー移転で・・・

peal版ダイナミックパブリッシングありがたく利用させて頂いております。
現在利用しているサーバーから、別のサーバーに移転することになりまして、構築作業を進めているのですが、上手くいきません。
ルート上のデータやデータベースの移行などは上手くいっていると思うのですが、前途の方と同じように「.../mt-dynamic.php on line 181」が表示されます。
キャッシュを有効にすると「キャッシュファイルのコピーに失敗しました」とメッセージが表示されます。
「/mt-dynamic.php on line 181」エラーメッセージの時は旧サーバーのルートパスと「phptemp」と表示されるので、いろいろ探してたのですが記載設定されているファイルやデータが見つかりません。
http://MTのディレクトリ/plugins/PerlDynamic/mt-perl-dynamic.cgi?uri=○○○
にアクセスした際はファイル名が表示されるので動作しているかとはおもうのですが、テンパってます。

No.65  Author Profile Page: Re: サーバー移転で・・・

>りあるさん
こんにちは。

症状からすると、移転先のブログで、サイトパスの設定が旧サーバーの値のままになっているのではないかと思われます。
ブログの設定を開き、「公開設定」のページの「サイトパス」の値を確認してみてください。

No.66 りある : (無題)

ご連絡ありがとうございます。
再度インストールし直したりしてルートパスの変更ができましが、
今度は
Warning: main() [function.include]: Failed opening '' for inclusion (include_path='.:/usr/local/php4/lib/php/:/tmp/phplib') in /usr/home/hoge/www/htdocs/mt-dynamic.php on line 181
と言うエラーがでます。
過去のコメントなどを参照し、mt-perl-dynamic.cgiが正常に動作していないということなのですが、
http://www.hoge.com/mt/plugins/PerlDynamic/mt-perl-dynamic.cgi?url=http://www.hoge.com/ファイル名
へアクセスすると、
ルートパス/phptemp/ファイル名.php
と表示され、phptempにもファイルが生成されているので、動作はしているようなのです。

何か弊害があるんでしょうか?

No.67  Author Profile Page: (無題)

>りあるさん
こんにちは。

症状からすると、お使いのサーバーでは、phpのfile関数でHTTPアクセスすることが禁止されているのではないかと思います。
申し訳ありませんが、そのような環境ではPerl版ダイナミック・パブリッシングをご利用いただくことができません。

以下のスクリプトを「test.php」というファイル名で保存し、お使いのサーバーにアップロードして、「http://アップロード先/test.php」にアクセスしてみてください。
「ng」と表示されたら、file関数でのHTTPアクセスが禁止されています。

<?php
print(ini_get('allow_url_fopen') ? 'ok' : 'ng');
?>

No.68 りある : (無題)

素早いご返答感謝いたします。
早速ファイル作成及びアップロードを試みましたところ、「OK」と表示されました。

No.69  Author Profile Page: (無題)

>りあるさん
このプラグインをインストールすると、インデックステンプレートの中に、「mt-perl-dynamic.php」というテンプレートができます。
そのテンプレートを開き、90行目付近を以下のように書き換えてください。

・変更前
if ($filename == 'Save page error') {
exit(show_error_message('再構築したファイルを保存するのに失敗しました。'));
}

・変更後
if ($filename == 'Save page error') {
exit(show_error_message('再構築したファイルを保存するのに失敗しました。'));
}
else if (!$filename) {
exit(show_error_message('ファイル名を取得することができませんでした。'));
}

また、87行目にある「$tmp = @file($req);」で、「@file」の前にある「@」を削除してください。

ここまでが終わったら、テンプレートを保存して再構築し、その後にブログにアクセスしてみてください。
もし、エラーメッセージや、「ファイル名を取得することができませんでした。」のメッセージが表示されたら、そちらのサーバーでは、PHPのセーフモードによる制限がかかっているものと思われます。

セーフモードがオンだとすると、mt-perl-dynamic.phpと、キャッシュのファイルとが、同じUID(ユーザーID)を持っていることが必要になります。
その場合は、お手数ですが、mt-perl-dynamic.phpと、キャッシュのファイルとが同じUIDになるようにするにはどうすればよいかを、サーバーの業者に問い合わせてください。

No.70 エヌ : XServerで、404エラーが出ます

XServerを使用していて、MT4.1新規インストールの状態で、
「Perl版ダイナミック・パブリッシング」を使わせていただこうと
しているのですが…
「PerlDynamic」と「RebuildHelper」のフォルダを、
「plugins」ディレクトリにアップロードして、
ログイン画面(mt.cgi)にアクセスすると、404エラーが出て、
ページが表示されなくなります。

XServerは、PHPの仕様にクセがあるので、そのせいだとは
思うのですが、何か対策など思い当たるものがありましたら
アドバイスをいただけないでしょうか?

【参考】
http://www.xserver.ne.jp/faq_service_php.php#1

お手数をお掛けしますが、よろしくお願いいたします。

No.71 エヌ : Re:XServerで、404エラーが出ます

すみません。私のミスでした。

http://www.sixapart.jp/support/mt4/install/post_39.html

↑こちらの内容に従って、「mt-upgrade.cgi」を削除していたのを失念していました。
お騒がせしてしまって、申し訳ありませんでした。
DBの初期化までは正常に終わったので、これからプラグインの設定をしていきます。

取り急ぎ、ご報告まで。

No.71  Author Profile Page: Re:XServerで、404エラーが出ます

>エヌさん
こんにちは。

404エラーは「ファイルが見つからない」というものです。
また、Perl版ダイナミックパブリッシングがPHPを使うのは、ブログのページにアクセスがあったときです。mt.cgiではPHPは使いません。
プラグインのファイルをアップロードしただけの段階で、しかも404エラーというなると、申し訳ありませんが原因は不明です。

No.72 エヌ : (無題)

さっそくのご返事をいただきまして、ありがとうございます。
先のコメントにも書きましたとおり、私のミスでした。

お手数をお掛けして、すみませんでした。m(__)m

その後の設定も無事に完了しました。
これからもお世話になりますので、今後ともよろしくお願いします。

No.72 エヌ : (無題)

さっそくのご返事をいただきまして、ありがとうございます。
書き込みの行き違いになったようですが、先にも書きましたとおり、
私のミスでした。

お手数をお掛けしまして、すみませんでした。m(__)m

その後の設定も無事に終わりました。
これからも、お世話になりますので、よろしくお願いいたします。

No.73 ひよこ : 削除する方法

こちらのプラグイン便利そうだなあと思いアップロードしたのですが、うまく動作しませんでした。もちろん私のやり方がおかしいのだと思います。
それで、このプラグインを外して前の状態に戻したいのですが、どうすればいいのでしょうか?
FTPで「PerlDynamic」と「RebuildHelper」の2つのフォルダを削除しましたが、まだアクセスできないページがあったりします。

Parse error: syntax error, unexpected T_STRING in /home/domain/index.php on line 1

こんな表示がされるのですが、他に削除しなければいけないファイルなどがあるのでしょうか?
ブログ設定は「すべてのテンプレートを静的に構築する」に戻しました。

No.74  Author Profile Page: Re:削除する方法

>ひよこさん
こんにちは。

エラーメッセージからすると、小粋空間のテンプレートをお使いなのではないかと思います。
そうであれば、「ヘッダー」のテンプレートモジュールの先頭に、以下のような行があると思います。

<?xml version="1.0" encoding="" ?>

これを、以下のように書き換えてください。

<?php print('<?xml version="1.0" encoding="<$MTPublishCharset$>" ?>' . "\n"); ?>