(mod_fcgid on 2.2.x)windowsでCGIをFastCGIで実行するように設定する
2014/11/22
windows上でPHPをfcgid(FastCGI)実行を行う方法を、
apache.orgで提供されているモジュール(mod_fcgid)を元にご紹介します。
ダウンロードから設定までご紹介していますので、そのままご利用いただけると思います。
Apacheバージョンは2.2.xを利用します。
はじめに
これまで「windows上でPHPをfcgid(fast cgi)実行する」というタスクに、
さんざん迷路にはまっておりました。
おそらく他にも同じようにはまっている方もおられるのではないかと思い、
ダウンロード先から順を追ってご紹介します。
どうも同じモジュールでもApacheとの組み合わせでは、
モジュールのロードさえできなかったりと、相性の問題が多い印象でした。
その為、それぞれのバージョン同士の組み合わせで動かすのがいいと思います。
環境
- windows: windows 7 Ultimate(64bit)
- apache: 2.2.25
httpd-2.2.25-win32-x86-no_ssl.msi
httpd-2.2.25-win32-x86-openssl-0.9.8y.msi - fast_cgi: mod_fcgid-2.3.6
mod_fcgid-2.3.6-win32-x86.zip - PHP: php-5.5.5-Win32-VC11-x86(PHP)
(補足)
私の環境のApache 2.0.65においては、
LoadModule fcgid_module modules/mod_fcgid.so 時点でエラーとなり、
モジュールの読み込みが行えませんでした。
2013/11/10追記
その後、偶然mod_fcgid-2.3.5および、mod_fcgid-2.3.4のダウンロード先に出会いました。
まだ試していませんが、そちらを利用してみると、Apache 2.0.xxでもいけるかもしれません。
過去バージョンのmod_fcgidをダウンロードできるアーカイブ先(メモ)
ダウンロード
まず、mod_fcgid-2.3.6のダウンロードですが、
通常Apache.orgのサイトへアクセスして最新をダウンロードされると思います。
ですが2013/11/01時点でバイナリダウンロードのリンクが見当たりません。
http://httpd.apache.org/
プロジェクトページへ行っても特にそんなリンクは見当たりません。
http://httpd.apache.org/mod_fcgid/
サイト上にある、mod_fcgid-2.3.9-crlf.zip をダウンロードすると、
プロジェクトとしてのソースファイルが展開されます。
自分でビルドすればよいのですが、環境が手元にありませんのでなんとか。
バイナリのダウンロードはディレクトリから
というわけで、バイナリファイルのディレクトリを探しましたら、
以下のミラーサイトからダウンロードが可能です。
http://www.apache.org/dist/httpd/binaries/win32/
http://ftp.meisei-u.ac.jp/mirror/apache/dist//httpd/binaries/win32/(mirror)
ダウンロードしたzipを解凍すると、以下のファイルが生成されます。
この[mod_fcgid.so]ファイルを利用します。
インストール
Apacheへのインストールは、
Apacheをインストールしたディレクトリの[/modules]にコピーして終了です。
httpd.conf設定
fcgid(FastCGI)の設定をhttpd.confに対して行います。
公式のリファレンスページは以下のページです。
mod_fcgid – Apache HTTP Server
リファレンスを参考にと思ったのですが、Unix系のExamplesしか記述されていません。
結論から申しますとhttpd.confに以下の記述を行います。
(補足)
PHPのインストールディレクトリは[C:\php555]でインストールしています。
モジュール名(モジュール識別子)は[fcgid_module]を利用します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
LoadModule fcgid_module modules/mod_fcgid.so <IfModule fcgid_module> FcgidInitialEnv PHPRC "c:/php555/" FcgidInitialEnv PATH "C:/php555;C:/WINDOWS/system32;C:/WINDOWS;C:/WINDOWS/System32/Wbem;" FcgidInitialEnv SystemRoot "C:/Windows" FcgidInitialEnv SystemDrive "C:" FcgidInitialEnv TEMP "C:/WINDOWS/TEMP" FcgidInitialEnv TMP "C:/WINDOWS/TEMP" FcgidInitialEnv windir "C:/WINDOWS" FcgidIOTimeout 40 FcgidConnectTimeout 10 FcgidMaxProcesses 1000 FcgidOutputBufferSize 64 FcgidProcessLifeTime 120 FcgidMaxRequestsPerProcess 10000 FcgidMinProcessesPerClass 0 FcgidFixPathinfo 1 # Global Config Example <Files ~ "\.php$"> Options Indexes FollowSymLinks ExecCGI AddHandler fcgid-script .php FcgidWrapper "c:/php555/php-cgi.exe" .php </Files> </IfModule> |
この記述は、Apache Lounge版で提供されているmod_fcgid.soに、
付いてきたReadMe.txtに記載されていた設定です。
(参考)(Apache Lounge版)windowsでCGIをfast-cgiで実行するように設定する
以上で、設定は完了です。
phpinfoファイルの準備
ドキュメントルートに対して、phpinfo.phpファイルを作成し、
テキストエディタで以下のソースを記述し保存します。
1 2 3 |
<?php phpinfo(); ?> |
PHPの実行確認
Apacheを再起動して、ブラウザからphpinfo.phpを確認します。
phpinfoによる情報が表示されれば完了です。
fcgid(FastCGI)の特徴としてのプロセスが終了せず待機する模様は、
プロセスモニターから確認することができます。
さいごに
結局、設定は Apache Loungeから拝借してしまいましたが、
これで動作させることができました。
あとはこの設定を編集して動作の確認や設定の振る舞いなどを見ることができそうです。
Windows は米国 Microsoft Corporation の米国およびその他の国における登録商標です。
登録番号は以下の通りです。
第3333588号、第3351402号、第4197799号、
第4348387号、第4395963号、第4648301号
Windows は米国 Microsoft Corporation の米国およびその他の国における国際登録商標です。
国際登録番号:1135413
Apache,Apache Hadoop,Apache Subversion,Hadoop,HDFS,HBase,Hive,Mahout,Pigは、
Apache Software Foundationの米国およびその他の国における登録商標または商標です。
ApacheソフトウェアはApache Software License (原文)および
Apache License, 2.0 (原文)に基づきOpen Source Initiativeに承認されライセンスされています。
関連記事
-
レンタルサーバ環境へのphpMyAdmin設置
Google or AdMax Promotion(it) 禁断の機能がau公式 …
-
(バッチで一発)windows7をリモートでシャットダウンする方法
Google or AdMax Promotion(it) 禁断の機能がau公式 …
-
ローカル環境へのApache設置
Google or AdMax Promotion(it) 禁断の機能がau公式 …
-
SWFをAVI・MPGに変換できるFree SWF Converterが残念な結果に。
Google or AdMax Promotion(it) 禁断の機能がau公式 …
-
1つのPC(サーバー)で複数のApacheをインストールして利用する方法
Google or AdMax Promotion(it) 禁断の機能がau公式 …
-
(apache 2.0.65)ローカル環境(windows)へのApache設置
Google or AdMax Promotion(it) 禁断の機能がau公式 …
-
【一発理解】mod_rewriteのURL転送が動かず迷ったらこれを確認(パスのスラッシュ)
Google or AdMax Promotion(it) 禁断の機能がau公式 …
-
PHPの過去バージョンがダウンロードできるアーカイブ先(メモ)
Google or AdMax Promotion(it) 禁断の機能がau公式 …
-
PHP.iniに設定する設定値はhttpd.confや.htaccessに対しても設定が可能
Google or AdMax Promotion(it) 禁断の機能がau公式 …
-
プログラムをwindowsのサービスとして追加する(Apacheの例)
Google or AdMax Promotion(it) 禁断の機能がau公式 …