Thu 07/19, 2007

Moveble Type 4 お試し [Site info. and blog ]

Movable Type 4 が GPL/オープンソースでリリースされるのを機に、別マシンにインストールして評価している。インストール自体はこれまでと同様でてこずることは無い。現時点では mod_perl には対応しているものの、mod_perl2 には対応していない。当サイトは未だに MT2.64 を Apache /1.3.34 + mod_perl/1.29 で運用しているが、そろそろ Apache2 + mod_perl2 にもしたいから、対応されるのを待つか、あるいは自力でなんとかしてみるか。

mod_perl2 / ModPerl::Registry 環境で mt.cgi を以下のようにすれば、とりあえずエラーは出なくなるが、動きは怪しく実用にならない。

#!/usr/bin/perl
# $ENV{MOD_PERL} の操作で出る warning がうるさいので -w オプションを外す。

use strict;

# この BEGIN セクションを追加。
BEGIN {
  chdir "/usr/pkg/libexec/cgi-bin/mt"; # mt.cgi 等のパス
  $ENV{MOD_PERL} = undef; # mod_perl1 用のコードを使わない。
}

use lib $ENV{MT_HOME}? "$ENV{MT_HOME}/lib": 'lib';
use MT::BootStrap App => 'MT::App::CMS';
環境変数 $ENV{MT_HOME} の値が真である時に使用される mod_perl 用のコードは mod_perl2 環境では Apache2::compat を入れただけでは使えずにエラーとなる。上記ではこれを外すことでエラーを回避しているが、当然ながら正常には動かない。一見、動くように見えるがリクエストを正しく受け取ることが出来ず、予想外のページが表示される等、おかしな結果になる。

一応、httpd.conf での mod_perl 用の設定はこんな感じ。NetBSD3.1 のホストで pkgsrc から Apache22 などを入れてある。ModPerl::Registry ではなくて ModPerl::PerlRun を使えばもう少し普通には動くようだが、これでは mod_perl2 を使う意味が薄れてしまう。

LoadModule perl_module lib/httpd/mod_perl.so

PerlSwitches -I/usr/pkg/libexec/cgi-bin/mt/lib -I/usr/pkg/libexec/cgi-bin/mt/extlib
PerlModule Apache2::compat
<Directory "/usr/pkg/libexec/cgi-bin/mt">
  SetHandler perl-script
  PerlResponseHandler ModPerl::PerlRun
  # PerlResponseHandler ModPerl::Registry
  PerlOptions +ParseHeaders
  Options +ExecCGI
  Order allow,deny
  Allow from all
</Directory>

Posted by masato at 08:42 PM

このエントリーのトラックバックURL: http://bird.dip.jp/cgi-bin/mt/mt-tb.cgi/1393
コメントする

おそらく携帯電話等からは投稿できません。日本語文字列を含まないコメントやトラックバック、および当サイトへの言及を含まないトラックバックは御遠慮いただいております。また、90日以上経過した記事へのコメントはできません。










名前、アドレスを登録しますか?