Chrome Chrome  Microsoft edge
Развернуть

Windows Server. Настраиваем веб-сервер IIS

Привет. Давайте установим ISS. А для начала узнаем что такое IIS?

IIS (Internet Information Services, до версии 5.1 - Internet Information Server) - проприетарный набор серверов для нескольких служб Интернета от компании Майкрософт. IIS распространяется с операционными системами семейства Windows NT.

Основным компонентом IIS является веб-сервер, который позволяет размещать в Интернете сайты. IIS поддерживает протоколы HTTP, HTTPS, FTP, POP3, SMTP, NNTP.

Отлично. Теперь мы знаем что мы будем ставить . Приступим.

Установка

Первым делом идем в главное меню "Пуск" (Start) далее

Панель управления -> Программы -> Включение или отключение компонентов Windows.

Находим в списке "Службы IIS" и выбираем нужные компоненты

  • Безопасность . Все компоненты кроме «Проверка подлинности с сопоставлением сертификата …».
  • Компоненты разработки приложений. Для PHP нужна компонента CGI.
  • Общие функции HTTP . Отмечаем все пункты.
  • Проверка работоспособности и диагностика. Выбираем «Ведение журнала HTTP» и «Монитор запросов».
  • Функции повышения быстродействия. Отмечаем все пункты.
  • Средства управления веб-сайтом. Отмечаем только «Консоль управления IIS ».

Лично я немного отступил от этого описания и добавил FTP, так как мне для моих нужд потребуется тестировать работу с FTP.

После того как были выбраны нужные пункты, нажимаем "Ок" и остается подождать когда установятся требующиеся нам компоненты. после чего можно перезагрузить машину. это ей не помешает для старта всех требующихся сервисов.

все. Можно сказать что наш ISS Сервер установлен. Перейдем к его начальному конфигурированию .

Конфигурирование

Идем в управление компьютером (правой кнопкой мыши по значку "Компьютер" -> Управление), далее "Службы и приложения" -> "Диспетчер служб IIS" или счастливые обладатели Windows 7 могут пойти по другому "Пуск" и в поле "Найти программы и файлы" ввести "IIS" и в списке отобразится заветная "Диспетчер служб IIS"

Идем в сайты. Сайт по умолчанию я удалил сразу, решив что он мне не нужен и для наглядности я создам новый .

Правой кнопкой мыши по "сайтам" -> "Добавить web сайт"

и создаем наш первый сайт

Обратите внимание "localhost" был выбран не случайно. Так как именно эта директива является "по умолчанию" имеет локальный адрес 127.0.0.1 и имя прописанное в файле hosts lcalhost. подробнее советую почитать на википедии

Добрый день уважаемые читатели и гости блога, сегодня мы с вами продолжим изучать, веб сервисы на базе Windows, а именно, посмотрим, как производится настройка SSL на IIS для одного или нескольких сайтов, как с одним Ip адресом, так и с несколькими. Для выполнения этой, поставленной задачи у вас должен быть установлен веб сервер iis , на Windows Server начиная от 2008 R2 и выше, на текущий момент самый последний, это Windows Server 2016.

Настройка https сайта на IIS

И так про создание сайта iis на windows server 2012, я вам уже рассказывал, подразумевается, что он у вас есть. Далее, когда вы прописали все DNS записи, вы генерировали запрос на выпуск сертификата и уже потом получали от центра сертификации ваш сертификат, но его еще приходилось затачивать под iis , так как ему нужен формат pfx.

Еще немного теории и ограничения

Если у вас один сайт на https на вашем iis сервере, то проблем с сертификатом не возникнет, если же планируется два сайта, то тут уже есть варианты:

  • Купить wildcard сертификат , чтобы была возможность вешать SSL на любой сайт IIS
  • Купить дополнительный ip для каждого сайта
  • Воспользоваться скриптом и применить привязку нужного SSL к нужному сайту, на одном Ip адресе
  • Воспользоваться технологией SNI (Server Name Indication)

Установка SSL в PFX

