Enable FastCGI on Windows
PHP-FPM is not built with the windows binaries. However, it is possible to use PHP-CGI. The executable php-cgi.exe that is bundled in our stacks is a FastCGI interface. Note that it is not FPM (Fastcgi Process Manager) and does not have multi-threading or concurrent request support, nor support for any of the FPM configuration options. Find below the steps to enable it:
-
Assuming your application is running under installdir\apps\application directory, edit installdir\php\php.ini file and set doc_root parameter as below:
doc_root = "installdir/apps/application/htdocs/"
-
Download winserv from this link.
-
Extract winserv.exe and place it on installdir\scripts directory.
-
Execute this command to create the FastCGI service:
installdir\scripts\winserv.exe install phpCGI -displayname phpCGI -start auto "installdir\php\php-cgi.exe" -b 127.0.0.1:9123 -c="installdir\php\php.ini"
-
Add the line below in installdir\properties.ini file, inside PHP section:
php_unique_service_name=phpCGI
-
Execute installdir\manager-windows.exe and start PHP server on Manage Servers tab.
-
Edit installdir/apache2\conf\httpd.conf file and enable mod_proxy, mod_proxy_fcgi and authnz_fcgi modules. For that, uncomment these lines:
#LoadModule proxy_module modules/mod_proxy.so #LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so #LoadModule authnz_fcgi_module modules/mod_authnz_fcgi.so
-
Add the code below in installdir\apps\application\conf\httpd-app.conf file, inside Directory tag:
<FilesMatch "\.php$"> <If "-f %{REQUEST_FILENAME}"> SetHandler "proxy:fcgi://127.0.0.1:9123/" </If> </FilesMatch>
-
Restart Apache server.