某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認証付きのバーチャルホストとかでサイト設定してスタート、ってことも結構あるし。
いや、すいません投げやりで。月曜のセミナーの準備してますので許してくださいごめんなさい。
カテゴリー: MovableType


コメント (9)
こんにちわ。
某SNSがどこで、何の話をしてるのか解りませんが。
ローカル上のファイルが存在しているかをチェックしているわけではなく、URLとしてmt-staticへのパスをチェックしているのでご指摘の方法では意味をなさないです。というか、cgi-binに置いてあった場合に、cgi-bin/mt/mt-staticに素直にアクセスできるのであれば、このステップはスキップされるし。
ホスト名が違うのであれば、mt-staticには「This URL path can be in the form of http://example.com/mt-static/ or simply /mt-static」と有る通りパスだけでOKですけど、そういう問題ではなく?
投稿者: Yuji Takayama | 2008年02月23日 03:22
日時: 2008年02月23日 03:22
>「This URL path can be in the form of http://example.com/mt-static/ or simply /mt-static」
なるほど。パスだけでいいのか! そんでもウィザード起動時にはhttp://〜ってのが入った状態になりますよね。
そのままボタンクリックして次のステップへ進んだときに「mt-staticが見つかりません」(<だったかな)に遭遇する人が多いような気がします。僕も何度か遭遇しましたし。
もちろん、インストールに問題はないですけど、その方が親切というかつまづく人が少ないと思うわけです。
投稿者: junnama | 2008年02月23日 03:56
日時: 2008年02月23日 03:56
なるほど。そういう事ですね。
あのページが表示されると言うことはあのURL自体もまぁアクセス出来なかったからなんですが、「/mt-static」だけ表示させるというのもアリといえばアリなのかもデスね。
次期バージョンへの貴重なご意見として(ry
ですw ありがとうございました〜
投稿者: Yuji Takayama | 2008年02月23日 04:14
日時: 2008年02月23日 04:14
> ローカル上のファイルが存在しているかをチェックしているわけではなく、URLとしてmt-staticへのパスをチェックしているのでご指摘の方法では意味をなさないです。
というか、そう書いたつもりだけど...
投稿者: junnama | 2008年02月23日 04:14
日時: 2008年02月23日 04:14
あ、入れ違った...そろそろ寝ましょうよ(誰)...
投稿者: junnama | 2008年02月23日 04:17
日時: 2008年02月23日 04:17
> ただ、この画面が出ている時点でCSSが読めている = mt-staticへのパスは通っているわけだから、
いや、見つかってないのでこのページ出てるんです。
たしかこのページのCSSはHTMLに埋め込みで出してますね。
> これ見落としますね。エラーが出ているのにグレー文字だし。画面の上のイエローのところに目が行きます。
あー。Hint扱いなのでちと見づらいかもしれませんね
まぁ大概の環境ではCGI-BIN下のmt-staicにアクセス出来ない場合が多いでしょうからもうちょっと親切にしてあげた方がいいすね。はい。
投稿者: Yuji Takayama | 2008年02月23日 22:41
日時: 2008年02月23日 22:41
>たしかこのページのCSSはHTMLに埋め込みで出してますね。
確かに。ソース見るとHEAD内にCSSが埋め込まれてますね。でもこのキャプチャとった画面では↓これも入ってて、且つブラウザからはアクセスできます。
<link rel="stylesheet" href="http://xxx.alfasado.net/mt/mt-static/css/simple.css?v=4.1" type="text/css" />
ブラウザからはアクセス出来るけどサーバーからはアクセスできない。もちろん僕には理由が分かってるんですけど。
この環境(いわゆる自宅鯖環境)ではサーバーの /etc/hosts に
192.168.XX.XX xxx.alfasado.net
としてApacheリスタートしてやると、問題なく進めます。
他にもサイト構築に使う時はBasic認証かけてからインストールすることもあるし。
>まぁ大概の環境ではCGI-BIN下のmt-staicにアクセス出来ない場合が多いでしょうから
cgi-bin/mt-staic っでのは確かに初心者の人はハマりやすいところでしょうけど。
本文にも追記しましたが、いっそのことAjaxでブラウザからアクセスした結果をサーバーに送るってのはどうでしょう?
投稿者: junnama | 2008年02月23日 23:11
日時: 2008年02月23日 23:11
ここでやる議論じゃないですね...SNSでやる話でもないし...
ちょっとMTOSのコードいぢくってみることにします。
投稿者: junnama | 2008年02月23日 23:22
日時: 2008年02月23日 23:22
こんにちは、いつも楽しく読ませていただいております!
私も最近までmt-staticのvalidateで引っかかっておりました(汗)
開発環境だったため、Apacheに固定IPアドレスで制限をかけていました。
LWPを見つけるまで、Wizard.pmのソースを修正してインストールしていました
今は、Apacheの制限に自サーバーIPを追加して対応しました
投稿者: BAYLEAF森 | 2008年02月24日 18:51
日時: 2008年02月24日 18:51