Первым делом для создания сайтов на протоколе https, вам необходимо импортировать нужный сертификат, делается это очень просто. Вы открываете, диспетчер IIS и переходите в пункт "Сертификаты сервера"

Через обзор, указываете ваш pfx архив.

Указываете пароль, в строке "Выбрать хранилище сертификатов" укажите либо "Личный" подойдет для обычного размещение, а вот пункт "Размещение веб-служб" нужен для SNI технологии.

По сути, это и есть сложная установка SSL в iis, как вам такое.

Теперь произведем привязку SSL сертификата к нужному сайту. Для начала я проверю свой сайт на протоколе http, как видите все отлично работает.

Теперь щелкаем по нужному сайту правым кликом и выберем пункт "Изменить привязки", именно там мы и произведем настройку https в iis.

Как видите ваш сайт по умолчанию, будет работать по протоколу http, нажимаем кнопку добавить.

Указываем для сайта:

  • Тип https и номер порта, по умолчанию, это порт 443, убедитесь, что он открыт у вас в брандмауэр.
  • В имени узла, пишем полное название сайта.
  • SSL-сертификат > выбираем нужный и сохраняем настройки.

Проверяем ваш сайт по протоколу HTTPS, если все отлично, то вы увидите закрытый замочек, это значит, что ssl сертификат установлен в IIS правильно.

Настройка нескольких HTTPS сайтов на разных ip

Предположим, что у вас есть два сайта:

  • api.pyatilistnik2010.ru
  • new.pyatilistnik2010.ru

Вам необходимо, чтобы каждый из них имел свой ip привязанный к DNS имени и так же отдельный сертификат, тут все просто. Вы так же поднимаете отдельные сайты, с той лишь разницей, что в поле ip адрес, указываете нужный и в поле имя узла, адрес вашего ресурса, ну и собственно нужный сертификат.

Сохраняем и проверяем, должно все работать, на любой из версий сервера IIS от 7,5 до 9.

Настройка нескольких HTTPS сайтов на одном ip

Теперь представим себе ситуацию, что у вас один внешний ip адрес, как быть, пробуем повесить все на него. В итоге один из сайтов у вас получит 404 ошибку, кто не в курсе, что это такое, то вам сюда .

Вся проблема в том, что в IIS по такому сценарию, в веб интерфейсе может работать, только сертификат на домен, формата wildcard *.сайт. Звездочка подразумевает, что вы можете использовать SSL на любой домен третьего уровня. Но не смейте сдаваться, есть два выхода:

  1. Использование технологии SNI (Server Name Indication) в IIS, подходит для всего старше версии 7.5, так, что Windows Server 2008 R2 и ниже в пролете.
  2. Использовать скрипт от Microsoft.

Вот вам пример такого сертификата.

Если у вас wildcard, то все просто, либо через диспетчер IIS все меняете, либо через конфигурационный файл.

C:\Windows\System32\inetsrv\config\applicationHost.config

Откройте его, здесь хранятся настройки IIS. И можно задать биндинг на разные доменные имена:
































Теперь метод, если у вас нет wildcard и только один внешний ip на сервере, подходит для IIS 7.5 и выше. Первое, что нам необходимо сделать, это узнать ID вашего сайта, делается это просто, либо через консоль диспетчер IIS

Либо все в том же файле applicationHost.config

%SYSTEMDRIVE%\Inetpub\AdminScripts

Если у вас, например, на IIS 8 и старше в данной папке нет этого файла, то вам необходимо доставить IIS Management Scripts and tools (IIS скрипты и инструменты управления
).

Internet Information Services (IIS) это набор интернет-серверов от компании Microsoft. Основным компонентом IIS является веб-сервер, хотя этим дело не ограничивается. Последняя восьмая версия IIS поставляется со всеми редакциями Windows Server 2012 R2.

Несмотря на проприетарность IIS, доля этого набора сервисов на рынке постепенно увеличивается. В интернете можно отыскать множество сакральных споров, что же всё таки лучше — IIS, Apache или, скажем, Nginx. Не будем им уподобляться, просто скажем в каких случаях в основном используется IIS.

