Внутренняя ошибка сервера 500 (HTTP Error 500) — одна из самых неприятных проблем, с которой сталкиваются владельцы интернет-магазинов. В отличие от ошибок 404 или 403, она не даёт явного объяснения причины и часто появляется внезапно — сайт просто перестаёт работать.
Если у вас интернет-магазин на PrestaShop, такая ошибка может означать как мелкую проблему в коде, так и серьёзный сбой на сервере. В этой статье разберёмся, что это за ошибка, почему она возникает и как её правильно диагностировать и исправлять.
Что означает ошибка 500
Ошибка 500 — это общий ответ сервера, означающий:
«Сервер столкнулся с проблемой и не может обработать запрос»
Важно понимать:
это не ошибка браузера и не ошибка пользователя — проблема всегда на стороне сервера или приложения (вашего магазина).
Как выглядит ошибка
Она может отображаться по-разному:
-
500 Internal Server Error -
Белый экран (White Screen of Death)
-
Кастомная страница хостинга
-
Пустая страница без ошибок
В PrestaShop часто встречается именно белый экран, что особенно усложняет диагностику.
Основные причины ошибки 500 в интернет-магазине
1. Ошибки в PHP-коде
Самая частая причина:
-
синтаксические ошибки
-
вызов несуществующих методов
-
несовместимость версий PHP
-
ошибки в кастомных модулях
Пример:
Call to undefined method
2. Проблемы с модулями PrestaShop
После:
-
установки нового модуля
-
обновления модуля
-
удаления файлов вручную
может возникнуть конфликт.
Особенно часто ломаются:
-
override-классы
-
хуки
-
автозагрузка классов
3. Неправильные права доступа (permissions)
Если у файлов или папок неверные права:
-
сервер не может прочитать файл
-
или выполнить скрипт
Стандарт:
-
папки:
755 -
файлы:
644
4. Ошибки в .htaccess
Файл .htaccess управляет маршрутизацией и правилами сервера.
Ошибка может появиться после:
-
включения ЧПУ (SEO URLs)
-
ручного редактирования
-
миграции сайта
5. Ограничения сервера
Хостинг может «убить» выполнение скрипта из-за:
-
нехватки памяти (
memory_limit) -
долгого выполнения (
max_execution_time) -
ограничений CPU
6. Ошибки базы данных
Например:
-
повреждённые таблицы
-
неправильные запросы
-
несовместимость структуры
7. Обновление PrestaShop
После обновления ядра:
-
старые модули могут не работать
-
override-файлы конфликтуют
-
структура БД меняется
Как найти причину ошибки 500
Шаг 1. Включить отображение ошибок
Если у вас есть доступ в админ-панель PrestaShop, самый простой способ — включить режим отладки через интерфейс:
Перейдите в:
Расширенные параметры → Производительность
И включите режим отладки (Debug Mode).
Если доступа к админке нет (например, сайт полностью не открывается), тогда используйте способ через код.
В PrestaShop:
Откройте файл:
/config/defines.inc.php
Найдите строку:
define('_PS_MODE_DEV_', false);
Замените на:
define('_PS_MODE_DEV_', true);
После этого вместо белого экрана вы увидите реальную ошибку.
Шаг 2. Проверить логи сервера
Логи — самый надёжный источник информации.
Где искать:
-
/var/log/apache2/error.log -
/var/log/nginx/error.log -
лог в панели хостинга
Там будет точная причина ошибки.
Шаг 3. Проверить последние изменения
-
Устанавливался ли модуль?
-
Обновлялась ли PrestaShop?
-
Менялся ли код?
Если да — откатите изменения.
Шаг 4. Отключить модули
Если админка не открывается:
-
Зайдите в
/modules/ -
Переименуйте подозрительный модуль
Например:
mymodule → mymodule_off
Шаг 5. Перегенерировать .htaccess
Удалите файл .htaccess и создайте новый:
В админке:
Параметры магазина → Трафик и SEO → Сохранить
Шаг 6. Проверить версию PHP
Частая проблема:
-
старый модуль + новый PHP (например 8.2)
-
или наоборот
Рекомендация:
-
PrestaShop 1.7 → PHP 7.4
-
PrestaShop 8 → PHP 8.1+
Шаг 7. Проверить права доступа
Убедитесь:
/var/www/public_html → 755
файлы → 644
Частые реальные случаи
Кейс 1: Белый экран после установки модуля
Причина: ошибка в override
Решение: очистить /override/ и очистить кеш
Кейс 2: Ошибка после обновления
Причина: несовместимость модулей
Решение: отключить сторонние модули
Кейс 3: Ошибка только на фронте
Причина: шаблон (theme)
Решение: переключиться на стандартную тему
Кейс 4: Ошибка при оформлении заказа
Причина: сбой в модуле-оплаты
Решение: проверить логи и API
Как предотвратить ошибку 500
1. Делайте бэкапы
Перед любыми изменениями:
-
файлы
-
база данных
2. Следите за совместимостью
Перед установкой модуля проверяйте:
-
версию PrestaShop
-
версию PHP
3. Минимизируйте override
Чем меньше override — тем стабильнее система.
4. Мониторинг
Используйте:
-
uptime-мониторинг
-
логирование ошибок
-
сервисы для поддержки
У нас есть платформа для вашего магазина, которая следит, очищает, блокирует ботов, мониторит доступность магазина и многое другое подробнее >
Если вы столкнулись с ошибкой и не можете исправить её самостоятельно — обращайтесь, обязательно поможем.
Поддержка >