Windows Server. Налаштовуємо веб-сервер IIS. Про службу Microsoft Internet Information Services (IIS)

Зазвичай, коли говорять про 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-служби до мережевим інтерфейсамта портів, а також налаштуйте параметри безпеки. Якщо ви збираєтеся використовувати 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 безпосередньо на комп'ютері, де вони встановлені. Для вирішення проблем локального та віддаленого адмініструванняє два засоби: якщо з'єднання з сервером встановлюється через Інтернет або через проксі-сервер, можна використовувати Менеджер служб Інтернету (HTML)(Internet Services Manager (HTML)), який доступний через веб-браузер і дозволяє налаштовувати різні властивості вузлів; якщо з'єднання з сервером встановлюється через інтраєєть, можна використовувати або диспетчер служб Інтернету (HTML), або оснащення Хоча диспетчер служб Інтернету (HTML) і надає більшість можливостей оснастки, проте зміна властивостей, що потребує взаємодії з утилітами Windows, не може бути виконано за його допомогою. Увага : В попередньої версії IIS оснастка для управління службами називалася Internet Services Manager. У Windows 2000 оснастка називається Internet Information Services, а ярлик у меню Пуск - Диспетчер служб Інтернету(Internet Services Manager).

Також для віддаленого адміністрування доступна онлайнова версія документації. Щоб звернутися до документації, запустіть браузер та введіть у поле адреси URL http://ім'я_cepвepa/iishelp, де ім'я_сервера -реальне доменне ім'я комп'ютера, у якому функціонують служби IIS.

Для віддаленого керування IIS можна використовувати можливості служб терміналів (Terminal Services). Дистанційне керування може здійснюватися з комп'ютера під керуванням будь-якої ОС, для якої існує клієнт служб терміналів Microsoft, при цьому на віддаленому комп'ютеріне потрібно встановлювати жодні засоби адміністрування IIS.

Оснащення Internet Information Services.Оснащення Internet Information Services(Мал. 22.1) - засіб адміністрування IIS, доступна з меню Пуск | Програми Адміністрація | Диспетчер служб Інтернету(Start | Programs | Administrative Tools | Internet Services Manager). Також вона включена до складу оснастки Керування комп'ютером(Computer Management).

Для запуску оснастки Internet Information Services:

  1. Запустіть оснащення Керування комп'ютером.Один із способів – натиснути кнопку Пуск(Start), а потім у меню вибрати команду Пуск | Програми Адміністрація | Керування комп'ютером(Programs | Administrative Tools | Computer Management).
  2. У дереві у групі Служби та програми(Services and Applications) знайдіть та розгорніть вузол Internet Information Services.

    Примітка : Для зручності засіб адміністрування US (що є оснащенням Internet Information Services) будемо також називати по імені ярлика з меню Пуск (Start) - Диспетчер служб Інтернету (Internet Services Manager).

Менеджер служб Інтернету (HTML).Для керування властивостями IIS у диспетчері служб Інтернету (HTML)4 (рис. 22.2) використовується вузол, який у списку вузлів відображається як Адміністрація веб-сайту(Administration Web Site). При установці IISавтоматично випадково вибирається номер порту в діапазоні від 2000 до 9999, який призначається цьому веб-сайту. Вузол відповідає на запити веб-браузерів незалежно від того, до якого доменному імені(з пов'язаних з цим комп'ютером) відбувається звернення, коли номер порту, який додається в кінці до імені вузла. Якщо використовується базова (basic) автентифікація, то ад адміністратора при підключенні до адміністративного вузла буде запрошено ім'я користувача та пароль. Тільки члени групи WindowsАдміністратори можуть використовувати цей адміністративний вузол. Також керувати вузлом дистанційно можуть оператори вузла (Web Site Operators). Хоча HTML-версія диспетчера служб Інтернету реалізує більшість функціональних можливостейоснастки IIS, версія з використанням HTMLпризначена для віддаленого управління по повільних комутованих лініях. У ній не підтримується, наприклад, клацання правою кнопкою миші. Багато знайомих кнопок на панелі або заголовки вкладок відображаються у вигляді гіперпосилань у лівій панелі вікна браузера.

Встановлення та конфігурування IIS

