Веб-сайты – самый распространенный тип контента в интернете сегодня. Однако, чтобы обеспечить видимость вашего веб-сайта для максимально широкой аудитории, вам потребуется разместить его на веб-сервере. Как это сделать? Рассмотрите вариант использования служб информации о вебе Windows (Windows IIS) – популярного выбора для хостинга веб-сайтов.
В этом руководстве вы узнаете основы начала работы с Windows IIS для управления веб-приложениями через графический интерфейс или командную строку!
Читайте далее и повышайте уровень управления вашими веб-приложениями с помощью Windows IIS!
Предварительные требования
Этот учебник представляет собой практическую демонстрацию. Если вы хотите следовать за нами, убедитесь, что у вас есть:
- A Windows machine – This tutorial uses Windows Server 2012 since it’s stable and available at a low cost (or free). But you can also use Windows 10 for this tutorial.
- Распределение Visual C++, установленное на вашем компьютере под управлением Windows. Для корректного отображения страниц PHP IIS требуется Visual C++.
Установка Windows IIS на сервер с Windows
Веб-сервер IIS предлагает богатые возможности и масштабируемость для хостинга веб-сайтов и служб в операционных системах Windows. Но прежде чем использовать IIS, вы должны установить этот инструмент на свой компьютер под управлением Windows.
Для установки Windows IIS на сервере с Windows:
1. Нажмите Ctrl+R, чтобы открыть окно Run, введите ServerManager и нажмите Enter.
Это действие открывает панель инструментов Server Manager, которую администраторы ИТ используют для различных повседневных задач, связанных с администрированием сервера.

2. На серверном менеджере нажмите ссылку Добавить роли и функции, чтобы открыть мастер, где вы можете добавить службы ролей и функции на ваш локальный сервер.

3. Затем прочтите информацию на странице Перед началом работы и нажмите Далее.
Вы также можете установить флажок По умолчанию пропустить эту страницу, чтобы в следующий раз не видеть эту страницу при добавлении ролей и функций.

4. Теперь, на странице Тип установки выберите первый вариант (Установка на основе ролей или функций) и нажмите Далее.
Этот вариант рекомендуется в большинстве случаев, он позволяет добавлять конкретные роли, службы ролей и функции стандартным способом.
Если выберете второй вариант (Установка служб удаленного рабочего стола), вам придется вручную выбрать требуемые роли, службы и функции для установки.

5. Выберите свой сервер из пула серверов и нажмите Далее.
Вы также можете выбрать несколько серверов для распределенной установки, но это выходит за рамки данного руководства.

6. Затем установите флажок Веб-сервер (IIS) на странице Роли сервера для масштабируемой инфраструктуры веб-приложений и нажмите Далее.

7. Оставьте выбранные значения по умолчанию и нажмите Далее. Это действие сообщает Windows установить все необходимые подфункции для роли сервера IIS, включая ASP.NET, статический контент и страницу по умолчанию.

8. Ознакомьтесь с дополнительной информацией о Роли веб-сервера (IIS) и нажмите Далее.

9. На странице Службы ролей оставьте выбранные значения по умолчанию, но разверните узел Разработка приложений, выберите флажок CGI и нажмите Далее.
Этот параметр устанавливает поддержку Common Gateway Interface (CGI), стандартного способа взаимодействия внешних приложений с веб-серверами.

10. После настройки параметров установки нажмите кнопку “Установить”, чтобы установить выбранные роли и функции.

11. После завершения установки, как показано ниже, нажмите “Закрыть”, чтобы завершить и выйти из мастера.
И вот оно! Вы успешно установили службу IIS Windows на своем сервере.

12. Наконец, откройте свой любимый веб-браузер и перейдите по адресу http://localhost/.
Если все пройдет успешно, вы увидите страницу IIS по умолчанию, подобную приведенной ниже, что подтвердит, что ваш веб-сервер работает.

Установка PHP и настройка IIS для обработки запросов PHP
Вы успешно установили службу IIS Windows на своем сервере, но вам все равно нужен способ размещения страниц на вашем сервере. И для этого урока вы установите PHP и настроите IIS для обработки запросов PHP.
Для установки PHP на ваш сервер:
1. Перейдите на страницу загрузки релиза PHP download page. На момент написания этого руководства последним стабильным выпуском является PHP 8.1.
Загрузите ZIP-архив Non Thread Safe (NTS), поскольку IIS использует однопоточное выполнение для обработки каждого запроса. Пакет Thread Safe (TS) предназначен для IIS FastCGI, который позволяет PHP работать в многопоточной среде.

2. Распакуйте загруженный архив PHP в каталог PHP (C:\PHP\) на вашем сервере.
После распаковки архива вам нужно установить и настроить IIS, чтобы управлять и развертывать веб-приложения.

3. Откройте свой Server Manager, выберите Dashboard → Tools → Internet Information Services (IIS) Manager. Это действие откроет консоль IIS Manager, где вы сможете настроить параметры IIS, создавать и управлять веб-сайтами, а также разворачивать веб-приложения.

4. Теперь выберите свой localhost (панель Connections) и дважды щелкните по Handler Mappings, чтобы получить доступ к списку доступных отображений обработчиков.

5. На странице Handler Mappings нажмите Add Module Mapping (правая панель), что откроет диалоговое окно Add Module Mapping.

