XAMPP for Windows で FastCGI を利用する

XAMPP for Windows で FastCGI を利用する

Posted at October 8,2008 12:55 AM
Tag:[Apache, FastCGI, MovableType, Performance, Windows]

XAMPP for WindowsFastCGI を利用する方法を紹介します。利用する CGI は特定していませんが、説明の最後で Movable Type 4 で利用する手順を説明します。

FastCGI は CGI の実行プロセスをメモリに常駐させることで、プロセス起動にかかる時間を削減
し、CGI の動作速度を向上させるものです。CGI の実行速度は体感できるほど劇的に向上します。ローカル環境で Movable Type 4 を動作させる場合などにおすすめです。

かなり以前に紹介した「Windows XP 自宅サーバで FastCGI を利用する for Movable Type 3.34」から若干設定内容が変わっていますので、改めて書き直してみました。

今回は次の環境で動作を確認しています。

Windows XP / Windows Vista
XAMPP 1.6.6a(Apache 2.2.8)+ Perl 5.8.8(XAMPP Perl または ActivePerl)

最新の XAMPP 1.6.8 では動作を確認できていません(1.6.7では動作しませんでした)。

1.FastCGI モジュールのダウンロード

Apache モジュールの FastCGI をダウンロードします。

FastCGI のサイトへ行き、グローバルナビゲーションの FastCGI Servers をクリック。

FastCGIのサイト

Apache の Current: の横にある download のリンクをクリック。

FastCGI Servers のページ

mod_fastcgi-2.4.6-AP22.dll をクリック(2008年9月現在のバージョン)

FastCGIの最新版一覧

ダウンロードが開始するので、C:¥xampp¥apache¥modules に保存。

過去のバージョンを取得したい場合は、一覧の一番上に表示されている old をクリックします。

2.httpd.conf の修正

Apache の設定ファイル C:¥xampp¥apache¥conf¥httpd.conf を任意のエディタで開いて編集します。

まず、

#LoadModule rewrite_module modules/mod_rewrite.so

を探し、行頭の # を削除して

LoadModule rewrite_module modules/mod_rewrite.so

に変更します。
次に、LoadModule が並んでいる一番最後に下記の1行を追加します。

LoadModule fastcgi_module modules/mod_fastcgi-2.4.6-AP22.dll

mod_fastcgi-2.4.6-AP22.dll の部分は、ダウンロードした FastCGI モジュールのファイル名と一致するようにしてください。

その下に次の内容を追加します。

<IfModule mod_fastcgi.c>
    FastCGIConfig -autoUpdate -idle-timeout 120 -killInterval 3600 -maxClassProcesses 3 -maxProcesses 15 -startDelay 30
    AddHandler fastcgi-script .fcgi
</IfModule>

追加後の httpd.conf(関連部分を抜粋) は次のようになります。

httpd.conf

FastCgiConfig の設定については、下記のサイトの詳しい解説を参考にさせて頂きました。ありがとうございました。

エムロジック放課後プロジェクト - Win32版Apache+FastCGIでMT環境を構築する

3.Apache 再起動

XAMPP のコントロールパネルを開き、Apache を再起動します。具体的には「停止中」をクリック。

httpd.conf

開始をクリック。

httpd.conf

これで左側に緑色の「起動」が表示されればOKです。

httpd.conf

「開始」をクリックして10秒以上待っても起動しない場合は、もう一度クリックしてみてください。

何回クリックしても Apache が起動しない場合は、httpd.conf で設定した FastCGI のファイル名が存在しない/httpd.conf に追加した設定内容が誤っている/XAMPP for Windows の不具合、のいずれかの可能性があります。

4.Perl モジュールのインストール

FastCGI を Perl で利用するために、FCGI モジュールをインストールします。

4.1 PPM GUI でインストール

ActivePerl をインストールしている場合は、「すべてのプログラム」→「ActivePerl 5.8.8~」→「Perl Package Manager」を選択して、PPM GUI を起動します。XAMPP Perl の場合は ¥xampp¥perl¥bin¥ppm.bat をダブルクリックすれば(多分)起動します。

PPM GUI

一番左のアイコンがクリックされている状態で、上部の検索フィールドに FCGI を入力します。これで FCGI が表示されます。

PPM GUI で検索

FCGI をクリックして、検索フィールド右のアイコンをクリック。これでインストール対象になります。

FCGI を選択