Самый удобный вариант использования IIS — когда всё ваше рабочее окружение (и серверная его часть тоже) работает на Windows. В таком случае Вы можете получить от IIS ряд удобных «плюшек» для работы в домене. В конце концов, ведь IIS это еще и FTP-сервер, и почтовый сервер. Интерфейс IIS довольно нагляден, что вообще свойственно Windows-среде. Ну и, конечно, IIS пригодится вам, если вы используете MS SQL.

Для включения IIS в Windows Server 2012 R2 зайдите в Диспетчер серверов.

В Диспетчере серверов найдите пункт «Добавить роли и компоненты».

Убедитесь, что у Вас включен CGI.

После этого в разделе Администрирование у Вас появится Диспетчер служб IIS.

Вы можете так же включить IIS в Windows 7 Профессиональная и Максимальная, а также в Windows 8. Для этого перейдите в Панель управления → Программы → Включение или отключение компонентов Windows.

Диспетчер служб представляет собой графический интерфейс управления Вашими серверами.

Справа перечислены сервера и сайты. По умолчанию на системном разделе создается папка inetpub , в которой находятся папки ftproot и wwwroot для FTP-серверов и веб-сайтов соответственно.

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

Для установки PHP перейдите по ссылке и скачайте ZIP-архив с версией Non Thread Safe . Обозначение VC11 возле версии обозначает, что для её компиляции необходим Visual C++ Redistributable for Visual Studio 2012 . Для старых версий, маркированных как VC9 , требуется Visual C++ Redistributable for Visual Studio 2008 SP1.

Директорию для распаковки ZIP-архива можно выбрать по своему усмотрению. После извлечения архива создайте копию файла php.ini-production под именем php.ini в той же папке.

Файл php.ini содержит правила исполнения PHP и работы с окружением, в котором он исполняется. Есть ряд обязательных параметров, которые должны быть прописаны. Ниже список этих параметров.

extension_dir = [путь к директории расширений] — этот параметр отвечает за расположение расширений PHP. Например, C:\php\ext.

extension = xxxxx.dll — для каждого подключаемого расширения необходимо прописать такую директиву. Такие расширения будут подгружаться при старте PHP.

log_errors = On — включение лога ошибок.

error_log = [путь к файлу лога ошибок] — собственно, тут всё понятно.

cgi.force_redirect = 0 — отключение механизма защиты директорий, под IIS данный параметр должен принимать именно такое значение во избежание ошибок ядра PHP в Windows.

cgi.fix_pathinfo = 1 — включение поддержки PATH_INFO согласно спецификации CGI. IIS FastCGI использует эту настройку.

fastcgi.impersonate = 1 — включение идентификации маркеров безопасности вызывающего клиента.

fastcgi.logging = 0 — логи FastCGI в IIS необходимо отключить.

Далее в свойствах системы необходимо откорректировать переменные среды. В Windows Server 2012 R2 необходимо зайти в Панель управления, выбрать пункт Система, там Дополнительные параметры системы. На вкладке Дополнительно внизу находится кнопка Переменные среды.

Среди системных переменных находим переменную Path и в поле Значение переменной дописываем путь к каталогу PHP. В моем примере это C:\php.

Установка веб-сервера IIS

Открываем Панель управления -> Программы -> Включение или отключение компонентов Windows. Находим в списке раздел Службы IIS. Раскрываем его и выбираем нужные компоненты:

Базовый набор:

  • Безопасность. Выбираем все компоненты кроме “Проверка подлинности с сопоставлением сертификата …”.
  • Компоненты разработки приложений. Мне нужна только компонента CGI, для последующей установки PHP.
  • Общие функции HTTP. Отмечаем все пункты.
  • Проверка работоспособности и диагностика. Выбираем “Ведение журнала HTTP” и “Монитор запросов”.
  • Функции повышения быстродействия. Отмечаем все пункты.
  • Средства управления веб-сайтом. Отмечаем только “Консоль управления IIS”.

Когда все пункты выбраны, нажимаем Ок. После завершения установки обязательно перезагружаемся!

