Ошибка 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 или расширения, чтобы выяснить, что вызывает ошибку.