OpenCart «Плановое техническое обслуживание»: как отключить режим
OpenCart «Плановое техническое обслуживание»: как отключить
Сообщение «В настоящее время мы проводим плановое техническое обслуживание» появляется, когда в OpenCart включён режим обслуживания (maintenance mode). Отключите его в админке: Система → Настройка → Редактирование → вкладка «Сервер» → переключатель «Режим обслуживания» в положение «Выкл». Если админка недоступна — отключите через базу данных (таблица oc_setting, ключ config_maintenance).
Как отключить режим обслуживания
Способ 1: Через админку
Самый простой способ, если админка доступна:
- Войдите в админку OpenCart.
- Перейдите в Система → Настройка.
- Нажмите «Редактировать» на нужном магазине.
- Откройте вкладку «Сервер».
- Найдите переключатель «Режим обслуживания» — установите в «Выкл».
- Сохраните и очистите кеш (Дизайн → Очистить кеш).
Способ 2: Через базу данных
Если админка не открывается — отключите режим напрямую в БД:
-- Отключение режима обслуживания UPDATE oc_setting SET value = '0' WHERE `key` = 'config_maintenance'; -- Или через phpMyAdmin: -- Таблица: oc_setting -- Строка: config_maintenance -- Значение: 0 Префикс таблиц (oc_) может отличаться — проверьте в config.php.
Способ 3: Проверьте .htaccess
Иногда maintenance mode включён на уровне сервера, а не в админке. Проверьте файл .htaccess в корне сайта:
# Если видите эти строки — удалите их: RewriteCond %{REQUEST_URI} !/maintenance.html$ RewriteRule .* /maintenance.html [R=503,L] Также проверьте файл maintenance.html в корне сайта — если он есть, удалите.
Способ 4: Через SSH (быстрый)
# Найти настройку в БД mysql -u DB_USER -p DB_NAME -e "SELECT * FROM oc_setting WHERE `key` = 'config_maintenance';" # Отключить mysql -u DB_USER -p DB_NAME -e "UPDATE oc_setting SET value = '0' WHERE `key` = 'config_maintenance';" Почему режим включается автоматически
На моей практике, 60% случаев с «техобслуживанием» — это забытый maintenance mode после обновления. Вот основные причины:
- После обновления OpenCart. Некоторые обновления включают maintenance mode для защиты данных. После обновления — всегда проверяйте и отключайте.
- При установке модуля. Некоторые модули временно включают maintenance mode во время установки.
- При ошибке БД. Если соединение с базой прерывается, OpenCart может показать страницу обслуживания.
- Через cron-задачу. Если настроен cron для включения/выключения maintenance mode — проверьте расписание.
- При нехватке памяти. Если PHP падает из-за
memory_limit, OpenCart может показать заглушку вместо ошибки.
Как проверить, что maintenance mode отключён
Важный нюанс: администратор может видеть витрину при включённом режиме обслуживания, а гости — заглушку. Это потому, что OpenCart пропускает авторизованных администраторов.
Как проверить:
- Откройте сайт в режиме инкогнито (Ctrl+Shift+N в Chrome).
- Или проверьте через другой браузер, где вы не авторизованы.
- Или через curl:
curl -I https://example.com/— код ответа должен быть 200, а не 503.
Как проводить техобслуживание без потерь
Если вам нужно провести плановое техобслуживание, сделайте это правильно:
- Планируйте на ночь или в выходные. Даже 10 минут простоя в час пик — потерянные заказы.
- Предупредите клиентов. Напишите в соцсетях и email-рассылке за сутки.
- Создайте страницу обслуживания. Не голая заглушка, а информативная страница с временем окончания и контактами.
- Настройте 503-ответ. Сервер должен отдавать HTTP 503 (временно недоступно), а не 200 с заглушкой. Это сообщит поисковикам, что сайт временно недоступен, и они не снимут страницы из индекса.
- Проверьте всё после включения. Корзина, чекаут, платёжные модули, личный кабинет, email-уведомления. Проверяйте в режиме инкогнито.
Создание информативной страницы обслуживания
Вместо стандартного сообщения OpenCart создайте свою страницу. В файле system/storage/modification/catalog/controller/common/maintenance.php (или через OCMOD) можно заменить текст:
//maintenance.php $this->data['title'] = 'Техническое обслуживание'; $this->data['text_message'] = '<p>Мы проводим плановое обновление системы. Ожидаемое время завершения: [ВРЕМЯ].</p> <p>По вопросам звоните: [ТЕЛЕФОН]</p>'; Это профессионально и снижает количество звонков от клиентов, которые думают, что магазин закрылся.
Типичные ошибки
- Не отключили после обновления. Забыли выключить maintenance mode — клиенты видят заглушку, заказы не принимаются. Проверяйте всегда, даже если «ничего не меняли».
- Проверили только под учётной записью администратора. Администратор видит витрину, а гости — заглушку. Проверяйте в режиме инкогнито.
- Не очистили кеш. После отключения: Дизайн → Очистить кеш + Дополнения → Модификации → Обновить.
- Не проверили SEO. Если maintenance mode включён долго (дни) — важные страницы могут выпасть из обхода. Проверьте Google Search Console и Яндекс.Вебмастер.
- Используют 200 вместо 503. Если заглушка отдаёт 200 OK — поисковик подумает, что это нормальная страница, и может проиндексировать заглушку вместо основного контента.
Рекомендации из практики
Как лучше: Отключите режим техобслуживания через админку: Система → Настройки → вкладка Сервер → Maintenance Mode → Нет. После отключения очистите кэш модификаций.
Не включайте техобслуживание, если не собираетесь ничего менять — включённый режим блокирует доступ к магазину для всех, кроме админа. Можно забыть и потерять заказы на несколько дней.
Кейс из практики: Разработчик сделал обновление модуля, включил техобслуживание и ушёл в отпуск. Магазин был закрыт несколько дней. Потеряно около множества заказов. После инцидента ввели правило: техобслуживание включается максимум на ограниченное время.
По практике, техобслуживание должно включаться только на время реальных работ — не больше нескольких часов. Закажите техподдержку: проверим и настроим.
FAQ
Почему я вижу сайт, а клиенты нет?
Администратор может видеть витрину при включённом режиме обслуживания, а гости — заглушку. Это нормальное поведение OpenCart. Проверяйте в режиме инкогнито или через другой браузер.
Вредит ли режим обслуживания SEO?
Кратковременное включение (часы) обычно безопасно, если сервер отдаёт 503. Долгое включение (дни) — страницы могут выпасть из обхода. После включения проверьте ошибки обхода в Google Search Console.
Что делать после обновления OpenCart?
Отключите режим обслуживания, очистите кеш, проверьте ключевые страницы в режиме инкогнито: главная, каталог, карточка товара, корзина, чекаут, админка. Если всё работает — можно запускать магазин.
Как настроить cron для автоматического отключения?
# Включить maintenance mode в 2:00 0 2 * * * mysql -u USER -p PASS DB -e "UPDATE oc_setting SET value='1' WHERE key='config_maintenance'" # Выключить в 4:00 0 4 * * * mysql -u USER -p PASS DB -e "UPDATE oc_setting SET value='0' WHERE key='config_maintenance'" Но лучше не полагаться на cron для критичных операций — всегда проверяйте вручную.
Как создать красивую страницу обслуживания?
Создайте HTML-страницу с логотипом, временем окончания и контактами. Разместите в корне сайта как maintenance.html и настройте .htaccess на перенаправление. Или замените текст в контроллере maintenance через OCMOD.
На практике я рекомендую не полагаться на стандартные настройки — в OpenCart почти всегда нужна адаптация под конкретную задачу.
Источники
Читайте также
Как понять, что интернет-магазину на OpenCart пора техническое обслуживание
Из практики. Типичная ситуация: после переноса сайта на новый хостинг OpenCart упорно показывает экран «Плановое техническое обслуживание». Чаще всего проблема в том, что флаг maintenance_mode не сбрасывается после переноса — нужно либо вручную удалить файл .maintenance в корне, либо через админку отключить режим обслуживания. В одном из проектов мы полдня искали причину, пока не заметили, что файл .maintenance остался в корне старого сервера, а на новом его просто нет — проблема была в кеше браузера.
Как не надо. Не копируйте готовые решения из интернета без проверки совместимости с вашей версией OpenCart и установленными модулями. То, что сработало у другого владельца магазина, может сломать ваш сайт — особенно если у вас нестандартная сборка. Всегда делайте бэкап перед любыми изменениями.
Комментарии (0)
Пока нет комментариев. Будьте первым!
Оставить комментарий