Магазин перестав працювати. Перше, що варто зробити — не поспішати: половина непоправної шкоди завдається саме в перші хвилини, коли починають видаляти файли навмання.
Крок 1. Зрозуміти характер проблеми
- Біла сторінка — виконання зупинилось, вивід помилок вимкнений. Причина зазвичай у коді або нестачі пам'яті.
- Помилка 500 — деталі в логу веб-сервера; часто це помилка в конфігурації або збій модифікації.
- Помилка з'єднання з базою — база не відповідає або вичерпано ліміт з'єднань.
- Редирект на чужий сайт — майже завжди зараження, а не збій.
- Сайт відкривається, але дуже повільно — це не аварія, а перевантаження; порядок дій інший.
Крок 2. Згадати, що змінювалось
У переважній більшості випадків падінню передувала конкретна дія: встановили модуль, оновили версію, змінили налаштування хостингу, закінчилось місце на диску. Відповідь на питання «що робили перед цим» скорочує пошук у рази.
Крок 3. Подивитись логи
Не один лог, а всі: магазину, PHP, веб-сервера. Найчастіша помилка — відкрити лог магазину, побачити порожній файл і вирішити, що причин немає. Фатальні помилки туди не потрапляють взагалі, бо виконання зупиняється раніше.
Чого робити НЕ треба
- Не видаляти підозріле навмання — разом із закладкою легко знести робочий файл ядра.
- Не відновлюватись наосліп зі старого бекапа, якщо є підозра на зараження: воно може бути старішим за копію.
- Не міняти всі паролі одразу при зараженні — спершу треба зрозуміти спосіб проникнення, інакше нові доступи витечуть так само.
- Не чистити кеш модифікацій вручну: у OpenCart це не кеш, і без цих файлів магазин перестане працювати зовсім.
Коли потрібна термінова допомога
Якщо магазин лежить у робочий час, кожна година — це втрачені замовлення. У таких випадках є аварійне відновлення з реакцією протягом доби: спершу повернення до роботи, потім пошук причини.
Якщо йдеться саме про зараження — порядок дій докладно описаний у матеріалі зламали магазин: що робити в перші години. Щоб наступного разу відновлення займало годину, а не тиждень, потрібні бекапи з перевіркою відновлення.