Установка IIS 7.0 и основы администрирования

Продолжаем изучать web сервера и сегодня мы рассмотрим установку и основные настройки Internet Information Services (IIS) версии 7.0 на платформе Windows Server 2008. А также научимся привязывать такие отдельные технологии как PHP к нашему web серверу.

Как Вы знаете, PHP отлично работает с Apache и MySql, но вдруг у Вас возникла необходимость использовать именно IIS в связке с PHP, то тогда данная статья именно для Вас. Сегодня мы рассмотрим основы IIS 7.0, научимся устанавливать данный web сервер и привязывать к нему PHP. Мы будем рассматривать IIS 7 версии, но не расстраивайтесь, если у Вас, например, стоит Windows Server 2008 R2, где устанавливается IIS версии 7.5, он практически не отличается от 7 версии.

Для начала давайте немного поговорим об архитектуре IIS 7.0. Данный Web-сервер полностью построен на модульной основе, т.е. в отличие от IIS 6.0, который просто устанавливался как роль сервера и все. В IIS 7 более гибко можно настроить свой веб сервер, путем установки только необходимых модулей, которые Вам нужны. Это огромный плюс так как:

  • ненужные модули отключены, тем самым увеличивается производительность;
  • чем меньше модулей задействовано, тем выше безопасность Web сервера, другими словами, так называемых «дырок» становится меньше.

Установка Web-Сервера IIS 7.0 на Windows Server 2008

Перед установкой хочу дать небольшой совет, устанавливайте данную роль сервера на полностью «голый» сервер, т.е. помимо службы IIS там ничего недолжно быть установлено (имеется в виду из ролей сервера) исключением может быть только DNS сервер. Существует даже отдельная редакция Windows Server 2008 Web Server, которая полностью ориентирована именно на Web сервер, кстати, она намного дешевле других редакций этой операционной системы.

Существует несколько вариантов установки данной роли в Windows:

  • Через графический интерфейс (мы будем использовать);
  • Через командную строку (на мой взгляд, не удобно, так как приходиться полностью вручную писать все необходимые модули, которые Вам нужны, причем их названия регистрозависимые);
  • Также через командную строку, но уже с использованием XML файла (удобно, если Вам необходимо поднять много web серверов, Вы просто один раз повозитесь с xml файлом, а потом просто будете запускать одну команду в командной строке и все).

Теперь давайте перейдем непосредственно к самой установки этого сервера. Предполагается, что у Вас уже установлена операционная система Windows Server 2008.

Нажимаем Пуск -> Администрирование -> Диспетчер сервера -> переходим на пункт роли и жмем «Добавить роли».

Скриншот 1

Затем нажимаем «Далее», а на следующем шаге выберите Веб-сервер (IIS).

Скриншот 2

На следующем шаге просто жмите «Далее», а вот на следующем шаге приостановитесь и задумайтесь. Какие именно компоненты (модули) Вам нужны, если все оставить по умолчанию, то Вы сможете, обрабатывать только статический контент, и вообще у Вас будет доступно мало функций на Вашем сервере. Но все равно, все ставить не нужно, выберите только то, что Вам необходимо.

В моем случае мы будем прикручивать PHP и для поддержки этого нужно выбрать пункт CGI, а если Вы вдруг используете asp.net, то выбирайте соответствующие пункты, да и вообще почитайте, что там есть еще (описание располагается  справа), чтобы потом не удивляться, «почему у меня нет этого и не работает вот это». Жмите далее.

Скриншот 3

А теперь жмем «Установить». Ждем несколько минут, и после того как мастер добавления ролей скажет, что «Установка прошла успешно», жмем закрыть. И сразу же можем проверить работоспособность нашего web сервер, путем простого открытия браузера и набора в адресной строке http://localhost и если у Вас появилась следующая картинка, то Ваш сервер работает!

Скриншот 4

Как администрировать IIS?

