Перейти к содержимому
davidka.net > 💻 🧠 Код 1001 > 🛠️ DevOps > 🚀 Полное руководство: как запустить Apache в XAMPP на Windows (и что делать, если он не запускается)

🚀 Полное руководство: как запустить Apache в XAMPP на Windows (и что делать, если он не запускается)

  • автор:

🧭 Введение

XAMPP — это локальный серверный пакет, включающий Apache, MySQL (MariaDB), PHP и Perl.
Apache — его ключевой компонент: именно он обслуживает веб-страницы, открываемые по адресу http://localhost.

Но очень часто при запуске Apache появляются ошибки:

  • ❌ “Не удалось запустить службу Apache2.4. Код ошибки 1”
  • ⚠️ “Порт 80 занят”
  • 🔒 “Сертификат недоверенный” или “Ваше соединение не является закрытым”

Эта статья — подробный путь от установки до исправления всех типичных проблем.


🔧 Установка 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 или указать:

Country Name: IL
State: Israel
Locality: Jerusalem
Organization: hypo69
Common Name: localhost

🔒 2. Ошибка HTTPS: “Ваше подключение не является закрытым”

Причина: Chrome, Edge и Firefox больше не доверяют сертификатам без поля subjectAltName.
CN=localhost уже недостаточно.

Решение:

  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 = IL ST = Israel L = Jerusalem 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. Установи сертификат в доверенные корни: 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. Ошибка: «Port 80 or 443 already in use»

Проверка:

netstat -ano | findstr :80

и

netstat -ano | findstr :443

Если порты заняты, найди процесс:

tasklist | findstr <PID>

Частые “виновники”:

  • Skype
  • IIS (служба World Wide Web Publishing)
  • VMware Workstation
  • 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. Ошибка: “The requested operation has failed” (Service Control Manager 7024)

Если Apache установлен как служба и путь в реестре повреждён:

Проверь путь:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Apache2.4

Поле ImagePath должно быть:

"E:\xampp\apache\bin\httpd.exe" -k runservice

Если нет — исправь, или переустанови службу:

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Запуск службы
net stop apache2.4Остановка службы
netstat -anoПроверка занятых портов
`tasklistfindstr PID`
certmgr.mscПросмотр сертификатов
services.mscУправление службами

🌐 Настройка виртуальных хостов (удобные адреса)

Хочешь, чтобы проект billing-crm открывался по https://crm.local?

  1. Открой 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 не стартует при загрузке Windowsконфликт портовЗапускай XAMPP вручную
Сертификат “не доверен”нет SANпересоздать по шаблону с alt_names
HTTPS не открываетсянеправильный порт или SSL-ключпроверить httpd-ssl.conf
Браузер Firefox всё ещё ругаетсяFirefox не использует системное хранилищеимпортировать server.crt вручную в настройки Firefox
Файл index.php пустойошибка в проектевосстанови из Git или резервной копии

🎯 Резюме

ЭтапЦельКоманда / действие
Проверить конфигУбедиться, что Apache читает конфигурациюhttpd.exe -t
Сгенерировать SSLСоздать сертификат для localhostopenssl req -config ...
Добавить в доверенныеУбрать предупреждения браузераImport-Certificate
Проверить портыУбедиться, что 80 и 443 свободныnetstat -ano
Запустить серверЗапуск Apachenet start apache2.4

📚 Заключение

После этих шагов:

  • Apache запускается стабильно;
  • HTTPS работает без предупреждений;
  • Виртуальные хосты (crm.local, localhost, 127.0.0.1) полностью доверены;
  • Проекты XAMPP можно тестировать так же, как реальные сайты.

Метки:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *