Услуги Создание магазина Доработка Интеграция 1С О компании FAQ Блог Кейсы Отзывы Контакты
А
Автор статьи

Ошибка 500 в OpenCart: как найти причину

Ошибка 500 в OpenCart: как найти причину

Краткое описание задачи

Из практики. Клиент добавил новый модуль оплаты, и на странице оформления заказа стала вылезать ошибка 500. Первая мысль — «модуль кривой». Но оказалось, проблема не в модуле, а в настройках PHP: модуль требовал cURL, а на хостинге он был отключён. Ошибка 500 была просто «упавшим» скриптом без внятного сообщения. Мы включили display_errors через .htaccess (php_flag display_errors on), увидели «Fatal error: Call to undefined function curl_init» — и проблема решилась включением расширения curl в панели хостинга за 2 минуты.

Как не надо. Не паникуйте при ошибке 500 и не переустанавливайте сайт. Порядок: 1) включите display_errors через .htaccess или php.ini; 2) проверьте error_log на сервере (обычно /var/log/ или в корне сайта); 3) отключите последний установленный модуль или тему. В 80% случаев ошибка 500 вызвана конфликтом модулей, нехваткой памяти (memory_limit), отключённым PHP-расширением или битым .htaccess. Если ничего не помогло за 15 минут — восстановите сайт из бэкапа, но сперва обязательно заберите актуальную копию проблемного файла, чтобы передать разработчику.

Ошибка 500 (Internal Server Error) — сервер не может обработать запрос. В отличие от белого экрана, ошибка 500 возвращает HTTP-код, но причина та же: проблема на стороне сервера или в коде.

Основные причины

  • Неверный .htaccess — самая частая причина. Неправильные правила mod_rewrite или директивы PHP
  • Неправильные права на файлы — файлы должны быть 644, папки 755
  • Превышение лимитов PHP — memory_limit, max_execution_time
  • Ошибка в PHP-коде — синтаксическая ошибка после обновления или установки модуля
  • Проблемы на хостинге — перегрузка сервера, неверные настройки PHP

Рекомендации из практики

Как лучше: Откройте system/storage/logs/error.log — там будет точная причина: нехватка памяти, ошибка в файле, вызов несуществующего метода. Без логов диагностика — гадание.

Как не делать: Не начинайте с переустановки OpenCart или удаления модулей вслепую. Чтение error.log занимает 1 минуту, а исключает 80% ложных гипотез.

Кейс из практики: После обновления PHP с 7.4 на 8.0 магазин выдавал 500 ошибку. В логах — deprecated-вызов в старом модуле фильтра. Отключили модуль на 5 минут, магазин заработал. Нашли замену за час.

По практике, error.log — первый и главный инструмент диагностики 500 ошибки. Нужна помощь с ошибкой — закажите техподдержку

Диагностика

Шаг 1. Проверьте .htaccess

Временно переименуйте .htaccess в .htaccess.bak. Если ошибка исчезла — проблема в этом файле.

Шаг 2. Проверьте права доступа

Файлы: 644. Папки: 755. config.php и admin/config.php: 644. system/storage/: 755.

Шаг 3. Проверьте логи

Смотрите system/storage/logs/error.log и логи сервера. Там будет указана конкретная причина.

Шаг 4. Увеличьте лимиты PHP

memory_limit = 256M, max_execution_time = 180, max_input_vars = 5000.

FAQ

Ошибка 500 после установки модуля. Что делать?

Удалите файлы модуля. Если не помогло — восстановите резервную копию. Ошибка 500 после установки модуля почти всегда означает несовместимость.

Ошибка 500 на всех страницах, кроме главной. Почему?

Проблема в ЧПУ (SEO URL). Проверьте .htaccess — скорее всего, сбились правила mod_rewrite.

Итог

Начните диагностику с .htaccess и прав на файлы. Затем проверьте логи. Если ошибка появилась после установки модуля — удалите его. Если проблема на всех страницах — проверьте ЧПУ и хостинг. Подробнее — как читать логи ошибок.

← Предыдущая Как рассчитать точку безубыточности интернет-магазина Следующая → Налоги для интернет-магазина в 2026: УСН, самозанятость, патент — что выбрать

Комментарии (0)

Пока нет комментариев. Будьте первым!

Оставить комментарий

Ваш комментарий появится после проверки модератором.