Для управления web сервером используется графический интерфейс, но сразу могу сказать, что управлять можно также и напрямую редактировав xml файлы. Все настройки web сервера IIS7 хранятся в виде xml файлов. Настройки сразу для всего сервера IIS (сразу для всех сайтов) хранятся в файле applicationHost.config, который располагается по следующему пути:

Скриншот 5

Но для конфигурации отдельного сайта можно использовать файл web.config, он создастся автоматически при изменение любой настройки применительно к одному сайту. Мне такая схема напомнила конфигурирование web сервера Apache, где для конфигурации отдельно взятого сайта можно использовать файл .htaccess.

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

Перейдем непосредственно в нашу графическую панель управления web сервером IIS 7, для этого откройте «Пуск->Администрирование->Диспетчер служб IIS». В итоге у Вас откроется, вот тая панель:

Скриншот 6

Где, слева будет дерево Ваших сайтов (у нас пока только сайт по умолчанию) и приложений, по центру сгруппированы все настройки, а справа свойства той или иной настройки.

Привязываем PHP к IIS

Теперь нам необходимо установить PHP, для этого нужно скачать дистрибутив php с официального сайта (http://windows.php.net/download/) в виде msi пакета (нажав на ссылку installer), я скачал версию php-5.3.10-nts-Win32-VC9-x86.msi, но Вы можете скачать версию и поновей.

Перейдем к установке PHP, вообще проблем возникнуть не должно, только на одном окне обязательно выберите следующий пункт: IIS Fast CGI.

Скриншот 7

Создание нового сайта в IIS

После этого давайте создадим новый сайт (в IIS это будет узел), щелкнем правой кнопкой по пункту «Узлы» и нажмем «Добавить веб-узел». Заполняем как на картинке, локальную директорию для нового сайта я создал в папке C:\inetpub\my, но Вы можете создать ее хоть на другом диске.

Скриншот 8

Если у Вас будет не один сайт, то у Вас возникнет необходимость отделять их друг от друга. Существует несколько способов, первый, например, посадить их на разные порты, но в некоторых случаях это не удобно. У сайта по умолчанию он 80, а у нового сайта 8080, но если у Вас будет много сайтов и Вы хотите чтобы они работали на одном порту, скажем на 80, то Вам необходимо заполнять поле «Имя узла», другими словами, это домен сайта. После того как Вы указали здесь, например, как я mysite, Вам необходимо сделать соответствующую запись на DNS сервере или, если у Вас мало компов и просто нет DNS сервера, или Вы просто разработчик, то пропишите это соответствие в файле hosts (например, 10.10.10.2  mysite)

Теперь создайте в папке нового сайта (C:\inetpub\my) файл, например, index.php с таким содержимым

 
   <?PHP
        phpinfo();
   ?>

С помощью этой простой функции на языке php, можно узнать настройки самого php установленного на этом сервере, если Вы увидите страничку с указанием версии php, которая указанна чуть ниже, то у Вас все работает.

Скриншот 9

Как Вы заметили никаких специальных действий на сервере IIS 7, для привязки php, мы не делали (за исключением того, что мы при установке добавили компонент CGI), за нас это сделал сам дистрибутив php и сервер iis.

Полезные настройки IIS

Теперь рассмотрим пару настроек сервера IIS 7, например, мы хотим, чтобы у нас на одном сайте по умолчанию открывался документ mydoc.php. Для этого перейдите на нужный сайт и откройте настройки «Документ по умолчанию» и добавьте нужный Вам документ, причем Вы можете указать несколько документов, задав им необходимый приоритет.

Скриншот 10

И после этого Вы сразу же увидите, что в Вашей папке с новым сайтом Mysite, появился файл web.config (как я раньше и говорил). Для того чтобы проверить, что Вы сделали все правильно, создайте файл mydoc.php с любым содержимым, и откройте в браузере адрес Вашего сайта, и по умолчанию должен загрузиться этот документ.

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

Например, Вы хотите настроить на вашем сайте Basic аутентификацию, но в данный момент Вы не можете найти эту настройку на сервере, для этого Вам необходимо до установить нужный компонент. Открываем диспетчер сервера «Роли->Веб-сервер(IIS)->Добавить службы ролей» и выбираем «Обычная проверка подлинности» или по англ. Basic  authentication.

Скриншот 11

Открываем заново «Диспетчер служб IIS» и мы замечаем, что в пункте «Проверка подлинности» у нас появился еще один пункт «Обычная проверка подлинности». Для того чтобы ее включить, Вам необходимо отключить «Анонимная проверка подлинности» и соответственно включить «Обычная проверка подлинности». Не забудьте создать пользователей, в данном случае «Локальных пользователей». «Диспетчер сервера ->Конфигурация ->Локальные пользователи» щелкаем правой кнопкой мыши «Создать пользователя», я создал пользователя test. Теперь при обращении к нашему сайту будет появляться форма для аутентификации.

Скриншот 12

Вводите своего пользователя и если Вы все сделали правильно, то Вы опять попадете на свой сайт!

Теперь поговорим о самой любимой связке — это PHP+MySql. Для того чтобы добавить поддержку MySql, достаточно просто установить эту СУБД (подробная установка рассматривается в статье — Установка сервера MySql и обзор средств его управления и администрирования) и все! Можете создавать сайты в связке IIS 7+PHP+MySql.

Я думаю для основы этого вполне достаточно, если возникают вопросы, пишите в комментариях, постараюсь помочь. Удачи!

Понравилась статья? Поделиться с друзьями:
Заметки IT специалиста
Комментарии: 4
  1. Rfootq

    Здравствуйте! Спасибо за статью! Вопрос следующий: каким образом можно зайти на mysite, используя другой компьютер в локальной сети. Правильно ли будет, в адресной строке указать: http://mysite/

  2. Админ (автор)

    Rfootq: Привет, тебе нужно на dns сервере создать А запись т.е. произвести соответствие ip адреса и этого имени(mysite)эт о для того чтобы все в локальной сети смогли зайти на этот адрес. Если только для одного компа то можно прописать в файле hosts(расположе ние C:\Windows\Syst em32\drivers\etc\ на нужном компе) например вот так:
    10.10.10.1 mysite
    где 10.10.10.1 ip адрес web сервера

  3. Кащщей

    ДВС!, Если не сложно то поподробнее хотелось бы узнать, про DNS сервер. В рамках Вашей статьи, такой сервер устанавливается отдельно? либо какая то его часть присутствует в IIS?
    P.S. с файлом Hosts разобрался, Работает, Правда страничка все равно не открылась. В подробных свойствах, где проверка на соединение, стоит желтый треугольник с !знаком. Я выяснил, что нужно установить разрешения, на чтение, и т.д, для папки C:\inetpub\mysi te для IUSR_ИмяКомпа и IIS_IUSR(ИмяСер вера_IUSR). Но при попытки, указать объекта безопасности, Например IUSR_CompName не находит такого…Ну то есть никто в сети не может открыть страничку. Страничка, index.php, содержит phpinfo().
    ОС — win8, IIS 7.0.
    Может что почитать еще дополнительно?

  4. Админ (автор)

    Кащщей: DNS сервер это отдельная роль сервера, в рамках данной статьи он не рассматривается , так как это достаточно обширная тема, весь интернет построен на dns. Если заинтересовало то в интернете полно информации об этом, набери в любом поисковике, для начала «что такое dns» а потом «что такое dns сервер».
    А на счет того что у тебя не открывается страничка, у тебя хоть компьютеры видят друг друга? пингуются? в одной подсети? Когда на этом уровне все нормально только тогда нужно переходить к настройкам сервера

Добавить комментарий для Rfootq Отменить ответ

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!:
Нажимая на кнопку «Отправить комментарий», я даю согласие на обработку персональных данных и принимаю политику конфиденциальности.