2010-12-27 25 views
26

PHP-FPMのホームページhttp://php-fpm.org/は、PHP 5.3.3以降、PHPの一部であると記載しています。さて、私はphp.netから最新のPHPバイナリをダウンロードすると、そこにphp-fpmはありません。どうすれば入手できますか? Windowsでも利用できますか?Windowsの場合はphp-fpm?

答えて

0

PHP-FPMは現在Linuxでのみ利用可能です。 cygwinの下で、Windows上でphp-fpmを実行する方法についてのチュートリアルを提供するいくつかのサイトがあります。あなたはそれらのガイドを試すことができます。

+6

PHP-FPMは、Windows上で簡単にインストールできます。でも2011年に、あなたの答えは目に見えて間違っていました:それはCygwinの下に働いていた場合(1)、それは、Windowsの下で働いていたとLinuxの外(2)それは – Dereckson

3

FPM Server-API [SAPI]のサポートがPHPのコアPHPに統合されました。つまり、Apache SAPI [--enable-apx2]の代わりに、PHPのソースコードを取得し、FPM-SAPI [--enable-fpm構成パラメータ]サポートを使用してコンパイルしてビルドすることができます。 PHP-Wikiに示すように、* nixシステムとほぼ同じ方法でPHPを構築することができます。私はあなたが最初に* nixシステムでPHPを構築することを学び、あなた自身でそれをやろうとすることを提案します[通常configuremakemake installパターン]、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ビルドはありません。

EDIT 1:このSAPIは* nix環境のlibeventコンポーネントを使用しているため、WindowsでPHP-FPMを構築する可能性は間違っていると思います。あなたはあとでCygwin-bundled installationと固執しなければならないと思います。ここで

+0

どうやらlibeventが持っているなどのSolaris、FreeBSDの、NetBSDのはMac OS X、OpenBSDの、上で働いていました[このページ](http://www.php.net/manual/en/install.fpm.install.php)のコメントに従って5.3.4から削除されました。 –

25

どのようにWindows上でのセットアップのphp-FPMをする:

  1. http://windows.php.net/download/から.zipファイルをダウンロードしてください。 .zipファイルは、FastCGIファイル(php-cgi.exe)を持つVC9である必要があります。 VC6をダウンロードしないでください。また、.msiファイルをダウンロードしないでください。これは、php-fpmをインストールするためにIISセットアップが既に必要であるためです。 zipファイルには、php-fpmに必要なphp-cgi.exeが含まれています。私は若干古いバージョンのphp-5.3.10-Win32-VC9-x86.zipをここからhttp://windows.php.net/downloads/releases/archives/からダウンロードしました。これは、私のプロダクションサーバで実行されているバージョンと一致させたいからです。

  2. ファイルを解凍します。 C:\ php-5.3.10-Win32-VC9-x86に解凍する

  3. 必要に応じて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 
    
  4. 例えば、どこかの.batファイルを作成します。開始-PHP-fcgi.batをウェブサーバディレクトリまたはPHPのディレクトリに:

    @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 
    
  5. ダブルのphp-FPMを起動する.batファイルをクリックしてください。ウィンドウがポップアップし、実行中に開いたままになります。その種類の迷惑な、しかしまだサービスとしてそれを設定するように見ていない。

  6. は、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; 
    } 
    
+0

Apacheとmod_proxy_fcgi –

+37

でそれを使用するが、それは、PHP-FPMではありません、それは申し訳ありませんミスター大は、私は、Apacheとそれを使用して試していないのFastCGI – Michelle

+12

のphp-FPM = PHP-FastCGIプロセスマネージャ – Alan

7

Derecksonの答えは素晴らしいスタートです。しかし、Apache 2.4以降では、PHP-FPMを別のサービスとして実行する必要はありません。mod_fcgidを使用すると、Apache内のすべてを処理できます。これはpost in Apache Loungeに基づいて、

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> 

注:ここ

が構成例です。それが役に立ちましたように、彼らのバージョンはc:/php/php-cgi.exeの引用符で囲まれています。もしそうなら、少なくともWindows Server 2012ではphp-cgi.exeは起動せず、HTTP 500を取得します。Took私はそれを理解するのに苦しい数日間。

+0

親愛なるエリカ、私のために問題を隔離してくれてありがとう!私は数週間(断続的ではあるが)これを苦労していた。 –

+0

非常に助けてうれしい。 :) –

+3

それは質問への答えではありません。問題は、fpmがWindows上のどこにあるかということでした。 fpmを使用するための*代替*アプローチを提供しました。 – Kissaki

0

旧この記事は、どのようなここに掲載されていることはPHP-FPMではありませんので、私はここで比較検討する必要があるとして、それは、Fast-CGIを使用してPHPを実行しています。

はいPHP-FPMはPHP-FastCGI Process Managerを表しており、FastCGIを実装していますが、FPMにはWebサーバによって管理されていないプロセス管理機能が含まれているため、 * nixのシステムで

はPHP-FPMは、PHPの子プロセスを管理し、これらのプロセスの管理方法を指定するための詳細な構成を持つ別のプロセスがあります。これらの機能の詳細については、Windows上でCGIプロセスを起動

hereを読むために同じものではありません。ワーカープロセスを起動したり、動的にスケーリングしたり、マルチスレッドを許可したりすることはありません。

Windows用のPHP-FPMはまだありません。 http://php.net/manual/en/install.fpm.php#121725

しかし、お勧めのとおり、希望する場合はCGIプロセスを起動することができます。

関連する問題