У більшості випадків у реальних виробничих проектах один або кілька серверів використовуватимуться для обслуговування клієнтських запитів веб-сайту. Ці сервери можуть належати і керуватися безпосередньо вами, спеціалізованою командою або сторонньою компанією, що надає послуги хостингу. У будь-якому випадку рано чи пізно настає момент, коли написання коду та його тестування завершено, і робота має бути представлена ​​широкому загалу - в цьому і полягає розгортання веб-сайту.

У цій та наступних статтях ми розглянемо різні варіантирозгортання. Однак у всіх випадках основні причини залишаються незмінними. на робочої станціїє готовий веб-сайт, який потрібно розвернути на сервері, щоб він був доступний клієнтам. Для ASP.NET таким сервером є IIS (Internet Information Services - інформаційні службиІнтернету), а його поточною версією- IIS 8. Коли він був вперше реалізований, IIS був базовим веб-сервером. З роками IIS розвинувся в складний сервер додатків, що надає безліч функціональних засобів, найбільш важливим з яких є підтримка хостингу додатків ASP.NET.

У цій статті основна увага приділяється IIS 8. Хоча машина, на якій запущено IIS 8, тут називається сервером, можна запускати IIS під керуванням версій Windows як для робочої станції, так і для сервера. На робочих станціях є не всі, але більшість функціональних можливостей, що дозволяє розміщувати складні веб-сайти. По можливості ми рекомендуємо використовувати Windows ServerОднак недорогою альтернативою можуть бути Windows 7 або Windows 8.

У Microsoft прив'язують випуски IIS з випусками Windows. У склад Windows Server 2008 та Windows Vistaвходить версія IIS 7.0, до складу Windows Server 2008 R2 і Windows 7 – версія IIS 7.5, а до складу Windows Server 2012 та Windows 8 – IIS 8. Версії – 7.0 та 7.5 – у Microsoft узагальнено називають IIS 7, що може вносити плутанину. Версію IIS, яку підтримує операційна система, змінити не можна - Windows Server 2008 використовуватиме лише IIS 7.0. Наприклад, модернізувати її до версії IIS 7.5, яка використовується у Windows Server 2008 R2, не вдасться.

Встановлення IIS

Компонент IIS включений як частину установки Windows(як для сервера, так для робочих станцій) і вимагає активізації та конфігурування. Далі представлені три способи активації IIS для різних операційних систем.

Встановлення IIS на настільних версіях Windows (Windows Vista, Windows 7 та Windows 8)

Кожна версія операційної системи Windows пропонує свою версію IIS - IIS 8 (у Windows 8), IIS 7.5 (у Windows 7) або IIS 7 (у Windows Vista). У всіх цих версіях Windows IIS включений, але спочатку не встановлений. Щоб встановити його, необхідно виконати такі дії:

Встановлення IIS у Windows Server 2008

Встановлення та налаштування IIS однакові для Windows Server 2008 і Windows Server 2008 R2. Необхідні кроки описані нижче:

    Відкрийте диспетчер сервера. Щоб це зробити, натисніть кнопку Start і виберіть All Programs --> Administrative Tools --> Server Manager.

    Виберіть вузол Roles у дереві ліворуч.

    Виконайте необхідні діїу майстрі. Вас мабуть попросять встановити додаткові необхідні ролі - якщо це так, потрібно просто прийняти операції та продовжити.

    Після інсталяції вам буде запропоновано налаштувати веб-сервер. Як в настільних версіях Windows, можна вибрати специфічні особливості IIS 7, які повинні бути включені.

    Якщо ви працюєте в ASP.NET з версією .NET Framework 4.5, то цю версію .NET Framework необхідно буде встановити (центр розробників .NET Framework)

Встановлення IIS у Windows Server 2012

Процес встановлення IIS в Windows Server 2012, по суті, такий самий, як і в Windows Server 2008. Основна відмінність полягає в тому, що користувальницький інтерфейсдещо відрізняється. Докладний описВи можете знайти , перейшовши за посиланням Installing IIS 8 on Windows Server 2012 .

Управління IIS

При установці IIS, він автоматично створює каталог з ім'ям C: inetpub wwwroot, який представляє ваш веб-сайт. Всі файли в цьому каталозі відображатимуться, ніби вони знаходяться в кореневому каталозі вашого веб-сервера.

