在windows上以php-fpm的形式部署nginx服务器

In case anyone still.

In case anyone still needs this info. This is how I setup php-fpm for use with nginx on windows:

Download the .zip file from http://windows.php.net/download/. The .zip file should be VC9 which has the FastCGI file (php-cgi.exe). Don’t download VC6, and don’t download the .msi file because it requires that you have IIS setup already in order to install php-fpm. The zip file contains the php-cgi.exe which is what you need for php-fpm. I downloaded a slightly older version, php-5.3.10-Win32-VC9-x86.zip, from here http://windows.php.net/downloads/releases/archives/ because I wanted to match the version running on my production server.

Unzip the file, e.g. unzip into C:\php-5.3.10-Win32-VC9-x86

Edit the php.ini file as needed. What I did:

# nginx security setting
cgi.fix_pathinfo=0

extension_dir = “C:\php-5.3.10-Win32-VC9-x86\ext”
enable the following modules by uncommenting them:

extension=php_curl.dll
extension=php_mbstring.dll
extension=php_mysqli.dll
Create a .bat file somewhere, e.g. start-php-fcgi.bat in nginx directory or in the php directory:

@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
Double click the .bat file to start php-fpm. A window will popup and stay open while its running. Its kind of annoying, but just haven’t looked into setting it up as service yet.

In the php section of nginx.conf I reference the 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;
}