もうひとつ右のアイコンをクリックするとインストール実行の確認ダイアログを表示します。

インストール実行

OK をクリックすればインストールが開始します。しばらく待ちましょう。

確認ダイアログ

これで FCGI のインストールが完了しました。PPM GUI を終了してください。

インストールが完了

4.2 コマンドプロンプトからインストール

コマンドプロンプトを起動して、ppm install FCGI を入力すれば、FCGI をインストールできます。

コマンドプロンプトからインストール

xampp Perl を利用している場合は、ppm コマンドにパスが通っていない可能性があるので、cd コマンドで C:¥xampp¥perl¥bin に移動してから ppm コマンドを実行しましょう。

5.Movable Type で FastCGI を利用する

5.1 CGI ファイル名の変更

Movable Type の CGI が FastCGI で動作するよう、ファイル名を変更(またはコピーしてリネーム)します。

次の CGI ファイルの拡張子を .cgi から .fcgi に変更します。

mt.cgi
mt-comments.cgi
mt-tb.cgi
mt-search.cgi

変更後のファイル名は次のようになります。

mt.fcgi
mt-comments.fcgi
mt-tb.fcgi
mt-search.fcgi

5.2 環境設定ファイルの変更

mt-config.cgi を任意のエディタで開き、次の項目を追加します。

AdminScript mt.fcgi
CommentScript mt-comments.fcgi
TrackbackScript mt-tb.fcgi
SearchScript mt-search.fcgi

なお、MT3.x で設定していた下記の項目は、mt-view.cgi はなくなったため、設定の必要はありません。

ViewScript mt-view.fcgi

これで、ブラウザから mt.fcgi にアクセスすれば、Movable Type を FastCGI で動作させることができます。初回アクセスは多少時間がかかりますが、常駐された2回目以降のアクセスは FastCGI の効果を体感できると思います。

5.3 注意事項

後で追加したプラグインは動作しない場合があります。

2008.10.08
pp.bat → ppm.bat に修正しました。

関連記事
トラックバックURL


トラックバック

FastCGIでMT4の高速化 from ヲレサイト
MT4はFastCGIに対応してたのよね・・・ということはすっかり忘れていました。当時はレンタルサーバで運営してたから関係なかったですもんね(* ̄m ̄)プ... [続きを読む]

Tracked on October 14, 2008 8:35 PM
コメント

XAMPP 1.66a
ActivePerl5.88
なのですが、ppm install FCGIを実行すると下記のような文が出てきます。

C:\Documents and Settings\acount>ppm install FCGI
Downloading ActiveState Package Repository packlist...not modified
No missing packages to install

これはインストールされていないってことでしょうか・・・?
xammp perlで行けるかと思い、¥xampp¥perl¥bin¥を見てもperlのみで、pp.batが見当たりません。

[1] Posted by サカエダ : October 8, 2008 2:56 AM

>サカエダさん
こんにちは。
「No missing packages to install」は、すでにインストールされている可能性があります。
pp.bat は typo でした。すいません。
ppm.bat が正解です。

それではよろしくお願い致します。

[2] Posted by yujiro logo : October 8, 2008 10:39 AM

ありがとうございます。
インストールされている可能性がある・・・なるほど。

あと、拡張子をfcgiに変更し、mt-config.cgiを書き換えてmt.fcgi等にアクセスすると500エラーがでます。

[3] Posted by サカエダ : October 8, 2008 2:29 PM

>サカエダさん
まずは ppm.bat を起動して、「FCGI」で検索し、FCGIモジュールがインストールされていることをご確認頂けましたでしょうか。
500エラーが解消されない場合、httpd.conf に追加した設定、XAMPPのバージョンの入れ替え、ActivePerl への入れ替えるなど、色々試してみてください。
1.6.6a+ActivePerl 5.8.8-822 であれば複数のPCで動作することを確認していますが、すべての設定が完全にできていても、500エラーとならない保証をしている記事ではありません。予めご了承ください。
それではよろしくお願い致します。

[4] Posted by yujiro logo : October 8, 2008 2:57 PM
コメントする
greeting

*必須

*必須(非表示)


ご質問のコメントの回答については、内容あるいは多忙の場合、1週間以上かかる場合があります。また、すべてのご質問にはお答えできない可能性があります。予めご了承ください。

太字イタリックアンダーラインハイパーリンク引用
[サインインしない場合はここにCAPTCHAを表示します]

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

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