Теперь переходим к созданию веб-сайта. Открываем Панель управления -> Система и безопасность -> Администрирование -> Управление компьютером (можно быстрее: меню Пуск -> правый клик на Компьютер -> в меню выбрать пункт Управление). В открывшемся окне раскрываем группу “Службы и приложения” и открываем “Диспетчер служб IIS”. В окне Подключения выбираем папку Сайты, затем в правом окне Действия нажимаем на ссылку “Добавить веб-сайт”.



Нажимаем OK. На этом базовая настройка завершена. Нужно проверить работоспособность только что созданного сайта. Открываем браузер и в адресной строке вводим: http://localhost. Если все работает правильно, вы увидите похожую страницу:


Последний штрих. Чтобы сайт был доступен из вне, необходимо открыть 80-й порт для входящих соединений. Как это сделать на примере штатного брандмауэра Windows 7:
Откройте Панель управления -> Система и безопасность -> Брандмауэр Windows -> Дополнительные параметры. В списке необходимо найти и включить правило Службы Интернета (входящий трафик HTTP) :


В этом режиме базовой установки веб-сервер способен отображать только статические страницы (обычный HTML + JavaScript). Чтобы расширить его возможности, можно установить поддержку ASP, ASP.NET или PHP. Сам я занимаюсь программированием пока только на PHP, поэтому далее расскажу только об установке PHP на IIS в режиме FastCGI.

Установка PHP (FastCGI)

Конечно, оптимальный веб-сервер для PHP – это Apache, но все же бывают случаи когда требуется установить PHP на IIS. Тем более, в последнее время разработчиками была проделана большая работа, чтобы производительность PHP на IIS улучшилась.

Перед началом установки необходимо скачать релиз PHP с сайта http://windows.php.net/download/ . Там предлагается несколько вариантов. Нам необходим релиз VC9 x86 Non Thread Safe . Для работы в режиме FastCGI это наиболее быстрый и стабильный вариант. Я рекомендую скачивать релиз с установщиком (installer), а не zip-архив (это для любителей ручной установки).

Теперь запускаем установщик. После нескольких не особо информативных окон нам предложат выбрать веб-сервер и режим работы PHP:


IISFastCGI – да, сейчас это единственный стабильный вариант установки PHP на IIS.

После завершения работы установщика, переходим к настройкам IIS. В принципе здесь надо сделать только одно действие – поднять приоритет php-файлов, чтобы они обрабатывались в первую очередь. В диспетчере служб IIS нажимаем по названию нашего сайта и в окне справа выбираем раздел “Документ по умолчанию”. В появившемся списке необходимо переместить index.php в начало:


Пользователи Windows 7 64-бит, внимание! Вам необходимо произвести одно дополнительное действие. Откройте раздел “Пулы приложений”. Выделите DefaultAppPool и откройте “Дополнительные параметры” (через правый клик или в крайней правой колонке). В разделе Общие необходимо найти опцию “Разрешить выполнение 32-битных приложений” (Enable 32-bit Applications) и установить в положение True. Если уже созданы дополнительные пулы для уже существующих сайтов, то для каждого из них нужно проделать ту же операцию.

Теперь необходимо провести тестирование PHP. В корневую папку веб-сайта (c:\inetpub\wwwroot) необходимо поместить файл index.php со следующим содержанием:

