NGINX can interface with PHP on Windows via a FastCGI daemon, which ships with PHP: php-cgi.exe.
You need to run php-cgi.exe -b 127.0.0.1:<port>
and use fastcgi_pass 127.0.0.1:<port>;
in the NGINX configuration file.
After being launched, php-cgi.exe
will keep listening for connections in a command prompt window.
To hide that window, use the tiny utility RunHiddenConsole
- Install NGINX for Win32.
- Install the Windows binaries of PHP, making sure that
php-cgi.exe
is installed in the same directory asphp.exe
. - Create somewhere (e.g. in
c:\nginx\
) a batch filestart-php-fcgi.bat
similar to this one:
start-php-fcgi.bat
@ECHO OFF ECHO Starting PHP FastCGI... set PATH=C:\PHP;%PATH% c:\bin\RunHiddenConsole.exe C:\PHP\php-cgi.exe -b 127.0.0.1:9123nginx.conf
root c:/www; 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; }
- Schedule a basic (on Windows Vista) task to run the batch file above at system start up under the SYSTEM account.
- If using Windows NGINX from https://kevinworthington.com/nginx-for-windows/, schedule a basic (on Windows Vista) task to run
C:\nginx\conf\start-nginx.bat
file at system start up under the SYSTEM account in starting directoryC:\nginx
. - A home made Cygwin build of NGINX can be scheduled using a batch file similar to this:
cd /d C:\cygwin\bin && bash -c /usr/local/nginx/sbin/nginx