XAMPP for Windows で FastCGI を利用する
XAMPP for Windows で FastCGI を利用する方法を紹介します。利用する 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 をクリック。
Apache の Current: の横にある download のリンクをクリック。
mod_fastcgi-2.4.6-AP22.dll をクリック(2008年9月現在のバージョン)
ダウンロードが開始するので、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(関連部分を抜粋) は次のようになります。
FastCgiConfig の設定については、下記のサイトの詳しい解説を参考にさせて頂きました。ありがとうございました。
3.Apache 再起動
XAMPP のコントロールパネルを開き、Apache を再起動します。具体的には「停止中」をクリック。
開始をクリック。
これで左側に緑色の「起動」が表示されればOKです。
「開始」をクリックして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 をダブルクリックすれば(多分)起動します。
一番左のアイコンがクリックされている状態で、上部の検索フィールドに FCGI を入力します。これで 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 に修正しました。
- Windows XP 自宅サーバで FastCGI を利用する for Movable Type 3.34
- メモリ増設
- サーバ不具合のお詫び(2005/10/23)
- サーバ不具合のお詫び(2005/09/06)
- サーバの不具合
- サーバ停止のお詫び
- CPU2次キャッシュサイズ変更
- サーバ不具合
- サーバ停止します
- サーバ更改作業まとめ
- サーバ更改
- 自宅サーバ再構築(その2)
- 自宅サーバ再構築(その1)
- 自宅サーバの電気代
- blogの再構築時間
≫ FastCGIでMT4の高速化 from ヲレサイト
MT4はFastCGIに対応してたのよね・・・ということはすっかり忘れていました。当時はレンタルサーバで運営してたから関係なかったですもんね(* ̄m ̄)プ... [続きを読む]
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が見当たりません。
>サカエダさん
こんにちは。
「No missing packages to install」は、すでにインストールされている可能性があります。
pp.bat は typo でした。すいません。
ppm.bat が正解です。
それではよろしくお願い致します。
ありがとうございます。
インストールされている可能性がある・・・なるほど。
あと、拡張子をfcgiに変更し、mt-config.cgiを書き換えてmt.fcgi等にアクセスすると500エラーがでます。
>サカエダさん
まずは ppm.bat を起動して、「FCGI」で検索し、FCGIモジュールがインストールされていることをご確認頂けましたでしょうか。
500エラーが解消されない場合、httpd.conf に追加した設定、XAMPPのバージョンの入れ替え、ActivePerl への入れ替えるなど、色々試してみてください。
1.6.6a+ActivePerl 5.8.8-822 であれば複数のPCで動作することを確認していますが、すべての設定が完全にできていても、500エラーとならない保証をしている記事ではありません。予めご了承ください。
それではよろしくお願い致します。