Щоб додати додаткові сторінкина ваш веб-сервер, можна скопіювати файли HTML, ASP або ASP.NET безпосередньо до каталогу C:\Inetpub\wwwroot. Наприклад, якщо додати файл TestFile.html у цей каталог, ви можете запросити його в браузері через URL http://localhost/TestFile.html. Ви навіть можете створювати вкладені папки для групування пов'язаних ресурсів. Наприклад, можна отримати доступ до C:\inetpub\wwwroot\MySite\MyFile.html через браузер, використовуючи URL-адресу http://localhost/MySite/MyFile.html.

Каталог wwwroot зручний для запуску простих прикладівта статичних сторінок. Для правильного використання ASP.NET ви повинні зробити свій власний віртуальний каталог для кожного веб-застосунку, який ви створюєте. Наприклад, ви можете створити папку з будь-яким ім'ям на будь-якому диску вашого комп'ютера і помістити її у віртуальний каталог IIS як вона розташована в каталозі C:\inetpub\wwwroot.

Перш ніж розпочати роботу, вам потрібно запустити диспетчер служб IIS. Його можна знайти в меню Start(Пуск). Конкретне розташування може залежати від використовуваної версії Windows(IIS -> Диспетчер служб IIS). Ярлик програми буде розміщено в розділі Programs (Програми) або Administrative Tools (Адміністрація). початкова сторінка IIS Manager показано на малюнку нижче:

Тепер потрібно ознайомитись із рядом термінів, що використовуються в IIS. У лівій частині вікна IIS Manager відображається запис з ім'ям сервера, що використовується. Наш сервер має ім'я PROFESSORWEB, згенероване по замовчуванням Windows 8, яке буде використовуватись у більшості прикладів. У центральній області відображається представлення сервера. Ця вистава відображає набір піктограм, які дозволяють конфігурувати параметри сервера. У правій частині екрана розташований список доступних дій. Наприклад, у цьому поданні можна запускати, зупиняти та перезапускати сервер.

Якщо розгорнути елемент сервера в деревоподібному поданні в лівій частині екрана, з'явиться елемент Sites (Сайти), який містить єдиний запис Default Web Site (Веб-сайт за замовчуванням). Сайт - це колекція файлів та каталогів, що утворюють веб-сайт. На одному сервері IISможе підтримувати кілька сайтів, як правило, на різних портах TCP/IP (за промовчанням використовується порт 80). Поєднання імені сервера та порту сайту утворює першу частину URL-адреси. Наприклад, при використанні сервера mywebserver з сайтом, підключеним до порту 80, URL-адреса виглядає так:

http://mywebserver:80

Кожен сайт може містити безліч файлів та каталогів. Кожен із них утворює частину URL-адреси. Так, URL-адреса статичної сторінки mypage.html, розташованої в каталозі myfiles, буде такою:

http://mywebserver:80/myfiles/mypage.html

У деяких ситуаціях ім'я, під яким сервер відомий вам, та ім'я, яке клієнти використовують для отримання вмісту, відрізнятимуться. Ми залишимо цей нюанс без уваги, але адміністратор сервера чи компанія, що надає послуги хостингу, нададуть необхідні відомостіякщо це важливо для конкретного сервера.

Щоб перевірити працездатність IIS, виберіть Default Web Site та у правій області диспетчера IIS виберіть пункт "Запустити". Після цього натисніть кнопку "Огляд *.80 (http)", щоб відкрити сторінку сайту в браузері:

Як бачите, у моєму випадку я змінив порт, який використовується за замовчуванням (з 80 на 8080). Я це зробив, т.к. на 80-му в мене запущено локальний Apache-сервер. Якщо у вас виникає така ж проблема, то змінити порт можна клацнувши правою кнопкою миші по сайту (Default Web Site) і вибравши в контекстному меню"Змінити прив'язки" (Bindings). Після цього в діалоговому вікні можна змінити стандартний порт.

Отже, кожен сервер може підтримувати безліч сайтів, кожен з яких працює на іншому порту або з іншою IP-адресою. Кожен сайт може мати безліч файлів та каталогів, і поєднання цих елементів надає інформацію про URL-адресу. Ми повернемося до URL-адрес та використання IIS Manager при розгляді кожного з підходів до розгортання.

Встановлення веб-сервера 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 можна прописати будь-яке інше кодування.