Windows 2012 R2 + IIS + MS SQL PHP установка, настройка, підводні камені

Поспішаю поділитися досвідом встановлення та налаштування зазначених у назві монстрів!



На жаль, така зв'язка не така популярна, щоб знайти щось вартісне по цій темі в пошукових системах. Але мені вдалося уривками і шматками все-ж зловити свій Дзен.

У даному прикладі я буду використовувати свої переваги студента. Тому ПО від Microsoft я буду брати максимально свіже за програмою Dreamspark.

Отже, складемо задачу.
1. Встановити MS SQL Server 2014;
2. Встановити роль «Веб-сервер IIS)» версії 8;
3. Встановити PHP 5.4.24;
4. І, звичайно ж, змусити все це працювати у зв'язці на Windows 2012 R2 (встановлення та підготовку сервера я розглядати, звичайно, не буду).

В наявності є домен: test.local

Установка і настройка MS SQL Server 2014
Ускладнити цей етап я вирішив лише тим, що сервер з БД у нас буде виділеним. Оскільки в більшості випадків саме тоді виникає необхідність «прикрутити» IIS+PHP, коли база вже чимось «набита» і більше того, знаходиться віддалено.

Ім'я сервера: sql.test.local

Установка проходить вкрай примітивно, натисніть «Далі». У мене були встановлені всі компоненти примірника, за винятком «Реплікації SQL Server». Вказані стандартні шляхи.
Обраний свій, іменований примірник «bd».



Стандартні облікові записи служб.



Обраний «Змішаний режим». Вибрано пароль MSsql2014облікового запису «sa», а так-же додано поточний користувач системи. (Натиснути кнопку «Додати користувача».



Таким чином. Ми закінчили установку MS SQL Server 2014.
Тепер ви можете створити тестову базу з допомогою, що йде в комплекті з установкою, Microsoft SQL Server Management Studio. В даному прикладі ім'я БД «test». (Деякі дані на скріні, такі як Сервер, З'єднання, Власник були навмисне затерті на скріні, тому справжні скріни з тестового полігону були загублені).



Тепер ми відразу налаштуємо можливість підключення до поточного екземпляру «ззовні» (в даному прикладі з локальної мережі).
Для цього нам необхідно відкрити оснащення Sql Server Configuration Manager. Перейти в розділ Мережева конфігурація SQL Server — Протоколи для BD і відкрити властивості TCP/IP. Перейти на вкладку IP-адреси і найважливіше, що тут необхідно зробити, це: вказати порт 1433 (в даному прикладі використовується порт за замовчуванням) для необхідного IP адреси (в даному прикладі адресу сервера з MS SQL 192.168.2.27) і встановити з'єднання з цього IP активним. IPv6 і інші адреси — ви можете включити або відключити, за своєю необхідності. (Важливе зазначено на скріншоті).



Після застосування налаштувань ви отримаєте відповідне повідомлення.
Після цього нам необхідно вибрати Служби SQL Server. І перезапустити SQL Server (BD).



Залишився фінальний етап. Створити відповідне правило Брандмауера. А саме дозволити вхідні з'єднання на порту 1433. Для більш детального ознайомлення з цим процесом можна звернутися за керівництвом на msdn.

У моєму ж випадку брандмауер просто вимкнений. (Подібну практику ні в якому разі не рекомендую, як керівництво до дії).



Отже, сервер MS SQL, у нас встановлений і налаштований для зовнішніх підключень.

Далі встановлюємо штатними засобами роль Веб-сервера IIS).

В компонентах додатково ставимо галку навпроти: функції .NET Framework 3.5, який включає в себе версію .NET 2.0 (він нам потрібно для установки Диспетчера PHP, трохи нижче).

В компонентах самого IIS — достатньо залишити все за замовчуванням.

А от далі, напевно, найголовніше. Ми качаємо і встановлюємо Веб-платформу від Microsooft.
Цей чудесний інструмент допоможе нам вирішити багато проблем.

Установка примітивна, тому не буду її детально описувати.

Після запуску веб-платформи вам будуть доступні для установки дуже багато компонентів. Веб-платформа автоматично вибирає мову, грунтуючись на встановленому в системі. Тому у мене російські назви продуктів. Якщо у вас Windows встановлений з іншою локалізацією — назви продуктів можуть відрізнятися!

Прямуємо в продукти і вибираємо те, що нам необхідно:

PHP 5.4.9 (на момент написання статті до установки була допустима версія PHP 5.6.0, а так-ж версія PHP 5.5.11 але на жаль, як я не танцював — змусити їх працювати на php-cgi так і не вдалося. Можливою причиною тому — відсутність драйверів в списку).
Разом з цим продуктом автоматично поставляються ще 2:
Диспетчер PhP для IIS — дуже корисний і зручний в обігу. (саме для нього і потрібно компонент .NET Framework 3.5\2.0).
Драйвери Microsoft 3.0 для PhP версії 5.4 для SQL Server, IIS (як раз ті самі драйвера, яких немає в наявності веб-платформи для версій 5.5.11 і 5.6.0



На цьому первинна установка готова. Як виявилося — все легко і без проблем.

Тепер можна відкрити диспетчер PHP в IIS і вибрати функцію «Перевірити phpinfo()». Дійсно, дуже зручно! Тут же вам будуть дані рекомендації з оптимальної конфігурації PHP, крім того, ви можете встановити або видалити розширення PHP.



Після перегляду phpinfo, переконавшись, що все працює відмінно, можна створити тестовий скрипт, який перевірить наше підключення до БД.
Спасибі «невідомому солдату» з пісочниці. Саме з статті я запозичив цей скрипт.

<?php

$serverName = "SQL\BD"; // Пишемо ім'я комп'ютера з БД і ім'я екземпляра. якщо instance і port стандартні, то можна не вказувати
$connectionInfo = array("UID" => "sa", "PWD" => "MSsql2014", "Database"=>"test"); //У принципі отже все зрозуміло, UID - ім'я користувача. PWD - Пароль і наша створена тестова база даних
$conn = sqlsrv_connect( $serverName, $connectionInfo);

if( $conn )
{
echo "Connection established.\n";
}
else
{
echo "Connection could not be established.\n";
die( print_r( sqlsrv_errors(), true));
}


/* Close the connection. */
sqlsrv_close( $conn);
?>


Якщо все пройшло успішно, і ви нічого не пропустили, то результатом виконання у вас буде напис:

Connection established.

В іншому випадку, ви побачите:

Connection could not be established. І помилки, отримані в результаті обробки.

Сподіваюся, нічого не забув. І буду радий, якщо ця стаття комусь знадобиться!

Використані джерела
Web Platform від Microsoft
Трохи MSDNа
Стаття з пісочниці

Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.