Як встановити веб-сервер (Apache, MySQL, PHP та phpMyAdmin) у Windows 11

11 травня 2023 3 хвилин Автор: Lady Liberty

З чого складається веб-сервер для Windows

Веб-сервер як такий, це Apache — він вміє обробляти запити від користувача та надсилати йому запитані файли, наприклад статичні HTML-сторінки, картинки, файли з CSS та JavaScript. Оскільки цього функціоналу зазвичай недостатньо і більшості користувачів потрібна підтримка сторінок, що динамічно створюються, то для цих цілей до Apache підключається PHP в якості модуля веб-сервера. Для зберігання даних використовується та чи інша система управління базами даних (СУБД), зазвичай це MySQL чи MariaDB. СУБД не є модулем Apache або PHP, це окрема мережева служба до якої можуть підключатися різні програми, для нас важливим є те, що з MySQL може працювати PHP. Ці три компоненти є типовими для того, що зазвичай називають “веб-сервер”, хоча, повторюся, насправді веб-сервер це тільки Apache. Досить часто до цих трьох компонентів додають ще й phpMyAdmin. За своєю суттю, phpMyAdmin – це набір скриптів, написаних мовою PHP та призначених для полегшення роботи з базами даних. phpMyAdmin – це веб-інтерфейс для роботи з базами даних.

Насправді, до веб-сервера можна додати/підключити інші скриптові мови, наприклад, Python, Perl, Ruby та інші. У цій статті буде детально показано як встановити, налаштувати і запустити Apache, MySQL, PHP і phpMyAdmin не використовуючи сторонніх збірок. Це ніби покрокова інструкція з установки веб-сервера в Windows. Такий підхід дозволить мати останні версії компонентів і не турбуватися про безпеку програм, що запускаються. Зрозумівши принцип роботи та підключення модулів Apache, ви можете додати будь-які необхідні вам компоненти, а також зробити налаштування в точності під ваші потреби.

Веб-сервери для Windiws 11

Apachehttps://www.apachelounge.com/download/

Інтерфейс Apache Lounge.

PHP: https://windows.php.net/download/. Виберіть версію Thread Safe, зверніть увагу на бітність.

Інтерфейс PHP.

MySQLhttps://dev.mysql.com/downloads/mysql/

Сторінка скачування.

Достатньо натиснути на посилання “No thanks, just start my download”.

Інтерфейс MySQL.

phpMyAdminhttps://www.phpmyadmin.net/downloads/phpMyAdmin-latest-all-languages.zip

Ще потрібний файл Visual C++ Redistributable for Visual Studio 2015-2022, тобто. Поширюваний компонент Visual C++ для Visual Studio 2015-2022 (або будь-який інший пізній), завантажити його можна на офіційному сайті Microsoft за посиланням (пряме посилання на завантаження 64-бітної версії; пряме посилання на завантаження 32-бітної версії). Отже, у мене завантажилися такі файли:

  • VC_redist.x64.exe

  • mysql-8.0.27-winx64.zip

  • httpd-2.4.51-win64-VS16.zip

  • php-8.1.0-Win32-vs16-x64.zip

  • phpMyAdmin-5.1.1-all-languages.zip

Встановіть файл VC_redist.x64.exe. Якщо ви використовуєте Провідник Windows для створення та перейменування конфігураційних файлів, пам’ятайте, що він не показує файлове розширення за промовчанням, тому ви можете бачити my.ini, але насправді це файл my.ini.txt. Тому сервер не бачить цей файл і не застосовує параметри з нього, що веде до помилок. Тому при створенні файлів:

  • або використовуйте Double Commander (Безкоштовний аналог Total Commander), ця програма завжди показує розширення файлів, і взагалі дуже хороший кросплатформовий, з відкритим вихідним кодом, двовіконний менеджер файлів.

  • або увімкніть показ розширень файлів у Провіднику.

Далі створимо структуру каталогів нашого сервера. Головна ідея – розділити файли та файли сайтів з базами даних. Це зручно для обслуговування сервера, зокрема резервного копіювання. У корені диска C: створіть каталог Server. У цьому каталозі створіть 2 підкаталоги: bin (для файлів) і data. Перейдіть в каталог data і створіть там папки DB (для баз даних) і htdocs (для сайтів). Перейдіть до каталогу C:ServerdataDB і створіть там порожню папку data. Карта важливих папок, згаданих у цій інструкції:

 

