#Что означает ошибка
Address already in use
Порт 80 занят другим процессом (nginx, другой Apache). Найдите процесс через ss -ltnp и остановите или измените порт Listen.
#Причины и признаки
| Возможная причина | Как узнать | Что делать |
|---|---|---|
| Занят другой службой | Не запускается. Сопоставьте запись в журнале службы со временем ошибки и проверьте, не занят ли требуемый порт другим процессом. | Остановите. |
| Дубль Listen | Прочитайте относящуюся к этому компоненту запись в журнале до изменения конфигурации. | Удалите. Перед этим сохраните настройки и локальные данные, которые могут быть потеряны. |
| Остался процесс | Прочитайте относящуюся к этому компоненту запись в журнале до изменения конфигурации. | Завершите. |
| Другой порт | Сопоставьте запись в журнале службы со временем ошибки и проверьте, не занят ли требуемый порт другим процессом. | Измените Listen. |
#Пошаговое решение
- Найдите процессОткройте SSH-терминал на сервере и выполните
sudo ss -ltnp | grep ":80"(при необходимости проверьте 443). Запишите PID, имя процесса и адрес прослушивания. Если порт занят Nginx в штатной схеме reverse proxy, его нельзя просто остановить: Apache может использовать внутренний порт. - Остановите конфликтПроверьте
systemctl status apache2 nginxлибоhttpd nginxи конфигурацию панели хостинга, чтобы понять, какой сервер должен занимать порт. Если ошибку вызвал второй случайно запущенный Apache, остановите только лишний экземпляр по согласованной процедуре, не выполняяkill -9неизвестного PID. - Запустите ApacheВ конфигурации Apache проверьте
Listen/VirtualHost, затемsudo apachectl configtest. Если адрес 0.0.0.0:80 уже занят, исправьте архитектуру слушающих портов или дубликатListen, после чего запустите только нужную службу и проверьте её статус. - Проверьте альтернативу: другой портЕсли требуется альтернативный порт для backend Apache, измените
Listenи конфигурацию обратного прокси согласованно, сохранив файлы для отката. После исправления проверьте доступ к сайту через обычный внешний URL, а не только факт запуска Apache; не открывайте backend-порт всем без необходимости. - Поиск процесса на порту 80Linux · Терминал (Bash)КомандаНужен sudoПоиск процесса на порту 80.
sudo ss -ltnp | grep :80
#Проверка результата
Для «Apache: (98)Address already in use: could not bind to address 0.0.0.0:80» выполните штатную проверку конфигурации, затем один контрольный запрос к сервису. Сверьте его результат с журналом и убедитесь, что пользователи не получили новых ответов 4xx или 5xx после изменения.