Сайт ліг і не встає: що робити в перші 10 хвилин, коли хостинг підвів
Ви відкриваєте свій сайт - а там білий екран. Або 502. Або взагалі нічого. Браузер крутить значок завантаження, наче медитує. Серце починає битися швидше, долоні пітніють, а в голові вже крутиться думка: «Все зламалося, бізнес закінчився, клієнти пішли до конкурентів». Знайомо? Я бачив такі обличчя десятки разів. І ось що скажу - перші 10 хвилин після падіння сайту визначають, чи втратите ви години або лише хвилини. Ця стаття - ваш план дій, коли хостинг раптом вирішив взяти вихідний без попередження.
Перше правило кризи: не чіпайте нічого, поки не зрозуміли що зламалось
Коли пожежник приїжджає на виклик, він не починає лити воду на сусідній будинок. Він оцінює ситуацію. З хостингом - так само. Найгірше, що ви можете зробити в перші хвилини - це хаотично перезавантажувати сервер, видаляти файли, міняти DNS-записи чи писати гнівний тікет провайдеру з текстом «ВСЕ НЕ ПРАЦЮЄ!!!».
Перші 60 секунд - це діагностика, а не паніка. Відкрийте блокнот (справжній або цифровий) і почніть фіксувати симптоми. Що саме не працює? Весь сайт чи окремі сторінки? Яку помилку показує браузер? Чи відкривається панель хостингу? Чи працюють інші сайти на тому ж сервері?
Ось мінімальний чеклист для перших 60 секунд:
- Перевірте сайт з мобільного інтернету (не з вашого Wi-Fi) - можливо, проблема у вашого провайдера
- Відкрийте isitdownrightnow.com або downforeveryoneorjustme.com - це покаже, чи лежить сайт для всього світу
- Зайдіть в панель хостингу (cPanel, Plesk, DirectAdmin) - якщо вона відкривається, сервер живий
- Перевірте пошту - хостер міг надіслати повідомлення про технічні роботи
- Гляньте статус-сторінку хостинг-провайдера - у більшості є status page
Розшифровка помилок: що сайт намагається вам сказати
Помилки HTTP - це не випадкові цифри. Це діагностичні коди, як показники аналізу крові. Кожен код розповідає свою історію. Проблема в тому, що більшість власників сайтів бачать «500» і думають: «Це щось серверне, я не розберусь». Але ви розберетесь. Прямо зараз.
| Код помилки | Що означає | Де шукати причину | Хто зазвичай винен |
|---|---|---|---|
| 403 Forbidden | Сервер зрозумів запит, але відмовляє у доступі | Права на файли, .htaccess, ModSecurity | Ви або плагін безпеки |
| 500 Internal Server Error | Щось зламалось у скрипті або конфігурації | .htaccess, PHP-скрипти, ліміти пам'яті | 50/50 ви і хостер |
| 502 Bad Gateway | Проксі не отримав відповіді від серверу | PHP-FPM, перевантаження серверу | Зазвичай хостер |
| 503 Service Unavailable | Сервер тимчасово недоступний | Перевантаження, технічні роботи, DDoS | Хостер або атака |
| 504 Gateway Timeout | Сервер не встиг відповісти вчасно | Повільні запити до БД, великі скрипти | Ваш код або брак ресурсів |
Бачите 403? Перше, що перевіряйте - файл .htaccess. Перейменуйте його на .htaccess_backup через файловий менеджер і оновіть сторінку. Якщо сайт ожив - вітаю, ви знайшли винуватця за 30 секунд. 500-ка? Увімкніть відображення помилок PHP (якщо це dev-середовище) або загляньте в error_log. Цей файл - ваш найкращий друг під час кризи.
Логи сервера: ваш чорний ящик після «катастрофи»
Уявіть, що ваш сайт - це літак, а логи - той самий чорний ящик. Після кожного «падіння» він зберігає все: що, коли і чому пішло не так. Проблема більшості людей - вони навіть не знають, де ці логи шукати.
У cPanel логи помилок знаходяться в розділі Errors або через файловий менеджер у файлі error_log в кореневій папці сайту. У Plesk - Logs у розділі вашого домену. А якщо у вас VPS з SSH-доступом, то шукайте в /var/log/apache2/error.log або /var/log/nginx/error.log.
«80% інцидентів на хостингу вирішуються за 15 хвилин, якщо адміністратор вміє читати логи. Решта 20% - коли він їх навіть не відкриває.» - Олександр Горбенко, DevOps-інженер з 12-річним досвідом
Що шукати в логах? Конкретні рядки з мітками [error] або [crit]. Часто ви побачите щось на кшталт «PHP Fatal error: Allowed memory size of 134217728 bytes exhausted» - і це прямо вказує на причину. Пам'ять закінчилась. Збільшуєте ліміт в php.ini або wp-config.php - і сайт дихає знову.
Ось топ причин, які я знаходив у логах за 15 років:
- Вичерпана пам'ять PHP - плагін або скрипт з'їв все, що було
- Зламаний .htaccess - один зайвий символ після оновлення плагіну
- Переповнена база даних - мільйон записів у таблиці wp_options від кривих плагінів
- Досягнутий ліміт процесів - на shared-хостингу ви ділите ресурси з сусідами
- Зловмисний код - хтось вже господарює у ваших файлах
Коли винен хостер, а коли - ви самі
Це болюче питання. Ніхто не любить визнавати свої помилки, а хостери теж не завжди чесні. Але правда десь посередині, і вміти відрізняти одне від іншого - це навичка, яка збереже вам години нервів і купу грошей.
Хостер винен, якщо: не працює панель керування, статус-сторінка показує інцидент, підтримка підтвердила проблему на своєму боці, ваш сайт і сайти інших клієнтів на тому ж сервері лежать одночасно. Якщо хостер мовчить, а ваш сайт - єдиний, що не працює, то ймовірність проблеми з вашого боку різко зростає.
Ви винні, якщо: нещодавно оновлювали WordPress, плагіни чи тему, редагували файли вручну, встановили щось нове, або сайт став популярним і перевищив ліміти тарифу. Перевірте - чи не збігається час падіння з часом вашої останньої дії? У 70% випадків сайт лягає саме після «я тут трохи підправив».
Золоте правило: завжди робіть бекап перед будь-якими змінами. Навіть «маленькими». Особливо «маленькими». Тому що саме «я тільки один рядок поміняв» перетворюється на ніч без сну.
Покрокова реанімація: від білого екрану до працюючого сайту
Добре, ви зібрали симптоми, подивились логи, зрозуміли приблизну зону проблеми. Тепер - конкретні дії. Я розставив їх від простого до складного, тому що у більшості випадків перші три кроки вирішують проблему.
- Перезавантажте PHP та очистіть кеш - у панелі хостингу знайдіть «Select PHP Version» або «PHP Manager» і натисніть «Restart». Якщо є кешуючий плагін - спробуйте видалити вміст папки /wp-content/cache/
- Перейменуйте .htaccess - через файловий менеджер або FTP змініть назву на .htaccess_old. Оновіть сайт. Якщо ожив - зайдіть в Налаштування > Постійні посилання в WordPress і просто збережіть. Новий .htaccess згенерується автоматично
- Вимкніть плагіни масово - перейменуйте папку /wp-content/plugins/ на /wp-content/plugins_off/. Всі плагіни деактивуються миттєво. Сайт ожив? Повертайте назву і вмикайте плагіни по одному, щоб знайти винного
- Збільшіть ліміт пам'яті - додайте в wp-config.php рядок: define('WP_MEMORY_LIMIT', '256M');
- Перевірте базу даних - у phpMyAdmin запустіть «Repair table» для основних таблиць WordPress
- Відновіть з бекапу - якщо нічого не допомогло, це ваша остання лінія оборони. Тому бекапи й мають існувати
Як спілкуватися з техпідтримкою, щоб вам реально допомогли
Тут окрема наука. Я бачив тисячі тікетів і можу сказати точно: якість вашого запиту визначає швидкість відповіді. Повідомлення «Сайт не працює, виправте!!!» потрапляє в чергу з низьким пріоритетом. А от структурований тікет - обробляється вдвічі швидше.
Ідеальний тікет містить:
- Назву домену та точний час, коли почалась проблема
- Код помилки (403, 500, 502 - конкретика)
- Що ви вже перевірили та спробували
- Скріншот помилки та уривок з error_log
Коли ви пишете «Я перевірив логи, бачу помилку X, спробував Y - не допомогло, чи можете перевірити зі свого боку?» - технічний спеціаліст розуміє, що перед ним людина, яка знає базу, і починає копати глибше замість надсилання шаблонної відповіді «перезавантажте кеш браузера».
І ще одна порада, яку мало хто використовує. Зателефонуйте. Серйозно. Якщо у хостера є телефон підтримки - дзвоніть. Тікети чекають у черзі. Дзвінок - ні. За моїм досвідом, телефонний дзвінок скорочує час вирішення проблеми в 3-5 разів.
Ваш сайт колись ляже. Не «якщо», а «коли». Це не песимізм - це статистика. Навіть Amazon падав у 2023 році на 2 години. Різниця між професіоналом і новачком не в тому, що у першого нічого не ламається. А в тому, що він знає, де шукати і що робити, коли це станеться. Тепер знаєте і ви. Питання одне - чи збережете ви цю статтю в закладки до того, як вона вам знадобиться, чи будете шукати її в паніці о третій ночі?