MTインストール時にmt-staticが見つからない理由。
公開日 : 2008-02-23 01:04:55
某SNSで立て続けに上がってたので。
こういう時はコードを見るのですよ。せっかくPerlで書かれてるのだから。
/lib/MT/App/Wizard.pm
require LWP::UserAgent;
my $ua = LWP::UserAgent->new;
my $request = HTTP::Request->new(GET => $path);
my $response = $ua->request($request);
つまり、HTTPリクエスト送ってmt-staticの存在確認してるわけですね。だから、例えばサーバーから名前解決して123.456.789.0 とかIP返ってきた場合に、実はサーバーでは192.168.XX.XXとかにアクセスしなきゃならない時とか、テスト段階でBasic認証かけてる時とかはmt-staticが見つからん、ということになる(んじゃないかな。ちゃんと見てないけど)。 だから、サーバーのほうのHOST (/etc/hosts) ファイルとか設定してサーバーからちゃんとアクセスできるようにしてやればこのエラーは出ないんだと思うよ。
仮に、もし本当にこの仕様なんだったら(多分そうだと思うけど)、SixApartさんには見直しをお願いしたい(ローカルディスク上mt-staticのパスを見に行けばいいんじゃないでしょうか!?←これは駄目だな。ブラウザからアクセス出来るかどうかを見るようにすればいいんじゃないかな)。
追記:
「This URL path can be in the form of http://example.com/mt-static/ or simply /mt-static」日本語版では「このURLは http://example.com/mt-static/ のように入力するか、又は簡略化して /mt-static のように記述できます。」とテキストフィールドの下に出るわけですが、これ見落としますね。エラーが出ているのにグレー文字だし。画面の上のイエローのところに目が行きます。
ただ、この画面が出ている時点でCSSが読めている = mt-staticへのパスは通っているわけだから、見つからないっていうのはやっぱりユーザーへのフィードバックとしては「迷い」「混乱」の元かもね。
さらに追記:
ユーザーのブラウザからmt-staticが見えているかどうかが問題なのだから、こういう時こそAjaxでチェックするってのが良いように思えてきた...
CMSとして使うなら、まず最初はBasic認証付きのバーチャルホストとかでサイト設定してスタート、ってことも結構あるし。
いや、すいません投げやりで。月曜のセミナーの準備してますので許してくださいごめんなさい。