Открываем сайт в браузере (http://localhost). Если все работает правильно, вы увидите страницу с информацией об установке PHP:


Установка MySQL

Вынесена в отдельную статью.

  • При запуске сайта возникает ошибка: «Процесс не может получить доступ к файлу, так как он используется другим процессом. (Исключение из 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 можно прописать любую другую кодировку.

Обычно, когда говорят о web-сервере, подразумевают решения на базе платформы Linux. Но если ваша инфраструктура развернута на основе Windows Server то логично будет использовать веб-сервер IIS. Вопреки распространенному мнению, это весьма популярная платформа, которая позволяет работать как с большинством популярных CMS, так и имеет широкий спектр систем, предназначенных для работы именно на Windows и IIS.

Несомненным достоинством IIS является его тесная интеграция с другими технологиями и средствами разработки Microsoft. В частности веб-решения для IIS могут использовать богатые возможности.NET и легко взаимодействовать с настольными приложениями на этой платформе. Если же вас это пока не интересует, то к вашим услугам богатый выбор готовых CMS, в том числе написанных специально для IIS. Сегодня мы рассмотрим как установить и настроить IIS для работы с веб-решениями на базе ASP.NET и установим одну из популярных CMS для этой платформы.

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

Но не спешите нажимать Далее, слева, под названием каждой роли, доступна опция Службы ролей , перейдем на нее и установим для Сервера приложений следующие опции: Поддержка веб-сервера (IIS), Общий доступ к TCP-портам и Активация через HTTP.

А для веб-сервера установите службу FTP-сервер.

После чего установите выбранные роли. Для проверки работоспособности IIS наберите в браузере IP-адрес вашего сервера, вы должны будете увидеть стандартную страницу-заглушку веб-сервера.

Теперь перейдем в к настройке сервера, для этого откроем Диспетчер служб IIS (находится в Пуск - Администрирование).

Первым делом создадим новый сайт, для этого щелкните правой кнопке на пункте Сайты в боковом меню Диспетчера IIS и выберите Создать новый сайт .

В открывшемся окне укажите имя сайта, путь к корневой папке (по умолчанию сайты пользователей располагаются в C:\inetpub\wwwroot ), которую следует предварительно создать и укажите имя узла (доменное имя сайта), в нашем случае iissite.local

Не забудьте добавить A-запись с именем вашего сайта на DNS-сервер или пропишите необходимые строки в файлы hosts тех рабочих станций, откуда будете обращаться к сайту

В принципе вы уже можете размещать в папке сайта web-страницы и получать к ним доступ через браузер, но для полноценной работы с сайтом не помешает FTP-доступ к нему. Для этого щелкните правой кнопкой по названию вашего сайте в боковом меню и выберите Добавить FTP-публикацию

Далее укажите привязку FTP-cлужбы к сетевым интерфейсам и портам, а также настройте параметры безопасности. Если вы собираетесь использовать SSL, то учтите что вам потребуется сертификат, хотя если вы будете использовать FTP-доступ только для собственных нужд, то можно обойтись самоподписанным сертификатом. Не забудьте поставить галочку для автоматического запуска FTP-сайта.

На следующей странице укажите параметры доступа к серверу, мы советуем указывать конкретных пользователей, которые будут работать с данным сайтом.

Веб-сервер настроен и вы можете использовать его для размещения HTML-страниц, однако современные сайты используют для хранения своих данных СУБД, поэтому следующим шагом установим MS SQL Express 2012 , возможностей которого с лихвой хватит для наших задач. Установка производится со значениями по умолчанию, кроме Режима проверки подлинности , который следует переключить в Смешанный режим и задать пароль суперпользователю SQL-сервера sa .

Теперь попробуем установить какую либо популярную CMS созданную на базе технологии ASP.NET, обширный выбор таких решений представлен в галерее web-приложений Microsoft. Обратите внимание, что по кнопке скачать вы получите пакет для установки через Web PI, для установки на IIS вам потребуется перейти на сайт разработчика и скачать полный пакет с CMS

Мы будем устанавливать Orchard CMS , для получения пакета пройдите по ссылке и выберите Загрузить как zip , распакуйте полученный архив и закачайте в корень сайта содержимое папки Orchard.

Данная CMS создана на базе ASP.NET 4, поэтому настроим наш сайт на использование необходимых технологий. Для этого щелкните правой кнопкой на имени сайта в боковом меню и выберите Управление веб-сайтом - Дополнительные параметры

В открывшемся окне измените параметр Пул приложений , указав там ASP.NET v.4

Затем установите необходимые права на папку с сайтом, вам нужно добавить пользователю IIS_IUSRS возможность записи и изменения содержимого данной папки.

Также не забудьте создать базу данных для сайта, для этого зайдите в SQL Server Management Studio и, щелкнув правой кнопкой на пункте Базы данных в боковом меню, создайте новую базу.