MTインストール時にmt-staticが見つからない理由。

| コメント(9) | トラックバック(0)

某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認証付きのバーチャルホストとかでサイト設定してスタート、ってことも結構あるし。

いや、すいません投げやりで。月曜のセミナーの準備してますので許してくださいごめんなさい。

トラックバック(0)

トラックバックURL: http://junnama.alfasado.net/cgi/mt/mt-tb.cgi/113

コメント(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ですけど、そういう問題ではなく?

>「This URL path can be in the form of http://example.com/mt-static/ or simply /mt-static」

なるほど。パスだけでいいのか! そんでもウィザード起動時にはhttp://〜ってのが入った状態になりますよね。
そのままボタンクリックして次のステップへ進んだときに「mt-staticが見つかりません」(<だったかな)に遭遇する人が多いような気がします。僕も何度か遭遇しましたし。

もちろん、インストールに問題はないですけど、その方が親切というかつまづく人が少ないと思うわけです。

なるほど。そういう事ですね。
あのページが表示されると言うことはあのURL自体もまぁアクセス出来なかったからなんですが、「/mt-static」だけ表示させるというのもアリといえばアリなのかもデスね。


次期バージョンへの貴重なご意見として(ry
ですw ありがとうございました〜

> ローカル上のファイルが存在しているかをチェックしているわけではなく、URLとしてmt-staticへのパスをチェックしているのでご指摘の方法では意味をなさないです。

というか、そう書いたつもりだけど...

あ、入れ違った...そろそろ寝ましょうよ(誰)...

> ただ、この画面が出ている時点でCSSが読めている = mt-staticへのパスは通っているわけだから、

いや、見つかってないのでこのページ出てるんです。
たしかこのページのCSSはHTMLに埋め込みで出してますね。

> これ見落としますね。エラーが出ているのにグレー文字だし。画面の上のイエローのところに目が行きます。
あー。Hint扱いなのでちと見づらいかもしれませんね

まぁ大概の環境ではCGI-BIN下のmt-staicにアクセス出来ない場合が多いでしょうからもうちょっと親切にしてあげた方がいいすね。はい。

>たしかこのページの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でブラウザからアクセスした結果をサーバーに送るってのはどうでしょう?

ここでやる議論じゃないですね...SNSでやる話でもないし...

ちょっとMTOSのコードいぢくってみることにします。

こんにちは、いつも楽しく読ませていただいております!

私も最近までmt-staticのvalidateで引っかかっておりました(汗)
開発環境だったため、Apacheに固定IPアドレスで制限をかけていました。
LWPを見つけるまで、Wizard.pmのソースを修正してインストールしていました
今は、Apacheの制限に自サーバーIPを追加して対応しました


コメントする

Facebook

Twitter

このブログ記事について

このページは、Junnama Nodaが2008年2月23日 01:04に書いたブログ記事です。

ひとつ前のブログ記事は「ウェブサイト制作の相場に意味ってあんのかね?」です。

次のブログ記事は「スターシステムとかマッチョとかウィンプとか。」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

Powered by Movable Type 6.2.6