PHP-FPMのホームページ http://php-fpm.org/ は、PHP since PHP 5.3 .3。php.netから最新のPHPバイナリをダウンロードすると、php-fpmはありません。どうすれば入手できますか?ウィンドウズ?
Windowsでphp-fpmをセットアップする方法:
http://windows.php.net/download/ から.Zipファイルをダウンロードします。 .Zipファイルは、FastCGIファイル(php-cgi.exe)を持つVC9でなければなりません。 VC6をダウンロードしないでください。また、php-fpmをインストールするためにIISセットアップが既に必要です。Zipファイルにはphp-cgiが含まれているため、.msiファイルをダウンロードしないでください。 php-fpmに必要なexeです。ここから少し古いバージョンphp-5.3.10-Win32-VC9-x86.Zipをダウンロードしました http://windows.php.net/downloads/ release/archives / 本番サーバーで実行されているバージョンと一致させたかったためです。
ファイルを解凍します、例えばC:\ php-5.3.10-Win32-VC9-x86に解凍します
必要に応じてphp.iniファイルを編集します。私がしたこと:
# nginx security setting
cgi.fix_pathinfo=0
extension_dir = "C:\php-5.3.10-Win32-VC9-x86\ext"
以下のモジュールのコメントを外して有効にします。
extension=php_curl.dll
extension=php_mbstring.dll
extension=php_mysqli.dll
.batファイルをどこかに作成します。 webserverディレクトリまたはPHPディレクトリ内のstart-php-fcgi.bat:
@ECHO OFF
ECHO Starting PHP FastCGI...
set PATH=C:\php-5.3.10-Win32-VC9-x86;%PATH%
C:\php-5.3.10-Win32-VC9-x86\php-cgi.exe -b 127.0.0.1:9123 -c C:\php-5.3.10-Win32-VC9-x86\php.ini
.batファイルをダブルクリックして、php-fpmを起動します。ウィンドウがポップアップし、実行中は開いたままになります。ちょっと面倒ですが、まだサービスとして設定することを検討していません。
Webサーバーを構成します。 nginxで使用したい場合は、127.0.0.1:9123の構成サンプルを以下に示します。
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9123;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
デレクソンの答えは素晴らしいスタートです。ただし、Apache 2.4以降では、PHP-FPMを個別のサービスとして実行する必要はありません。 mod_fcgid を使用して、Apache内のすべてを処理できます。
以下に設定例を示します。
LoadModule fcgid_module modules/mod_fcgid.so
FcgidInitialEnv PHPRC "c:/php"
FcgidInitialEnv PATH "c:/php;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 64
FcgidConnectTimeout 16
FcgidMaxRequestsPerProcess 500
<Files ~ "\.php$">
AddHandler fcgid-script .php
FcgidWrapper c:/php/php-cgi.exe .php
</Files>
注、これは Apache Loungeの投稿 に基づいています。便利なことに、それらのバージョンにはc:/php/php-cgi.exeの前後に引用符があり、それを行うと、少なくともWindows Server 2012ではphp-cgi.exeが開始されず、HTTP 500が取得されます。私はそれを理解するために痛みを伴う数日。
ここに投稿されたのはPHP-FPMではなく、Fast-CGIを使用してPHPを実行しているためです。
はい、PHP-FPMはPHP-FastCGI Process Managerの略で、FastCGIを実装しますが、FPMにはWebサーバーで管理されないプロセス管理機能が含まれているため、FPMがそれ以上であることを忘れています。
* nixシステムでは、PHP-FPMにはPHP子プロセスを管理する個別のプロセスがあり、これらのプロセスの管理方法を指定する詳細な構成があります。これらの機能の詳細は
WindowsでCGIプロセスを起動することは同じことではありません。ワーカープロセスをスポーしたり、動的にスケーリングしたり、マルチスレッドを許可したりしません。
Windows用のPHP-FPMはまだありません。 http://php.net/manual/en/install.fpm.php#121725
ただし、提案されているように、必要に応じてCGIプロセスを起動できます。
PHP v5.3.3、FPM Server-API [SAPI]サポートがコアPHPに統合されました。つまり、PHPのソースコードを取得し、FPM-SAPIを使用してコンパイルおよびビルドできます。 --enable-fpm
構成パラメータ] Apache SAPI [--enable-apx2
]。 PHP-Wiki に示されているように、ビルドすることができますPHP * nixシステムで行うのとほぼ同じ方法-つまり、構成に関して。私はあなたが学ぶことをお勧めします最初に* nixシステムでPHPを構築し、さらに自分でやろうとする[通常configure
、make
およびmake install
pattern]、そしてそれから得られた経験を活用してWindows環境での構築を試みます。
に加えて --enable-fpm
構成パラメーター。追加のパラメーターが2つあります:--with-fpm-user=USERNAME_HERE
および--with-fpm-group=USERGROUPNAME_HERE
。これら2つは* nix環境で動作しますが、Windowsでは使用できない場合があります。
全体として、Visual Studio IDEを使用してWindows上で独自のPHP-FPMサーバーアプリを構築できると確信しています。この記事の執筆時点では、公式のPHP-FPMビルドはありません。
編集1:OK、このSAPIは* nix環境のlibevent
コンポーネントを使用するため、WindowsでPHP-FPMを構築する可能性について間違っているかもしれません。結局 Cygwin-bundled installation に固執する必要があると思います。
PHP-FPMは、現時点ではLinuxでのみ利用可能です。 cygwinの下でWindowsでphp-fpmを実行する方法に関するチュートリアルを提供するサイトがいくつかあります。これらのガイドを試すことができます。