6. Затем настройте новое отображение следующим образом:
- Request path – Введите *.php, чтобы указать IIS перенаправлять все запросы, заканчивающиеся на .php, к модулю обработки PHP. Символ звездочки (*) позволяет сэкономить время, так как не нужно добавлять отображение обработчика для каждого файла PHP.
- Module – Выберите FastCgiModule, чтобы указать, что обработкой запросов должен заниматься модуль FastCGI.
- Executable – Введите полный путь к файлу php-cgi.exe. В данном примере путь – C:\PHP\php-cgi.exe.
- Name – Укажите уникальное имя отображения модуля, но в этом учебнике используется PHP_FastCGI.
- Щелкните Request Restrictions, чтобы настроить ограничения запросов.

7. Установите флажок и выберите опцию File or Folder. Эта опция гарантирует, что отображение обработчика применяется только к файлам на сервере.

8. Перейдите на вкладку Глаголы и выберите опцию Все глаголы. Эта опция указывает IIS перенаправлять все типы HTTP-запросов, такие как GET, POST и HEAD, в модуль обработки PHP.

9. Теперь на вкладке Доступ выберите опцию Сценарий и нажмите OK. Эта опция сообщает IIS, что страницы PHP – это сценарии, которые должны выполняться, а не статические файлы, которые должны обслуживаться напрямую.

10. Вернитесь к добавлению сопоставления модулей, нажмите OK, чтобы добавить новое сопоставление модулей.

11. Наконец, откройте PowerShell от имени администратора и выполните команду IISRESET для перезапуска службы IIS Windows. Это действие необходимо для вступления в силу нового сопоставления обработчиков.

Развертывание вашего первого веб-сайта
Теперь, когда у вас установлен PHP и настроен IIS, наступает самая захватывающая часть – развертывание вашего веб-сайта. Но сначала вам нужен веб-сайт для развертывания. Вы создадите и развернете базовую страницу PHP на вашем сервере IIS в этом примере.
1. Создайте новый файл index.php в вашем любимом текстовом редакторе в корневом каталоге веб-сайта. В этом примере корневой каталог веб-сайта – C:\inetpub\wwwroot\.
Расширение .php сообщает IIS, что файл index.php является страницей PHP, которую нужно обработать с помощью модуля обработки PHP.
2. Затем добавьте следующий код в ваш новый файл index.php, сохраните изменения и закройте файл.
Нижеприведенный код сообщает IIS отображать простое сообщение “Привет, мир!” на странице PHP в вашем браузере.
3. Наконец, откройте новую вкладку в вашем веб-браузере и перейдите по адресу http://localhost/index.php чтобы запросить вашу страницу index.php с локального сервера IIS. Это позволит вам проверить работу развертывания вашего веб-сайта.
Если все пройдет успешно, вы увидите сообщение “Привет, мир!” на странице index.php, как показано ниже.

Управление Windows IIS через командную строку
Вы являетесь поклонником использования CLI? Нет проблем! Помимо GUI, IIS также можно управлять с помощью командной строки. С помощью этого инструмента вы можете управлять практически всеми аспектами IIS, включая сайты, приложения, виртуальные каталоги, пулы приложений и т. Д.
В этом руководстве вы кратко рассмотрите некоторые основные команды для управления IIS. Но для полного списка всех доступных команд AppCmd.exe обратитесь к официальной документации Microsoft.
1. Откройте командную строку от имени администратора и выполните нижеуказанные команды, чтобы перечислить все веб-сайты (site), доступные на вашем сервере IIS.
Вы увидите список всех сайтов, в настоящее время работающих на вашем сервере, а также некоторую основную информацию о каждом сайте, такую как идентификатор, состояние, и т. д.
Слишком общо? Нет проблем! Вы также можете использовать AppCmd.exe для запроса о конкретном веб-сайте на следующем шаге, чтобы углубиться в информацию, которая вас интересует.

2. Выполните нижеуказанную команду, чтобы получить всю информацию о Веб-сайте по умолчанию.

3. Затем выполните следующие команды, чтобы остановить определенный веб-сайт и перечислить все остановленные веб-сайты (/state:Stopped).
Вы можете заменить состояние остановки на другие состояния сайта, такие как запуск, работа или неизвестно.

4. Теперь выполните нижеуказанную команду, объединяя несколько критериев, разделенных пробелом, чтобы дополнительно отфильтровать результаты.
Нижеприведенная команда перечисляет все сайты, находящиеся в состоянии остановки (/state:Stopped) и имеющие включенный автозапуск на уровне сервера (/serverAutoStart:true).
5. Наконец, выполните команду ниже, чтобы запустить веб-сайт, который вы остановили на третьем шаге (“Веб-сайт по умолчанию”).

Заключение
Вы увидели, как Windows IIS позволяет управлять вашими веб-сайтами. И в этом руководстве вы узнали, как установить и настроить IIS на сервере Windows для развертывания и тестирования базового веб-сайта PHP. Windows IIS – это универсальный инструмент, который позволяет управлять вашими веб-сайтами через графический интерфейс и среду командной строки.
С этим новым знанием вы готовы начать создавать свои веб-сайты и приложения на IIS! Почему бы вам не научиться, как создать сайт на WordPress на IIS в следующий раз?