Movable Type が Windows Server + PostgreSQL 環境で動作しない

  • 投稿日:
  • by
たまたま PostgreSQL で MT をインストールしようと、Windows Server で試したところ、こんなエラーが出た。
CGI Error
The specified CGI application misbehaved by not returning a complete set of HTTP headers.
Crypt::DSA の時と一緒だ... 嫌な予感。 ネットで情報を漁ってもそれほどこの問題に関するエラーは出てこない。なぜ?? しつこく調べていると、どうやら DBD::Pg のバージョンに関係するということまで分かってきた。

現在のバージョンは 1.45。PgFoundry にある PPD ファイルをダウンロードし、ppm コマンドでインストールを試してみたが、同じエラーになってしまう。
以前調べた情報でインストールに成功している事例があり、その時使用されていた DBD::Pg のバージョンは 1.49 だった。同じ 1.x 系なら 1.45 でも同じだろうと思いながら、念のため、1.49 でも試してみようと思った。

PgFoundry には、最新版のバイナリしか公開されていないようなので、他で DBD::Pg 1.49 を探してみた。しかしどこを探しても DBD::Pg 1.49 が見つからない。個人で公開している人もいたが、現在はリンク切れだったり、PPD からダウンロードされる DBD::Pg のリンク先が PgFoundry となっているものばかりだった。

そんなとき、FileWatcher というサイトを見つけた。ここで DBD::Pg の PPD ファイルを検索すると、なんとバイナリファイルと一緒に見つけることができた。

で、DBD-Pg-5.8s.ppd と DBD-Pg-1.49-5.8.tar.gz をダウンロードし ppm コマンドでインストールすることができた。肝心な MT のインストールは...できた!おぉーーできたー!!
結構悩んでいたところなので、かなり嬉しい。にしても、何でこのバージョンでしかインストールできないんだろ... Unix 系や Linux 系の OS では他のバージョンの DBD::Pg でもインストールできたのに、なんで Windows Server だけダメなんだろ...MT の動作条件としては DBD::Pg 1.32 以上とドキュメントにも書いてあるのに...中の人はちゃんと検証しているんだろうか...

とりあえず、インストールできたのでよかった。

同じ現象で悩んでいる人のため、後、他のサイトで公開されているものはいつ公開停止になるか分からないため、インストールできる状態の PPD ファイルをここに公開しておきます。

上記の PPD ファイルをサーバーにダウンロードし、サーバー上のコマンドプロンプトで PPD ファイルのあるディレクトリに移動し、ppm コマンドでインストールします。
例えば、C:\Perl に DBD-Pg-5.8s.ppd を設置した場合は、こんな感じで実行します。
C:\Perl>ppm install DBD-Pg-5.8s.ppd
これでインストールできるはずです。