Встановлення Apache 2.4

Вміст завантаженого архіву (точніше кажучи, лише каталог Apache24), розпакуйте в C:Serverbin. Перейдіть до каталогу c:ServerbinApache24conf і відкрийте файл httpd.conf будь-яким текстовим редактором. У ньому нам потрібно замінити низку рядків.

Відкрийте командний рядок (це можна зробити одночасно натиснувши клавіші Win+x). Виберіть там Термінал Windows (Адміністратор) (Скріншот 1) і скопіюйте туди:

Якщо надійде запит від фаєрвола щодо Apache, то натисніть Дозволити доступ.

Скріншот 1. Інтерфейс установки.

Тепер введіть у командний рядок:

та натисніть Enter (Скріншот 2).

Скріншот 2. Фаєрвол щодо Apache.

Тепер у браузері набираємо http://localhost

Це означає дві речі:

  • Apache працює.

  • У каталозі c:Serverdatahtdocs немає жодного файлу.

Можете погратися – додати до каталогу будь-які html-файли – повноцінний веб-сервер працює.

Скріншот 3. Каталог.

Встановлення та налаштування MySQL 8.0

У каталог bin розпаковуємо файли MySQL (з архіву mysql-8.0.27-winx64.zip). Перейменовуємо папку mysql-8.0.27-winx64 на mysql-8.0 (для стислості). До речі, розпакована папка mysql-8.0 займає понад 800 мегабайт! Заходимо до цієї папки і створюємо там файл my.ini Тепер відкриваємо цей файл будь-яким текстовим редактором. Додайте туди наступні рядки:

Налаштування завершено, але потрібно ще виконати ініціалізацію та встановлення (Скріншот 4), для цього відкриваємо командний рядок від імені адміністратора та послідовно вводимо туди:

Скріншот 4. Генеруємо файли.

Після закінчення цього процесу в каталозі C:ServerdataDBdata повинні з’явитися автоматично згенеровані файли. Тепер служба MySQL запускатиметься при кожному включенні Windows.

Встановлення та налаштування PHP 8

У папці c:Serverbin створіть каталог PHP і скопіюйте вміст архіву php-8.1.1-Win32-vs16-x64.zip. У файлі c:ServerbinApache24confhttpd.conf в самий кінець додаємо рядки (Скріншот 5)

Скріншот 5. Каталог PHP.

Потім перезапустіть Apache

У каталозі c:Serverdatahtdocs створюємо файл з назвою i.php Копіюємо в цей файл:

У браузері відкрийте посилання http://localhost/i.php. Якщо ви бачите те саме, що на картинці, значить PHP працює (Скріншот 6).

Скріншот 6. Інтерфейс PHP.

А далі починаємо налаштовувати PHP. Воно відбувається у файлі php.ini. У zip-архівах, призначених для ручної установки та оновлень, php.ini немає (це зроблено спеціально, щоб випадково не затерти ваш файл, з вашими унікальними налаштуваннями). Зате є два інші, які називаються php.ini-development та php.ini-production. Будь-який з них, при ручній установці, можна перейменувати на php.ini і налаштовувати далі. На локалхості ми будемо використовувати php.ini-development.

Цими діями ми включили розширення. Вони можуть знадобитися у різних ситуаціях для різних скриптів. Збережіть файл та перезапустіть Apache.

Встановлення та налаштування phpMyAdmin

У каталог c:Serverdatahtdocs копіюємо вміст архіву phpMyAdmin-5.1.1-all-languages.zip. Перейменовуємо phpMyAdmin-5.1.1-all-languages ​​на phpmyadmin (для лаконічності) У каталозі c:Serverdatahtdocsphpmyadmin створюємо файл config.inc.php і копіюємо туди:

