548 слов | 4 минуты

Ошибка 500 на сайте — что это и как исправить

Открываете сайт — а вместо страницы белый экран или надпись «500 Internal Server Error». Что это значит и как это починить — разберём по порядку.

Что такое ошибка 500

Ошибка 500 (Internal Server Error) — это общий ответ сервера означающий «что-то пошло не так, но я не знаю что именно». В отличие от ошибки 404 (страница не найдена) или 403 (доступ запрещён), ошибка 500 не говорит о конкретной причине — сервер просто сообщает что не смог обработать запрос.

Важно: ошибка 500 всегда на стороне сервера, а не браузера или интернета. Перезагрузка страницы или смена браузера не поможет.

Частые причины

Ошибка в файле .htaccess

Самая распространённая причина. Один неверный символ в .htaccess — и весь сайт падает с ошибкой 500. Чаще всего это происходит после установки плагина или ручного редактирования файла.

Как проверить: временно переименуйте .htaccess в .htaccess_bak и обновите страницу. Если сайт заработал — проблема в нём.

Исчерпан лимит памяти PHP

Скрипт пытается использовать больше памяти чем разрешено на сервере. Часто возникает после установки тяжёлого плагина или при импорте большого файла.

Как проверить: посмотрите в логах сообщение вида Allowed memory size of X bytes exhausted.

Как исправить: увеличить лимит в php.ini или в .htaccess:

php_value memory_limit 256M

Ошибка в коде сайта

Синтаксическая ошибка в PHP-файле — незакрытая скобка, лишняя запятая, неверный символ. Сервер не может выполнить скрипт и возвращает 500.

Чаще всего происходит после обновления темы, плагина или ручного редактирования файлов.

Конфликт плагинов или модулей

Два плагина или модуля пытаются использовать одну и ту же функцию или ресурс — возникает конфликт. Типичная ситуация: установили новый плагин и сайт упал.

Как проверить: отключите последний установленный плагин. Если помогло — он виновник.

Превышен лимит времени выполнения скрипта

Скрипт выполняется дольше допустимого времени (timeout). Сервер принудительно завершает его и возвращает 500.

php_value max_execution_time 120

Неверные права доступа к файлам

Файлы или папки имеют неправильные права (chmod). Стандартные значения: папки — 755, файлы — 644.

Как проверить: подключитесь по FTP и проверьте права на корневую папку и файлы сайта.

Как найти причину

Смотрите логи ошибок

Это главный инструмент. Логи хранятся на сервере и показывают точную причину ошибки.

Где найти:

  • cPanel → Logs → Error Log
  • ISPmanager → Журналы → Журнал ошибок
  • Напрямую на сервере: /var/log/apache2/error.log или /var/log/nginx/error.log

В логах будет примерно такая запись:

[error] PHP Fatal error: Uncaught Error: Call to undefined function...

Это и есть конкретная причина — ищите по ней решение.

Включите отображение ошибок PHP

Временно, только для диагностики. Добавьте в начало index.php:

ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);

После диагностики обязательно уберите — ошибки не должны отображаться посетителям.

Проверьте .htaccess

Переименуйте .htaccess.htaccess_bak. Если сайт заработал — восстанавливайте содержимое файла по частям, находя проблемную строку.

Пошаговый план устранения

  1. Откройте логи ошибок — найдите конкретное сообщение об ошибке
  2. Проверьте .htaccess — переименуйте и проверьте работу сайта
  3. Отключите последние изменения — новые плагины, обновления, правки кода
  4. Проверьте права на файлы — папки 755, файлы 644
  5. Проверьте лимиты PHP — память и время выполнения
  6. Восстановите из резервной копии — если ничего не помогло и есть бэкап

Ошибка 500 на конкретных CMS

WordPress

Чаще всего причина — плагин или тема. Попробуйте:

  • Переименовать папку /wp-content/plugins/ → отключит все плагины
  • Переключить тему на стандартную через базу данных
  • Увеличить лимит памяти в wp-config.php: define('WP_MEMORY_LIMIT', '256M');

1С-Битрикс

Проверьте логи в /bitrix/modules/main/lib/ или через раздел «Настройки» → «Журнал событий» в админке. Частые причины — конфликт модулей после обновления или переполнение сессий.

Laravel

Смотрите лог в /storage/logs/laravel.log. Включите отладку в .env: APP_DEBUG=true (только на время диагностики).

Когда стоит обратиться к специалисту

Если вы не можете найти причину в логах или исправление одной ошибки приводит к другой — лучше доверить это специалисту. Особенно если:

  • Сайт приносит деньги и каждый час простоя — потеря клиентов
  • Ошибка возникает периодически и непредсказуемо
  • Логи пустые или недоступные
  • После исправления ошибка возвращается

Если нужна помощь — обратитесь к нам. Диагностируем причину по логам и восстановим работу сайта.