mt-check.cgiが見つかりませんでした。mt-check.cgiが存在すること、名前を変えた場合は構成ファイルのCheckScriptディレクティブに名前を指定してください。

なん・・だと・・。

--- ./lib/MT/CMS/Tools.pm.orig  2009-08-11 01:30:24.000000000 +0900
+++ ./lib/MT/CMS/Tools.pm       2009-08-11 01:21:17.000000000 +0900
@@ -74,12 +74,20 @@
         return encode_text( $syscheck_object->data(), 'utf-8', undef )
           if ($syscheck_object);
+open(my $fh, ">/var/tmp/hoge");
+print $fh "START $syscheck_url GET Connection\n";
         my $ua = $app->new_ua({ timeout => 20 });
         return unless $ua;
+print $fh "UserAgent Module load success\n";
         $ua->max_size(undef) if $ua->can('max_size');
         my $req = new HTTP::Request( GET => $syscheck_url );
+print $fh "REQ:\n";
+print $fh $req->as_string;
         my $resp = $ua->request($req);
+print $fh "RES:\n";
+print $fh $resp->as_string;
+close $fh;
         return unless $resp->is_success();
         my $result = $resp->content();
         if ($result) {
結果。
[hoge@test00 XXX]$ tail /var/tmp/hoge
START http://test00.example.jp/hogefuga/mt-check.cgi?view=tools&version=4.261-ja GET Connection
UserAgent Module load success
REQ:
GET http://test00.example.jp/hogefuga/mt-check.cgi?view=tools&version=4.261-ja
RES:
500 (Internal Server Error) Can't connect to test00.example.jp:80 (connect: timeout)
Client-Date: Mon, 10 Aug 2009 16:21:41 GMT

NAT してサーバを公開している環境で内部向けに名前解決を行っていないために、
LWP が接続できずにtimeout して終わってるみたい。
/etc/hosts に書いて解決。
3分くらいはまったのでメモ。

続・初めてのPerl 改訂版続・初めてのPerl 改訂版

オライリー・ジャパン 2006-10-21
売り上げランキング : 114189
おすすめ平均

Amazonで詳しく見る
by G-Tools