У браузері набираємо http://localhost/phpmyadmin/ Як ім’я користувача вводимо root. Поле пароля залишаємо порожнім. Якщо все зроблено правильно, то все має виглядати так (Скріншот 7). А далі у каталозі c:Serverdatahtdocs створюйте папки та файли, наприклад: c:Serverdatahtdocstestajax.php – цей файл, відповідно, буде доступний за адресою http://localhost/test/ajax.php і т.д. Для створення повного бекапу всіх сайтів та баз даних достатньо скопіювати каталог C:Serverdata. Перед оновленням модулів, робіть бекап папки bin – у разі виникнення проблем можна буде легко відкотитися до попередніх версій. При повторному встановленні сервера або при його оновленні необхідно знову налаштовувати конфігураційні файли. Якщо у вас є копії цих файлів, процес можна значно прискорити. Бажано забекапити такі файли: c:ServerbinApache24confhttpd.conf c:Serverbinmysql-8.0my.ini c:ServerbinPHPphp.ini c:Serverdatahtdocsphpmyadminconfig.inc.php У них зберігаються всі настройки.

Скріншот 7. Інтерфейс phpMyAdmin.

PHP в даний час дуже потужний, гнучкий, зручний мову програмування та інструмент. На локальному комп’ютері з його можна вирішувати різноманітні завдання, не обов’язково пов’язані з генерацією Web-страниц. При вирішенні неординарних завдань можна впертись у обмеження, встановлені в налаштуваннях. Ці налаштування містяться у файлі php.ini (c:ServerbinPHPphp.ini). Розглянемо деякі з них:

Ми вже налаштували phpMyAdmin і більшість із нас цілком достатньо базового функціоналу. Тим не менш, на стартовій сторінці phpMyAdmin є напис: «Сховище конфігурації phpMyAdmin не повністю налаштоване, деякі розширені функції було вимкнено. Дізнайтесь причину. Або перейдіть на вкладку ‘Операції’ будь-якої бази даних, щоб налаштувати сховище в ній.». Новими можливостями є:

  • Показ зв’язків між (пов’язаними) таблицями;

  • Додавання інформації про таблиці (починаючи з версії 2.3.0 ви можете описувати в спеціальній таблиці ‘table_info’ яка колонка буде показана у підказці під час руху курсором над пов’язаним ключем);

  • Створення PDF-схеми (починаючи з версії 2.3.0, ви можете в phpMyAdmin створювати PDF сторінки, що показують зв’язки між вашими таблицями);

  • Відображати коментарі стовпців (починаючи з версії 2.3.0 ви можете робити коментар з описом кожного стовпця для кожної таблиці. І вони будуть видні у «попередньому перегляді для друку». Починаючи з версії 2.5.0, коментарі використовуються на власних сторінках таблиць та в режимі перегляду, показуючись як підказки над колонками (таблиці властивостей) або вбудовані в заголовок таблиці в режимі перегляду. Вони також можуть бути показані в дампі таблиці);

  • Створювати закладки (починаючи з версії 2.2.0, phpMyAdmin дозволяє користувачам робити закладки на запити. Це може бути корисно для запитів, що часто використовуються);

  • Історія SQL-запитів (починаючи з версії 2.5.0, ви можете зберігати вашу історію всіх SQL запитів, які були зроблені через інтерфейс phpMyAdmin);

  • Дизайнер (починаючи з версії 2.10.0, доступний інструмент Дизайнер;

  • Він дозволяє візуально керувати зв’язками між таблицями);

  • Інформація про недавно використані таблиці;

  • Налаштування інтерфейсу часто використовуваних таблиць;

  • Стеження (починаючи з версії 3.3.x доступний механізм стеження. Він допомагає вам простежити кожну SQL команду, яка була виконана phpMyAdmin’ом. Підтримується запис роботи з даними та запис команд. Після включення, ви зможете робити версії таблиць);

  • Налаштування користувача (починаючи з версії 3.4.x, phpMyAdmin дозволяє користувачам задавати більшість налаштувань і зберігати їх у базі даних);

  • Меню, що настроюються (починаючи з версії 4.1.0 ви можете створювати групи користувачів, яким будуть доступні тільки призначені пункти меню. Користувач може бути визначений до групи і бачитиме лише пункти меню, доступні для його групи);

  • Сховати/показати пункти навігації (починаючи з версії 4.1.0, ви можете сховати/показати пункти в навігаційному дереві).

