TopMovable Typeトラブルシューティング > Windows XP のローカルサーバ環境(ジャンクション利用)への Movable Type 4.1 のインストールで「mt-staticがみつかりません」という警告が表示される場合の対処
2008年3月 7日

Windows XP のローカルサーバ環境(ジャンクション利用)への Movable Type 4.1 のインストールで「mt-staticがみつかりません」という警告が表示される場合の対処

Posted at March 7,2008 3:00 AM
Category:[トラブルシューティング]
Tag:[MovableType, StaticWebPath, Junction, WindowsXP]

Windows XP で、XAMPP + XAMPP addon Perl のローカルサーバ環境を色々試していたら、次のような事象が発生することが分かりました。

1.問題

Perlインタプリタのパス解決のために、ジャンクション(後述)を設定し、Movable Type 4.1 の新規インストールを開始すると、次のような警告画面が表示されます。

エラー画面

もちろん、mt-static はフォルダ名も変更しておらず、アプリケーションディレクトリ直下にあります。

この状態で、フォームに表示された(正しい)データのまま「開始」をクリックしても、次のような同じ画面が表示され、無限ループに陥ります。

エラー画面

PCを変えても同じ事象が発生したので、100%発生するのではないかと思われます。

ちなみに、本当に mt-static フォルダがみつからない場合は、次のように正しいレイアウトで表示されます。

正常なエラー画面

最初の画面のように、2つの画面が重なったような、妙なデザインで表示されている場合は、ほぼ今回の問題に遭遇していると考えて間違いないでしょう。

2.原因

冒頭に記述した通り、Perl インタプリタのパス解決に使用した「ジャンクション」という機能に起因しているようです。

ジャンクションとは、Linux の「シンボリックリンク」のようなもので、XAMPP addon Perl のインストールパス¥xampp¥perlを¥usrとして、仮想的なフォルダを作成することができます。Movable TypeのCGIファイルのデフォルト設定は、¥usr¥bin¥perlをインタプリタのとして認識するため、このような設定が必要です。

なお、ジャンクションの設定には、下記のツールを使いました(「ツールが良くない」という意味ではありませんので、誤解なきよう)。

リンク作成シェル拡張for Windows 2000/XP

そもそも、Movable Type のインストール開始時には、mt-staticの中にある mt.js ファイルを取得して、さらにその中に「function openManual」という文字列があることをもって、mt-static パスの取得を成功と判定していますが、この処理が正常に動作しないようです。
エラーになる時のHTTPレスポンス($response->status_lineを出力)を見てみると、

500 Can't locate object method "configure" via package "Net::HTTP"

となっていました。

ジャンクション以外の方法で Perl インタプリタのパスを解決した場合はmt-static パスのエラーにはならないので、ジャンクションがこの問題の原因と考えます。

3.対処(その1)

環境設定ファイル、mt-config.cgiを作ってからアクセスすれば、この無限ループに入ることなくインストールできます。もともと mt-config.cgiは、MT3.x 前期の時代には、インストール前に手動で設定していたファイルです。

作り方は、アプリケーションディレクトリに mt-config.cgi-original がありますので、このファイルをコピーするか、リネームしてmt-config.cgi の元ネタを作ります。

次に、任意のエディタで mt-config.cgi を開き、下記の青色の部分を設定します。

    :
# The CGIPath is the URL to your Movable Type directory
CGIPath    http://www.example.com/cgi-bin/mt/
 
# The StaticWebPath is the URL to your mt-static directory
# Note: Check the installation documentation to find out 
# whether this is required for your environment.  If it is not,
# simply remove it or comment out the line by prepending a "#".
StaticWebPath    http://www.example.com/mt-static
 
#================ DATABASE SETTINGS ==================
#   REMOVE all sections below that refer to databases 
#   other than the one you will be using.
 
##### MYSQL #####
ObjectDriver DBI::mysql
Database DATABASE_NAME
DBUser DATABASE_USERNAME
DBPassword DATABASE_PASSWORD
DBHost localhost
 
##### POSTGRESQL #####
ObjectDriver DBI::postgres
Database DATABASE_NAME
DBUser DATABASE_USERNAME
DBPassword DATABASE_PASSWORD
DBHost localhost
 
##### SQLITE #####
ObjectDriver DBI::sqlite
Database /path/to/sqlite/database/file

CGIPath は Movable Type をインストールしたパス、StaticWebPath は、今回問題となっているスタティックディレクトリのパス(mt-staticまで含む)を記述します。

その下はデータベースの設定です。MYSQL/SQLITE はいずれか一方のみ、必要な項目(MySQLであればデータベース名・ユーザ名・パスワード、SQLiteはデータベースのパスのみ)を設定して、不要な方は削除してください。
赤色の POSTGRESQL は最初から削除してください(使うのであれば他のDB設定を削除)。

保存して、ブラウザから Movable Type のインストールディレクトリにアクセスします。

ログイン画面

「ログイン」をクリックすれば、mt-static の検証はおろか、途中のデータベース設定などのウィザードを一気にスキップして、アカウント作成画面に進みます。

アカウント

これで、インストールを最後まで進められます。

4.この対処による懸念事項

インストール後も、HTTP経由でローカルホストにアクセスする機能が一部、使えない可能性があります(下)。

テーマのURLでローカルホストを指定

Feedウィジェット

Feedウィジェットでローカルホストを指定

Feedウィジェット

5.対処(その2)

ジャンクションを使わずに、全 CGI の shebang 行(1行目の #!/usr/per/bin という部分)を

#!/xampp/perl/bin/perl

に変更するなど、他の方法で Perl インタプリタのパスを解決します。

Posted by yujiro
関連記事
トラックバックURL


コメントする

*必須



太字 イタリック アンダーライン ハイパーリンク 引用

コメント投稿後にScript Errorや500エラーが表示された場合は、すぐに再送信せず、ブラウザの「戻る」ボタンで一旦エントリーのページに戻り(プレビュー画面で投稿した場合は、投稿内容をマウスコピーしてからエントリーのページに戻り)、ブラウザをリロードして投稿コメントが反映されていることを確認してください。

コメント欄に(X)HTMLタグやMTタグを記述される場合、「<」は「&lt;」、「>」は「&gt;」と入力してください。例えば「<$MTBlogURL$>」は「&lt;$MTBlogURL$&gt;」となります(全て半角文字)

Now loading...
Entries of this Category
QRcode

現在停止中です
携帯電話からこのQRcodeを撮影することで携帯用URLを取得することができます

URI for cellular phones
ギターに入った猫
Styles
Font Size
Default
For defective color vision
Gray Scale
RGB Color
Search this site

このブログをメールで購読する by:FeedBurner

スポンサー広告
脳検メーカー
>>脳検メーカー
loading ...
BlogPeople
Now loading...
Syndicate this site
FeedBurner(RSS1.0/RSS2.0/Atom)
Counter
これまでのアクセス
クリエイティブ・コモンズ・ライセンス
Powered by
Movable Type 4.1
 
List Me!