Веб-сервер Internet Information Services (IIS) встроили в операционную систему Windows. На ОС Windows Server роль IIS добавляют через диспетчер серверов Server Manager. Функцию роли CGI-интерфейса требуется включить. На настольных системах Windows Desktop роль IIS добавляется через пункт Панели управления «Установка и удаление программ». Документация Microsoft содержит » подробные инструкции о включении IIS. Для разработки также устанавливают версию веб-сервера » IIS Express.
Замечание: При запуске веб-сервера IIS с обработчиком FastCGI устанавливают непотокобезопасную версию PHP (англ. Non-Thread Safe, NTS).
В диспетчере IIS устанавливают модуль FastCGI и сопоставляют обработку
файлов с расширением .php
с обработчиком скриптов по пути php-cgi.exe,
но не php.exe.
Скрипт конфигурации веб-сервера IIS создают инструментом командной строки APPCMD.
Пример #1 Скрипт командной строки для настройки IIS и PHP
@echo off REM download .ZIP file of PHP build from http://windows.php.net/downloads/ REM path to directory into which PHP .ZIP file was decompressed (no trailing \) set phppath=c:\php REM Clear current PHP handlers %windir%\system32\inetsrv\appcmd clear config /section:system.webServer/fastCGI REM The following command will generate an error message if PHP is not installed. This can be ignored. %windir%\system32\inetsrv\appcmd set config /section:system.webServer/handlers /-[name='PHP_via_FastCGI'] REM Set up the PHP handler %windir%\system32\inetsrv\appcmd set config /section:system.webServer/fastCGI /+[fullPath='%phppath%\php-cgi.exe'] %windir%\system32\inetsrv\appcmd set config /section:system.webServer/handlers /+[name='PHP_via_FastCGI',path='*.php',verb='*',modules='FastCgiModule',scriptProcessor='%phppath%\php-cgi.exe',resourceType='Unspecified'] %windir%\system32\inetsrv\appcmd set config /section:system.webServer/handlers /accessPolicy:Read,Script REM Configure FastCGI Variables %windir%\system32\inetsrv\appcmd set config -section:system.webServer/fastCgi /[fullPath='%phppath%\php-cgi.exe'].instanceMaxRequests:10000 %windir%\system32\inetsrv\appcmd.exe set config -section:system.webServer/fastCgi /+"[fullPath='%phppath%\php-cgi.exe'].environmentVariables.[name='PHP_FCGI_MAX_REQUESTS',value='10000']" %windir%\system32\inetsrv\appcmd.exe set config -section:system.webServer/fastCgi /+"[fullPath='%phppath%\php-cgi.exe'].environmentVariables.[name='PHPRC',value='%phppath%\php.ini']"