Перейдіть за посиланням http://localhost/phpmyadmin/index.php?route=/check-relations і клацніть «Створити базу даних з ім’ям “phpmyadmin” і налаштувати там зберігання конфігурації phpMyAdmin»(Скріншот 8).

Скріншот 8. Налаштування зберігання конфігурації.

Після цього всі нові функції будуть активовані (Скріншот 9).

Скріншот 9. Зберігання конфігурації.

Встановлення поштової заглушки та додавання PHP директорії

У каталозі C:Serverbin створіть новий каталог під назвою Sendmail. Тепер у цьому каталозі створіть файл sendmail.php з таким вмістом:

Відкрийте конфігураційний файл PHP, він розміщений тут C:ServerbinPHPphp.ini. І додайте туди один рядок:

Збережіть файл та перезапустіть сервер (Cкріншот 10). Відмінно, тепер усі надіслані листи зберігатимуться в каталозі C:ServerbinSendmailemails Листи матимуть розширення .eml і їх можна відкривати, наприклад, програмою Thunderbird. Або звичайним текстовим редактором.

Скріншот 10. Каталог з листами.

Далі обов’язково потрібно додати PHP директорії до PATH на Windows. Якщо цього не зробити, то можуть бути проблеми з деякими модулями PHP, у тому числі з php_curl.dll, php_intl.dll, php_ldap.dll, php_pdo_pgsql.dll та php_pgsql.dll. 

Натисніть кнопку Пуск, почніть набирати «Зміна системних змінних середовища» (Скріншот 11)

Скріншот 11. Графічний інтерфейс.

Та відкрийте відповідне вікно налаштувань (Скріншот 12).

Скріншот 12. Вікно налаштувань.

Там натисніть “Змінні середовища”. У вікні «Системні змінні» знайдіть та клацніть на Path, потім натисніть «Змінити», далі «Створити» і впишіть туди “C:ServerbinPHP” і підніміть запис вгору. А після цього закрийте всі вікна із збереженням змін та перезапустіть сервер.

Налаштування cURL та резервне копіювання даних

Якщо ви не знаєте, що таке cURL, це вам не потрібно. Тобто. сміливо пропускайте цей крок. cURL – це консольна утиліта, яка дозволяє обмінюватись даними з віддаленими серверами, використовуючи дуже велику кількість протоколів. cURL може використовувати кукіз та підтримує автентифікацію. Якщо веб-програма потребує cURL, то це має бути зазначено в залежностях. Для багатьох популярних програм cURL не потрібно, наприклад, для phpMyAdmin і WordPress немає необхідності налаштовувати cURL. Якщо cURL налаштована неправильно, ви отримуватимете помилки:

або:

Щоб cURL працювала в Apache на Windows, вам потрібно:

  • Обов’язково додати PHP директорію до PATH (системні змінні середовища). Як це зробити сказано трохи вище: https://hackware.ru/?p=17793#12.

  • У файлі C:ServerbinPHPphp.ini має бути розкоментований рядок extension=curl.

  • Необхідно завантажити файл https://curl.haxx.se/ca/cacert.pem, потім у папці C:Server створити нову папку з ім’ям certs і в цю нову папку (C:Servercerts) перемістіть завантажений файл.

  • У файлі C:ServerbinPHPphp.ini знайдіть рядок.

;curl.cainfo = І замініть його на curl.cainfo = C:Servercertscacert.pem:

Перезапустіть сервер. Вся значна інформація, тобто. файли сайтів та їх бази даних зберігаються у папці C:Serverdata. Резервну копію на той випадок, якщо початкові дані зіпсувалися можна робити двома способами.

Перший спосіб полягає в тому, що ми просто робимо копію всіх файлів (сайти + бази даних) у безпечне місце. Це простий метод і для більшості він буде найзручнішим. Потрібно почати з того, що зупинити MySQL, оскільки доки вона не зупинена, деякі файли баз даних відкриті і не можуть бути правильно скопійовані:

Тепер просто скопіюйте в будь-яке надійне місце папку C:Serverdata. Вона вже містить і бази даних (підпапка C:ServerdataDB) і всі сайти (підпапка C:Serverdatahtdocs). Після завершення копіювання знову запустіть службу MySQL:

