Облачное хранилище

Установка веб-сервера IIS с поддержкой PHP на Windows 8/Server 2012

Сегодня мы покажем, как на базе Windows 8 / Windows Server 2012 развернуть собственный веб-сервер IIS с поддержкой языка PHP. Впоследствии на данной платформе можно будет запустить большинство современных CMS, написанных на этом самом популярном (но далеко не самом лучшем) на данный момент языке разработки веб-приложений.

Содержание:
  • Установка IIS в Windows 8
  • Установка IIS в Windows Server 2012
  • Установка PHP на Windows 8 / Windows Server 2012
  • Тестируем работу PHP на IIS

Установка IIS в Windows 8

В Windows 8 веб-сервер IIS 8 поставляется в качестве отдельной функции и по умолчанию он не установлен. Чтобы установить IIS в Windows 8, откройте Панель управления и в разделе Program and Features (appwiz.cpl) нажмите на кнопку Turn Windows features on or off.Установка IIS в Windows 8

В открывшемся окне поставьте чекбокс у пункта Internet Information Service и нажмите ОK.

Примечание. По умолчанию IIS устанавливается в минимальной конфигурации.

После окончания установки, проверим что наш веб-сервер работает. Для этого запустите  Internet Explorer (или любой другой браузер) и в его адресной строке наберите http://localhost (или http://127.0.0.1 ).

Если IIS функционирует корректно, должна отобразиться такая страница:iis8 - стартовая страница в Windows 8

Установка IIS в Windows Server 2012

В Windows Server 2012 веб-сервер Internet Information Services можно установить из консоли Server Manager, выбрав для установки роль Web Server IIS.

установка web server iis в windows server 2012

Согласимся с предложенными по-умолчанию компонентами, установив дополнительно только CGI (находится в разделе Application Deployment ролей IIS).

IIS компонент CGI

Далее запустим установку роли, после окончания которой, сервер потребуется перезагрузить.

Протестируем работу IIS, открыв в браузере страницу http://localhost.

iis8 splash screen windows 2012

Установка PHP на Windows 8 / Windows Server 2012

Для установки PHP нам понадобится установщик Microsoft Web Platform Installer 5.0 (WPI), скачать который можно по этой ссылке: http://www.microsoft.com/web/downloads/platform.aspx (wpilauncher.exe.)

Совет. Преимущество использования установщика PHP в составе Microsoft Web Platform перед ручной установкой PHP заключается в следующем:

  • WPI сам определяет необходимую версию PHP и устанавливает актуальную на данный момент версию
  • WPI сам настраивает интеграцию с IIS, позволяет установить расширения PHP без необходимости вручную настраивать конфигурационные файлы
  • WPI в дальнейшем позволяет легко обновить PHP без потери конфигурационных файлов

Запустим скачанный файл wpilauncher.exe. и в появившемся окне установщика Web Platform Installer перейдем на вкладку Products и в списке доступных продуктов найдите строчку PHP 5.5.11.

Поможем тем, кто помогает!

Web Platform Installer 5.0

Нажмем кнопку Add и затем Install. Перед началом установки WPI проверит вашу систему на соответствие требованиям ( в случае необходимости будет предложено установить недостающие компоненты), после чего запустится установка PHP.

Установка php на IIS

Тестируем работу PHP на IIS

После того, как PHP установлен, проверим, что он работает корректно. Для этого перейдем в корневой каталог веб-сервера (по умолчанию C:inetpubwwwroot) и создадим новый текстовый файл с расширением PHP (например,test.php).

Откроем его в любом текстовом редакторе и вставим в него такой код:

<?php
phpinfo();
?>

Далее в браузере в адресной строке укажем такой url-адрес: http://127.0.0.1/test.php. Если все настроено верно, в окне должна  появится о версии и основных конфигурационных настройках  установленной версии PHP (PHP Info).

Тестовая страница php version info на iis

Совет. Конфигурационные настройки PHP хранятся в файле php.ini, который находится  в корне каталога установки.

На этом все! Итак, мы рассмотрели самый простой способ развернуть полноценный веб-сервер IIS с поддержкой PHP 5.x  на базе Windows Server 2012 / Windows 8.

FAQ

  • При установке и запуске на новом Windows Server 2012R у некоторых возникает ошибка:
    <strong>Ошибка HTTP 500.0 - Internal Server Error</strong>
    <strong>C:webtmPHPphp-cgi.exe - Непредвиденное завершение процесса FastCGI</strong>

    или

    HTTP Error 500.0 - Internal Server Error
    C:InetpubPHPphp-cgi.exe - The FastCGI process exited unexpectedly
    Module              FastCgiModule
    Notification        ExecuteRequestHandler
    Handler             PHP_FastCGI
    Error Code          0x000000ff

    Вариантов причин этой проблемы много, но одной из них может быть отсутствие библиотек Microsoft Visual C++ Redistributable 2012. Скачать его можно тут: http://www.microsoft.com/en-us/download/details.aspx?id=30679#

  • При запуске сайта возникает ошибка: «Процесс не может получить доступ к файлу, так как он используется другим процессом. (Исключение из HRESULT: 0×80070020)».
    Эта ошибка говорит о том, что порт, к которму осуществлена привязка сайта (по умолчанию 80-й), уже занят другим приложением. Очень часто такая ошибка возникает, если установлен другой веб-сервер (например Apache).
    Чтобы выяснить какой процесс занимает 80-й порт, в командной строке введите: netstat -ano -p tcp
    В колонке «Локальный адрес» ищем запись вида 0.0.0.0:80, далее смотрим какой «PID» соответствует этой записи. В «Диспетчере задач» открываем вкладку Процессы (опцию «Отображать процессы всех пользователей» должна быть отмечена). Далее переходим в меню Вид -> «Выбрать столбцы» отметь «ИД проесса (PID)». Теперь с помощью PID можно выяснить какой процесс занимает порт.
    Еще одним из решений этой проблемы является привязка сайта к альтернативному порту (например 8080).
  • При запуске php-скрипта появляется ошибка: Warning: fopen(путь_к_файлу): failed to open stream: Permission denied  in путь_к_файлу.
    Проблема в том, что группа пользователей IIS_IUSRS имеет права только на чтение. Открыть свойства папки, в которой распологаются файлы веб-сайта (по умолчанию wwwroot), закладка Безопасность. В списке находим группу IIS_IUSRS и даем ей права полного доступа.
  • Как установить кодировку сайта.
    Откройте «Диспетчер служб IIS», выберите нужный веб-сайт.В настройках сайта откройте раздел «Заголовки ответов HTTP». Нажмите ссылку Добавить. В открывшемся окне в поле Имя введите: Content-type, в поле Значение введите: text-html; charset=windows-1251 (см. скриншот). Вместо windows-1251 можно прописать любую другую кодировку.