Перейти до вмісту
> 💻 🧠 Код 1001 > 🧪📓 Без категорії > 🚀 Повний посібник: як запустити Apache у XAMPP на Windows (з усіма типовими проблемами)

🚀 Повний посібник: як запустити Apache у XAMPP на Windows (з усіма типовими проблемами)

  • від

🧭 Вступ

XAMPP — це локальний серверний пакет, що містить Apache, MySQL (MariaDB), PHP і Perl.
Служба Apache є його ядром — саме вона обслуговує ваш сайт, коли ви відкриваєте http://localhost.

Проте багато розробників стикаються з помилками при запуску Apache:

  • ❌ «Не вдалося запустити службу Apache2.4. Код помилки 1»
  • ⚠️ «Порт 80 уже зайнятий»
  • 🔒 «Ваше з’єднання не є приватним» або «NET::ERR_CERT_COMMON_NAME_INVALID»

Цей детальний посібник пояснює усі кроки — від встановлення до усунення найпоширеніших помилок.


🧩 Встановлення XAMPP

  1. Завантажте останню версію XAMPP з офіційного сайту:
    👉 https://www.apachefriends.org/download.html
  2. Встановіть XAMPP у простий шлях (без пробілів і кирилиці), наприклад: E:\xampp
  3. Після встановлення запустіть XAMPP Control Panel від імені адміністратора.

🟢 Перший запуск Apache

  1. У панелі XAMPP натисніть Start поруч із Apache.
  2. Якщо все добре, ви побачите: Apache ... running
  3. Відкрийте у браузері: 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).

Рішення:

  1. Створіть новий файл: E:\xampp\apache\conf\openssl-local.cnf
  2. Вставте цей вміст: [ 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
  3. Згенеруйте сертифікат: 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"
  4. Додайте сертифікат до довірених у Windows: Import-Certificate -FilePath "E:\xampp\apache\conf\ssl\server.crt" ` -CertStoreLocation Cert:\LocalMachine\Root (або вручну: Встановити сертифікат → Локальний комп’ютер → Довірені кореневі центри сертифікації)
  5. Перезапустіть 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

Рішення:

  1. Зупиніть або вимкніть службу, яка займає порт.
  2. Або змініть порти 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Показує активні порти
`tasklistfindstr PID`
certmgr.mscВідкриває менеджер сертифікатів
services.mscВідкриває служби Windows

🌐 Налаштування віртуальних хостів (локальних доменів)

Ви можете зробити так, щоб ваш проект billing-crm відкривався за адресою https://crm.local, а не localhost/billing-crm.

  1. Відредагуйте файл hosts: C:\Windows\System32\drivers\etc\hosts Додайте: 127.0.0.1 crm.local
  2. Відредагуйте: 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>
  3. Перевірте конфігурацію: httpd.exe -t
  4. Перезапустіть Apache і відкрийте: https://crm.local

🧠 Поради та типові помилки

ПроблемаПричинаРішення
Apache не запускається при стартіконфлікт портівзапустіть XAMPP вручну
«З’єднання не є безпечним»відсутній SANстворіть сертифікат із alt_names
HTTPS не працюєнеправильний порт або ключперевірте httpd-ssl.conf
Firefox все ще показує попередженнямає власне сховище сертифікатівімпортуйте server.crt вручну
index.php порожнійпошкоджений проектвідновіть із Git або резервної копії

🎯 Підсумок

КрокМетаКоманда
Перевірка конфігураціїПеревірити синтаксис Apachehttpd.exe -t
Генерація SSLСтворити сертифікат localhostopenssl req -config ...
Додати довіру до сертифікатаУникнути попереджень HTTPSImport-Certificate
Перевірити портиПереконатися, що 80/443 вільніnetstat -ano
Запустити ApacheУвімкнути службуnet start apache2.4

📚 Висновок

Після виконання цих кроків:

  • Apache запускається без помилок.
  • HTTPS працює без попереджень у браузері.
  • localhost, 127.0.0.1 і домени на кшталт crm.local є повністю довіреними.
  • Ви можете розробляти й тестувати сайти локально, як на справжньому продакшн-сервері.

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *