Apache LinuxWindows AH00072

Apache не запускается: порт 80 или 443 занят (AH00072)

  • Обновлено
  • Чтение ≈ 3 минуты
  • Нужны права администратора

Краткий ответ

Ошибка AH00072 значит, что другой процесс уже занимает порт 80 или 443. Это может быть другой веб-сервер (nginx), второй экземпляр Apache, Skype/IIS на Windows или дублирующая директива Listen. Найдите процесс, занявший порт, и остановите его либо измените порт Apache.

В этой статье
  1. Что означает ошибка
  2. Причины и решения
  3. Пошаговое решение
  4. Если не помогло
  5. Как найти процесс
  6. Если нужен другой порт

#Что означает ошибка

AH00072
(98)Address already in use: AH00072: make_sock: could not bind to address [::]:80 no listening sockets available, shutting down
По-русскиApache не смог занять порт: он уже используется другим процессом.

Ошибка Apache «AH00072: make_sock: could not bind to address 0.0.0.0:80 — Address already in use» означает, что порт уже занят другим процессом: вторым Apache, nginx, Skype, IIS, Docker. Apache не может запуститься, пока порт не освободится.

Решение — найти процесс, занимающий порт, и либо остановить его, либо перенастроить Apache на другой порт.

Apache при старте открывает порты из директив Listen. Если порт уже занят, запуск завершается ошибкой.

#Причины и решения

Возможная причинаКак узнатьЧто делать
Запущен другой веб-серверПорт заняли nginx, другой Apache, IIS.ss -ltnp показывает чужой процесс на порту 80/443.Остановите лишний сервер или поменяйте порт.
Дублируется директива ListenВ конфигурации Listen 80 указана дважды.Ошибка сразу после правки конфигурации.Удалите дубликат в ports.conf и виртуальных хостах.
Остался зависший процесс ApacheПредыдущий экземпляр не завершился.ps показывает процессы apache2/httpd после остановки.Завершите зависшие процессы и запустите заново.
На Windows порт занят системной службойПорт 80 занимают IIS, Skype или «Служба публикации».netstat -ano показывает занявший процесс.Остановите службу или смените порт.

#Пошаговое решение

  1. Найдите процесс на портуПодключитесь по SSH и выполните sudo ss -ltnp | grep -E ":80|:443", чтобы увидеть PID и имя программы на занятом порту. Если 80 уже слушает Nginx, это может быть штатная схема проксирования: не убивайте процесс и не отключайте сайт только ради запуска Apache.
  2. Остановите конфликтующую службуОпределите, должен ли Apache слушать 80 напрямую или работать за Nginx на внутреннем порту. Проверьте systemctl status nginx apache2 и действующие схемы в панели хостинга. Если конфликт вызван случайно запущенным вторым экземпляром Apache, завершайте его штатной службой после проверки владельца процесса.
  3. Проверьте конфигурациюОткройте в конфигурации Apache директивы Listen и <VirtualHost> и проверьте, нет ли повторного подключения файла с Listen 80, а также пересечения IPv4/IPv6. На Debian используйте /etc/apache2/ports.conf и подключённые конфиги, на RHEL расположение другое. Сделайте копию перед правкой.
  4. Запустите ApacheПосле исправления выполните sudo apachectl configtest, а затем sudo systemctl start apache2 либо httpd согласно системе; при работе через Nginx отдельно проверьте его проксирование на нужный backend. Убедитесь в active (running) и отсутствии нового AH00072 в журнале.
  5. Или смените портЕсли по архитектуре Apache должен слушать другой порт, измените Listen и соответствующие <VirtualHost>/прокси-маршруты согласованно, сохранив прежнее значение для отката. Затем configtest, reload и проверка HTTP-запроса. Не выбирайте случайный порт и не открывайте его наружу без необходимости.
  6. Показывают, какой процесс занял порты, и проверяют синтаксис конфигурации
    Linux · Терминал (Bash)КомандаНужен sudo
    Показывают, какой процесс занял порты, и проверяют синтаксис конфигурации. Команды только читают.
    sudo ss -ltnp | grep -E ":80|:443"
    sudo apachectl configtest

#Если не помогло

Если нужен одновременно и Apache, и nginx, разведите их по портам (например, nginx на 80/443 как прокси к Apache на 8080). Не убивайте процессы по PID без понимания, что они делают.

#Как найти процесс

Linux: sudo ss -tlnp | grep :80 или sudo lsof -i :80. Windows: netstat -ano | findstr :80, затем tasklist /FI "PID eq НОМЕР". Частые виновники — nginx (sudo systemctl stop nginx), служба IIS (net stop was /y), Skype и службы публикации.

#Если нужен другой порт

В ports.conf и виртуальных хостах измените Listen 80 на Listen 8080 и <VirtualHost *:8080>. После правки проверьте sudo apachectl configtest и перезапустите sudo systemctl restart apache2.

Linux · Терминал (Bash)КомандаНужен sudo
Какой процесс занимает порт и проверка конфигурации.
sudo ss -tlnp | grep :80
sudo apachectl configtest

Так эту ошибку тоже называют

Источники и обновления

Последнее обновление статьи: 2 ноября 2026. Версии программ и интерфейсы меняются — если шаги не совпадают с вашей версией, сверяйтесь с документацией производителя.