Сайт не работает на Apache — как найти причину

Если сайт не открывается, а на сервере стоит Apache, в 90% случаев причина одна из четырёх: ошибка в конфигурации виртуального хоста, битый .htaccess, неверные права доступа к файлам или сам процесс Apache не запущен. Проверка занимает несколько минут, если знать, куда смотреть.

Как проверить, жив ли сам процесс Apache

Первым делом проверяется статус службы. На сервере с доступом по SSH это делается командой systemctl status apache2 (или httpd на CentOS/RHEL). Если служба остановлена или падает при запуске, лог сразу покажет причину — обычно это синтаксическая ошибка в конфиге. Проверить конфигурацию на ошибки перед перезапуском можно командой apachectl configtest: она укажет конкретный файл и строку, где Apache не может разобрать директиву.

Проблема в .htaccess

Если Apache запущен, но при заходе на сайт выдаётся ошибка 500, в первую очередь под подозрением файл .htaccess в корне сайта. Неверный синтаксис правил редиректа, лишняя директива RewriteRule или ограничение, не поддерживаемое текущей версией модулей, приводят именно к такой ошибке. Проверка простая: временно переименовать .htaccess (например в .htaccess.bak) и перезагрузить страницу. Если сайт заработал — проблема точно в этом файле, и правила нужно пересобирать по одной строке.

Права доступа и владелец файлов

Ошибка 403 Forbidden почти всегда означает проблему с правами: каталог сайта должен быть доступен для чтения пользователю, от имени которого работает Apache (обычно www-data или apache). Типичная рабочая схема — права 755 на каталоги и 644 на файлы, владелец — пользователь веб-сервера. Если права выставлены слишком строго после переноса файлов или восстановления из бэкапа, доступ блокируется именно на этом уровне.

Что делать, если ничего из этого не помогло

  • Проверить лог ошибок Apache (обычно /var/log/apache2/error.log) — там указывается точная причина падения запроса.
  • Убедиться, что виртуальный хост для домена вообще активирован (команда a2ensite и последующий reload).
  • Проверить, не исчерпан ли лимит памяти PHP или max_execution_time, если ошибка связана с обработкой скриптов, а не статикой.
  • Если сайт работает на CMS, отключить плагины/модули по одному, чтобы исключить конфликт на уровне приложения, а не сервера.

Если после всех проверок сайт по-прежнему недоступен, а доступа к серверу нет, стоит обратиться в поддержку хостинга — часто проблема решается на их стороне за несколько минут.

Понравилась статья? Поделиться с друзьями: