Deploying IIS 7.5 + FASTCGI + PHP on Server Core
FastCGI is a language-independent, scalable, open extension to CGI that provides high performance. The FastCGI extension is installable in Server Core and enables application frameworks such as PHP to achieve improved performance and stability on Internet Information Services. Watch for recorded demonstrations of the following instructions at MSDN Channel9.
Prerequisites
See how-to configure IIS 7.5 on Server Core at https://code.msdn.microsoft.com/r2coreaspnet
IIS 7.5 (Enable the following components)
- IIS-WebServerRole
- IIS-WebServer
- IIS-CommonHttpFeatures
- IIS-StaticContent
- IIS-DefaultDocument
- IIS-DirectoryBrowsing
- IIS-HttpErrors
- IIS-ApplicationDevelopment
- IIS-HealthAndDiagnostics
- IIS-HttpLogging
- IIS-LoggingLibraries
- IIS-RequestMonitor
- IIS-Security
- IIS-RequestFiltering
- IIS-HttpCompressionStatic
- IIS-WebServerManagementTools
- WAS-WindowsActivationService
- WAS-ProcessModel
The optional feature “ServerCore-WOW64” is enabled by default on Server Core.
Install FASTCGI and PHP on Server Core
1. Install FastCGI feature for IIS. Run the following command:
dism /online /enable-feature /featurename:IIS-CGI |
2. Download the php binaries for windows from https://www.php.net/downloads.php.
3. Create a C:\php folder on Server Core.
4. Copy the php binaries to C:\php folder on Server Core.
Configure PHP on Server Core
1. We need to configure IIS7.5 to use PHP as a CGI execution environment. To do this, run the following command:
appcmd set config /section:system.webServer/fastCGI /+[fullPath='C:\php\php-cgi.exe'] |
2. The next thing we need to do is setup the handler and module mapping for IIS7.5 so that it understands the available verbs and how to call PHP for request processing. To do this, run the following command:
appcmd set config /section:system.webServer/handlers /+[name='PHP-FastCGI',path='*.php',verb='*',modules='FastCgiModule',scriptProcessor='C:\php\php-cgi.exe',resourceType='Either'] |
Test PHP on Server Core
1. Create an info.php file at C:\inetpub\wwwroot on Server Core with the following code:
<?php phpinfo(); ?> |
2. Navigate to https://{serverCore}/info.php.