Ошибка 500
500 ошибка (Internal Server Error) — это внутренняя ошибка сервера, которая может быть вызвана самыми разными причинами. Она не указывает напрямую на причину ошибки, поэтому для диагностики может потребоваться включение логирования ошибок apache. Как это сделать — описано в инструкции по включению логов.
Основные причины 500 ошибки:
- Проблема с подключением к базе данных
- Ошибка в файле
.htaccess
- Ошибка в скрипте сайта
- Превышение лимита памяти (
memory_limit
)
Проблема с подключением к базе данных
Ошибка возникает, если сайт не может подключиться к базе данных. Чаще всего это связано с некорректными данными подключения: хост, имя пользователя, пароль или название базы данных указаны неправильно.
Дополнительно CMS может отображать сообщение об ошибке подключения к базе при обращении к сайту. Проверьте конфигурационные файлы сайта и убедитесь, что данные подключения указаны верно.
Также причиной может быть сбой на сервере баз данных MySQL. Мы отслеживаем такие ситуации и быстро устраняем их — от пользователя действия не требуются.
Ошибка в файле .htaccess
Если в .htaccess
содержится ошибка, Apache не сможет обработать его корректно, и это приведёт к 500 ошибке.
Пример строки из лога:
example.com [Thu Apr 10 17:10:28 2025] [alert] [pid 99315] config.c(2046): [client 5.24.158.122:0] /home/c/cb73619/test/public_html/.htaccess: command
В этом случае проблема в неправильной директиве в файле /home/c/cb73619/test/public_html/.htaccess.
Вы можете временно переименовать этот файл, чтобы проверить, пропадет ли ошибка. Если пропала — значит, проблема в его содержимом. Также можно временно закомментировать отдельные строки в .htaccess
, чтобы отключить директивы точечно. Для этого добавьте символ #
в начале строки с нужной директивой.
Ошибка в скрипте сайта
Ошибки в коде сайта — одна из самых частых причин ошибки 500. Это может быть, например, синтаксическая ошибка, отсутствие нужного класса или проблема с версией PHP.
Пример записи в логе:
example.com [Thu Apr 10 14:19:03 2025] [error] [pid 1013679] sapi_apache2.c(358): [client 5.24.158.122:0] PHP Fatal error: Uncaught Error: Class "FFI" not found in /home/c/ct81221/SiteName/public_html/seg.php:4
Из строки видно, что ошибка вызвана отсутствием класса FFI в файле seg.php
.
Иногда для решения ошибки достаточно выполнить поиск по тексту ошибки из лога. Возможно, уже есть готовое решение на форумах или в документации CMS.
Одна из частых причин возникновения ошибки — неподходящая версия PHP. Ознакомьтесь с требованиями CMS или скрипта в документации и смените версию PHP через панель управления.
Если это не помогает, обратитесь к разработчику CMS, плагина или стороннего скрипта.
Превышение memory_limit
Ошибка возникает, если скрипт пытается использовать больше памяти, чем доступно по тарифу.
Пример лога:
example.com [Thu Apr 10 11:46:14 2025] [error] [pid 993433] sapi_apache2.c(358): [client 5.24.158.122:0] PHP Fatal error: Allowed memory size of 2147483648 bytes exhausted (tried to allocate 2516582432 bytes) in /home/c/ct81221/SiteName/public_html/memory.php on line 11
Если скрипту нужно до 2048 МБ памяти, поможет переход на тариф мощного хостинга. Если больше — лучше обратиться к разработчику CMS или расширения, чтобы выяснить, что вызывает ошибку.