Information services iis версии 10.0. Скрипты для администрирования

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.

Обычно, когда говорят о 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 и, щелкнув правой кнопкой на пункте Базы данных в боковом меню, создайте новую базу.

Для установки CMS наберите в браузере адрес сайта и следуйте указаниям скрипта установки. Никаких сложностей там нет, единственное затруднение может вызвать правильное указание параметров подключения к SQL-серверу. Укажите что вы используете SQL Server (или SQL Express)

В строке подключения ниже укажите следующее:

server=SERVERNAME\SQLEXPRESS;database=iissite;user=sa;password=sapasswd;
  • server=SERVERNAME\SQLEXPRESS - имя сервера, на котором установлен SQL-сервер, и экземпляра SQL-сервера.
  • database=iissite - имя базы данных (в нашем случае iissite)
  • user=sa - пользователь СУБД (в нашем случае sa)
  • password=sapasswd - пароль пользователя sa.
IIS более не является частью установки по умолчанию.

Ниже приведены основные шаги по установке IIS .

  • В Control Panel (Панель управления) щелкните на значке Add or Remove Programs (Установка и удаление программ) для открытия диалогового окна.
  • Щелкните на кнопке Add/Remove Windows Components (Установка/удаление компонентов Windows) для запуска мастера компонентов Windows (Windows Components Wizard).
  • Щелкните на компоненте Application Server (Сервер приложений), после чего нажмите на кнопку Details (Подробности).
  • Компоненты IIS располагаются в области Internet Information Services (IIS).

Если отметить опцию IIS , то будут установлены только компоненты по умолчанию. Для установки дополнительных компонентов их следует указать вручную.

При нажатии на кнопку Details (Подробности) появится список компонентов IIS (см. рис. 1.1).

Выберите все необходимые компоненты, затем три раза нажмите на кнопку OK, чтобы вернуться к главному окну Windows Components (Компоненты Windows). После нажатия на кнопку Next (Далее) вставьте компакт-диск Windows 2003, если он еще не находится в считывающем устройстве.


Рис. 1.1.

Серверные расширения Background Intelligent Transfer Service (BITS)

Компонент Серверные расширения BITS состоит из двух частей: фильтра ISAPI (Internet Server Application Programming Interface) – интерфейса прикладного программирования интернет-сервера для отгрузки данных через BITS – и оснастки серверных расширений.

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

BITS устанавливается вместе с Windows 2003 и Windows XP и существует в виде отдельной надстройки в Windows 2000.

Общие файлы (Common Files)

Для работы IIS необходима установка данного компонента.

Служба протокола передачи файлов (FTP)

Компонент не устанавливается по умолчанию. Служба FTP позволяет создавать FTP-сервер, используемый для отгрузки или загрузки файлов.

Серверные расширения FrontPage 2002

Компонент необходим для отгрузки веб-сайтов пользователей непосредственно из Microsoft FrontPage или Visual InterDev. Он позволяет создателям веб-страниц осуществлять контроль на веб-сервере, поэтому установка данного компонента является угрозой безопасности.

Диспетчер IIS (Internet Information Services Manager)

Опции данного компонента позволяют настраивать и открывать для общего доступа принтеры через HTTP, аналогично функциям веб-печати в Windows 2000 Server. Для WS03 данная служба является необязательной.

Служба NNTP

Компонент устанавливает сервер новостей для создания групп новостей.

Служба SMTP

Служба SMTP позволяет отправлять электронную почту с сервера IIS. Используется для веб-сайтов, осуществляющих отправку электронной почты.

Служба WWW

Служба WWW является основной службой, обеспечивающей работу служб HTTP. Содержит несколько компонентов.

Active Server Pages (ASP) . Устанавливает динамические библиотеки ASP и другие файлы для работы ASP на веб-сервере. Компонент устанавливается всегда, хотя отключен по умолчанию.

Internet Data Connector (IDC) . Реализует работу с базой данных на веб-сайте.

Remote Administration (HTML) . Позволяет выполнять удаленное администрирование IIS через веб-браузер. Отличается от предыдущих версий по HTML-администрированию IIS, которые разрешали администрирование только одного сервера.

Remote Desktop Web Connection (Подключение к удаленному рабочему столу). Компонент устанавливает элементы управления ActiveX для подключения браузера Internet Explorer к сеансу сервера терминала с использованием предоставляемых страниц. Этот компонент в Windows 2000 назывался Terminal Services Advanced Client.

Server Side Includes (Включения серверной части). Компонент обеспечивает поддержку включений серверной части и устанавливается всегда.

WebDAV Publishing . Представляет собой набор расширений HTTP, позволяющий пользователям осуществлять доступ и управлять файлами в опубликованных с его помощью каталогах на веб-сервере. Компонент устанавливается всегда.

World Wide Web Service (Служба WWW). Компонент является ядром приложения службы WWW, без него невозможна работа многих компонентов IIS.

Службы IIS

Существует несколько служб для поддержки IIS, их перечень приведен в панели управления службами в WS03. Набор служб зависит от установленных компонентов IIS. Если компонент не установлен, то связанная с ним служба в панели управления службами не отображается.

Служба IIS Admin является главной службой администрирования IIS, остальные службы зависят от нее. При остановке службы остальные службы IIS будут также остановлены.

FTP Publishing . Обеспечивает работу FTP-сервера в IIS.

World Wide Web Publishing . Обеспечивает работу веб-сервера в IIS.

Simple Mail Transfer Protocol (SMTP) . Обеспечивает работу сервера SMTP в IIS.

Network News Transfer Protocol (NNTP) . Обеспечивает работу NNTP-сервера в IIS.

HTTP SSL . Необходима для выполнения службой WWW Publishing функции сертификации SSL.

Совет . Службы связаны между собой таким образом, что службу, для функционирования которой необходима работа другой службы, нельзя включить без второй службы. Эти зависимости показаны на вкладке Dependencies окна Properties (Свойства) службы.

Продолжаем изучать 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.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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