- 🧭 Вступ
- 🧩 Встановлення XAMPP
- 🟢 Перший запуск Apache
- ❗ Типові проблеми та їх рішення
- ⚙️ Корисні команди для діагностики
- 🌐 Налаштування віртуальних хостів (локальних доменів)
- 🧠 Поради та типові помилки
- 🎯 Підсумок
- 📚 Висновок
🧭 Вступ
XAMPP — це локальний серверний пакет, що містить Apache, MySQL (MariaDB), PHP і Perl.
Служба Apache є його ядром — саме вона обслуговує ваш сайт, коли ви відкриваєте http://localhost.
Проте багато розробників стикаються з помилками при запуску Apache:
- ❌ «Не вдалося запустити службу Apache2.4. Код помилки 1»
- ⚠️ «Порт 80 уже зайнятий»
- 🔒 «Ваше з’єднання не є приватним» або «NET::ERR_CERT_COMMON_NAME_INVALID»
Цей детальний посібник пояснює усі кроки — від встановлення до усунення найпоширеніших помилок.
🧩 Встановлення XAMPP
- Завантажте останню версію XAMPP з офіційного сайту:
👉 https://www.apachefriends.org/download.html - Встановіть XAMPP у простий шлях (без пробілів і кирилиці), наприклад:
E:\xampp - Після встановлення запустіть XAMPP Control Panel від імені адміністратора.
🟢 Перший запуск Apache
- У панелі XAMPP натисніть Start поруч із Apache.
- Якщо все добре, ви побачите:
Apache ... running - Відкрийте у браузері:
http://localhost/Має відкритися вітальна сторінка XAMPP.
Якщо Apache не запускається — читайте далі.
❗ Типові проблеми та їх рішення
⚙️ 1. «Не вдалося запустити службу Apache2.4. Код помилки 1»
Причина: пошкоджений конфігураційний файл або відсутній SSL-ключ.
Перевірка:
Відкрийте PowerShell або CMD від імені адміністратора:
cd E:\xampp\apache\bin
.\httpd.exe -t
Якщо з’явиться:
AH00526: Syntax error on line 158 of E:/xampp/apache/conf/extra/httpd-ssl.conf:
SSLCertificateKeyFile: file 'E:/xampp/apache/conf/ssl/server.key' does not exist or is empty
— сертифікат SSL відсутній.
Рішення:
Згенеруйте новий самопідписаний сертифікат:
cd E:\xampp\apache\bin
.\openssl.exe req -x509 -nodes -days 1095 -newkey rsa:2048 `
-keyout "../conf/ssl/server.key" `
-out "../conf/ssl/server.crt"
Ви можете просто натискати Enter або ввести дані вручну:
Країна: UA Область: Україна Місто: Київ Організація: hypo69 Common Name: localhost
🔒 2. «Ваше з’єднання не є приватним» або NET::ERR_CERT_COMMON_NAME_INVALID
Причина: сучасні браузери (Chrome, Edge, Firefox) більше не приймають сертифікати з лише CN=localhost.
Потрібне поле subjectAltName (SAN).
Рішення:
- Створіть новий файл:
E:\xampp\apache\conf\openssl-local.cnf - Вставте цей вміст:
[ req ] default_bits = 2048 prompt = no default_md = sha256 x509_extensions = v3_req distinguished_name = req_distinguished_name [ req_distinguished_name ] C = UA ST = Україна L = Київ O = hypo69 OU = Dev CN = localhost [ v3_req ] subjectAltName = @alt_names [ alt_names ] DNS.1 = localhost IP.1 = 127.0.0.1 - Згенеруйте сертифікат:
cd E:\xampp\apache\bin .\openssl.exe req -config "E:\xampp\apache\conf\openssl-local.cnf" ` -x509 -nodes -days 1095 -newkey rsa:2048 ` -keyout "../conf/ssl/server.key" ` -out "../conf/ssl/server.crt" - Додайте сертифікат до довірених у Windows:
Import-Certificate -FilePath "E:\xampp\apache\conf\ssl\server.crt" ` -CertStoreLocation Cert:\LocalMachine\Root(або вручну: Встановити сертифікат → Локальний комп’ютер → Довірені кореневі центри сертифікації) - Перезапустіть Apache:
net stop apache2.4 net start apache2.4
✅ Тепер https://localhost і https://127.0.0.1 відкриватимуться без попереджень.
🔌 3. «Порт 80 або 443 уже використовується»
Перевірка:
netstat -ano | findstr :80
netstat -ano | findstr :443
Якщо порт зайнятий, знайдіть процес:
tasklist | findstr <PID>
Типові причини:
- Skype
- IIS (служба World Wide Web Publishing)
- VMware
- Edge Update Service
Рішення:
- Зупиніть або вимкніть службу, яка займає порт.
- Або змініть порти Apache:
Відкрийте E:\xampp\apache\conf\httpd.conf:
Listen 80
→ змініть на:
Listen 8080
У файлі E:\xampp\apache\conf\extra\httpd-ssl.conf:
Listen 443
→ змініть на:
Listen 8443
Тепер відкрийте:
http://localhost:8080
https://localhost:8443
🔥 4. «Service Control Manager 7024: неправильна функція»
Причина: запис служби Apache у реєстрі Windows пошкоджений.
Рішення:
Перереєструйте службу Apache:
cd E:\xampp\apache\bin
httpd.exe -k uninstall
httpd.exe -k install
📄 5. Журнали помилок Apache
Усі журнали зберігаються тут:
E:\xampp\apache\logs\error.log
Перегляньте останні записи:
Get-Content E:\xampp\apache\logs\error.log -Tail 30
⚙️ Корисні команди для діагностики
| Команда | Опис |
|---|---|
httpd.exe -t | Перевірка конфігурації Apache |
httpd.exe -S | Показує віртуальні хости |
net start apache2.4 | Запускає службу Apache |
net stop apache2.4 | Зупиняє службу Apache |
netstat -ano | Показує активні порти |
| `tasklist | findstr PID` |
certmgr.msc | Відкриває менеджер сертифікатів |
services.msc | Відкриває служби Windows |
🌐 Налаштування віртуальних хостів (локальних доменів)
Ви можете зробити так, щоб ваш проект billing-crm відкривався за адресою https://crm.local, а не localhost/billing-crm.
- Відредагуйте файл hosts:
C:\Windows\System32\drivers\etc\hostsДодайте:127.0.0.1 crm.local - Відредагуйте:
E:\xampp\apache\conf\extra\httpd-vhosts.confДодайте:<VirtualHost *:443> ServerName crm.local DocumentRoot "E:/xampp/htdocs/billing-crm" SSLEngine on SSLCertificateFile "E:/xampp/apache/conf/ssl/server.crt" SSLCertificateKeyFile "E:/xampp/apache/conf/ssl/server.key" </VirtualHost> - Перевірте конфігурацію:
httpd.exe -t - Перезапустіть Apache і відкрийте:
https://crm.local
🧠 Поради та типові помилки
| Проблема | Причина | Рішення |
|---|---|---|
| Apache не запускається при старті | конфлікт портів | запустіть XAMPP вручну |
| «З’єднання не є безпечним» | відсутній SAN | створіть сертифікат із alt_names |
| HTTPS не працює | неправильний порт або ключ | перевірте httpd-ssl.conf |
| Firefox все ще показує попередження | має власне сховище сертифікатів | імпортуйте server.crt вручну |
index.php порожній | пошкоджений проект | відновіть із Git або резервної копії |
🎯 Підсумок
| Крок | Мета | Команда |
|---|---|---|
| Перевірка конфігурації | Перевірити синтаксис Apache | httpd.exe -t |
| Генерація SSL | Створити сертифікат localhost | openssl req -config ... |
| Додати довіру до сертифіката | Уникнути попереджень HTTPS | Import-Certificate |
| Перевірити порти | Переконатися, що 80/443 вільні | netstat -ano |
| Запустити Apache | Увімкнути службу | net start apache2.4 |
📚 Висновок
Після виконання цих кроків:
- Apache запускається без помилок.
- HTTPS працює без попереджень у браузері.
localhost,127.0.0.1і домени на кшталтcrm.localє повністю довіреними.- Ви можете розробляти й тестувати сайти локально, як на справжньому продакшн-сервері.