Якщо вам знадобиться відновити всі сайти, або окремі сайти, або лише окремі файли сайту, це можна робити без зупинки веб-сервера. Якщо потрібно буде відновити бази даних, то знову потрібно буде зупинити MySQL і повернути вихідні файли C:ServerdataDB. Зверніть увагу, що й повністю повертаєте вихідну папку C:Serverdata, відбувається повний відкат всіх даних, тобто. усі зміни, зроблені після створення резервної копії, зникнуть!

Другий спосіб резервного копіювання полягає в експорті баз даних (це робиться при запущеній службі MySQL) та створенні бекапу тільки папки сайтів C:Serverdatahtdocs. Цей спосіб трохи складніший, але ви можете контролювати, які саме бази даних ви бажаєте експортувати. Також у такому вигляді (бази даних у вигляді файлів .SQL та файли сайтів) зручно переносити сайти на інший веб-сервер або хостинг. Зазвичай це не потрібно, але за бажання ви можете зробити резервну копію бінарних файлів сервера. Всі ці файли знаходяться в папці C:Serverbin. Це Apache, MySQL та PHP – тобто. програми, які відповідають за роботу сервера, але які ми будь-якої миті можемо завантажити з офіційних сайтів і знову налаштувати. Якщо ви бажаєте зробити їх резервну копію (наприклад, перед оновленням сервера), то зупиніть служби:

І скопіюйте в безпечне місце папку C:Serverbin. До речі, можна скопіювати весь сервер цілком, тобто. папку C:Server – в цьому випадку одночасно вийти резервна копія і виконуваних файлів, і даних (бази даних, сайти). Після завершення копіювання знову запустіть служби:

Оновлення та видалення сервера

Усі компоненти, що становлять веб-сервер, активно розвиваються і регулярно виходять нові версії. При виході нової версії ви можете оновити один компонент (наприклад, PHP), або відразу кілька.

Оновлення Apache

Завантажте архів із новою версією Apache. Скопіюйте в безпечне місце файл c:ServerbinApache24confhttpd.conf. Зупиніть та видаліть Apache:

Видаліть папку C:ServerbinApache24 (це не торкнеться ваших сайтів і баз даних). Розпакуйте новий архів у C:Serverbin. Скопіюйте збережений раніше файл httpd.conf у c:ServerbinApache24confhttpd.conf. Запустіть службу Apache:

Оновлення PHP

Завантажте архів із новою версією PHP. Скопіюйте в безпечне місце файл c:ServerbinPHPphp.ini. Видаліть папку C:ServerbinPHP. Розпакуйте новий архів у C:ServerbinPHP. Скопіюйте збережений раніше файл php.ini в c:ServerbinPHPphp.ini. Перезапустіть Apache:

Оновлення MySQL

Завантажте архів із новою версією MySQL. Скопіюйте в безпечне місце файл c:Serverbinmysql-8.0my.ini. Зупиніть та видаліть службу MySQL:

Видаліть папку C:Serverbinmysql-8.0 (це не торкнеться ваших сайтів і баз даних). Розпакуйте новий архів у C:Serverbin. Перейменуйте папку на mysql-8.0. Скопіюйте збережений раніше файл my.ini у c:Serverbinmysql-8.0my.ini. Запустіть службу MySQL:

Оновлення phpMyAdmin

Завантажте архів з новою версією phpMyAdmin. Скопіюйте в безпечне місце файл c:ServerdatahtdocsphpMyAdminconfig.inc.php. Видаліть папку C:ServerbinphpMyAdmin (це не зачепить ваші сайти та бази даних). Розпакуйте новий архів у C:Serverdatahtdocs. Перейменуйте папку на phpMyAdmin. Скопіюйте збережений раніше файл config.inc.php у c:ServerdatahtdocsphpMyAdminconfig.inc.php.

Видалення сервера

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

Видаліть файли сервера, видаліть папку C:Server. Увага, це видаляє всі бази даних та ваші сайти.

Інші статті по темі
Знайшли помилку?
Якщо ви знайшли помилку, зробіть скріншот і надішліть його боту.