Як впоратися зі зламаним сайтом на WordPress

У цій статті ми розглянемо найпоширеніші типи зламів WordPress, як їх розпізнати та різні способи їх усунення. Якщо ви зіткнулися з такою проблемою, ми наполегливо рекомендуємо звернутися до професійного веб-розробника для подальшої допомоги. Для додаткових порад щодо підвищення безпеки вашого хостинг-акаунта, будь ласка, зверніться до цього посібника.

ВАЖЛИВО: Перед внесенням будь-яких змін створіть повну резервну копію вашого сайту. 

ЗВЕРНІТЬ УВАГУ: Щоб зменшити ризик майбутніх зламів WordPress, регулярно скануйте ваш хостинг-акаунт антивірусом, видаляйте шкідливі або підозрілі файли та оновлюйте всі плагіни й теми сайту до останніх версій.

  1. Відсутні стандартні файли

  2. Як замінити відсутні файли WordPress

  3. Як замінити всі стандартні файли WordPress

  4. Відсутні файли теми або плагінів

  5. Шкідливі редиректи

Відсутні стандартні файли

Хоча різні проблеми можуть призвести до відсутності або зміни стандартних файлів, найпоширенішою причиною є шкідливе ПЗ, впроваджене у вашу інсталяцію WordPress. На щастя, антивірусні інструменти на наших серверах Web і Hosting можуть автоматично виявляти та ізолювати скомпрометовані файли.

Якщо основні файли WordPress заражені, ви можете зіткнутися з такими симптомами:

  • Пуста сторінка;

  • Помилка 500 Internal Server Error;

  • Помилка «На цьому сайті виникли технічні проблеми» (з’явилася у WordPress 5.2.2);

  • Або інші подібні помилки.

Щоб вирішити цю проблему, просто дотримуйтесь наведених нижче кроків.

Перевірте файл error_log вашого сайту

Щоб визначити причину проблеми на вашому сайті, перегляньте файл error_log. У цьому файлі фіксуються всі критичні помилки, з якими стикається ваш сайт.

Ви можете знайти його у вашому акаунті cPanel > меню «File Manager» > кореневий каталог вашої інсталяції WordPress. 

Після входу до кореневої папки домену знайдіть файл error_log. Якщо він існує, виконайте такі дії:

  1. Клацніть правою кнопкою миші на файлі, потім виберіть Переглянути:


  2. У журналі ви можете побачити помилку на кшталт: «No such file or directory in…», після чого йде шлях до відсутнього файлу. Це означає, що необхідний файл відсутній і заважає коректній роботі сайту.

    Наприклад:

    /home/cPuser/public_html/wp-settings.php

  3. Щоб відновити відсутній файл, прокрутіть до розділу "Як замінити відсутні файли" цього посібника.

Увімкніть опцію display_errors у PHP

Якщо файл error_log відсутній у кореневому каталозі вашого сайту, ви можете увімкнути опцію display_errors у PHP через ваш акаунт cPanel. Цей параметр дозволяє відображати повідомлення про помилки безпосередньо на сайті, що полегшує їх ідентифікацію.

Важливо: З міркувань безпеки обов’язково вимкніть display_errors після завершення усунення несправностей.

Ви можете увімкнути цю опцію PHP такими способами:

  • Через php.ini 

Окрім меню «PHP Tweaks» у cPanel, ви також можете змінити певні налаштування сайту безпосередньо через файл php.ini, додавши/відредагувавши відповідні рядки у ньому. 

Щоб увімкнути опцію display_errors, потрібно додати такий рядок у файл:

display_errors=1

Ви можете створити новий файл php.ini у кореневій папці сайту й додати цей рядок туди або змінити системний файл, дотримуючись наведених нижче кроків.

  1. Увійдіть у ваш акаунт cPanel і перейдіть у меню «File Manager».

  2. Переконайтеся, що в налаштуваннях увімкнено опцію «Show Hidden Files (dotfiles)»:


  3. Перейдіть до наступного каталогу:  /home/cPanel_user/.system-php/ini


  4. Виберіть версію PHP, призначену для вашого домену, а потім виберіть каталог домену. Наприклад, повний шлях може виглядати так:

    /home/cPanel_user/.system-php/ini/7.0/testwebsite.com

  5. Клацніть правою кнопкою миші на файлі php.ini та виберіть Редагувати.

  6. Додайте наступний рядок у файл:

    display_errors=1

  • Через .htaccess


Щоб увімкнути опцію display_errors у PHP через файл .htaccess, потрібно відредагувати цей файл у кореневому каталозі сайту через «File Manager» і додати туди наступний рядок:

php_value display_errors 1

Детальні кроки щодо пошуку файлу .htaccess можна знайти у цьому матеріалі. 

Після внесення змін натисніть Зберегти.

Як замінити відсутні файли WordPress

WordPress використовує просту й організовану файлову структуру, що робить відновлення відсутніх або пошкоджених файлів досить легким. Дуже рекомендується замінити стандартні основні файли, оскільки це гарантує повне відновлення файлів, скомпрометованих шкідливим ПЗ. Однак дійте обережно: заміна певних файлів або папок може призвести до втрати даних, якщо це зробити неправильно.

Дотримуйтесь наведених нижче кроків, щоб замінити відсутні файли WordPress:

  1. Увійдіть у ваш cPanel і перейдіть до Softaculous Apps Installer.

  2. Створіть нову інсталяцію WordPress у тимчасовому підкаталозі. Для цього натисніть на іконку WordPress і виберіть Встановити:


  3. Вас буде перенаправлено на сторінку налаштувань інсталяції. Там виберіть потрібний домен із випадаючого списку та введіть назву підпапки у полі В каталозі.

    У цьому прикладі ми використовуємо підпапку ” fix” для інсталяції WordPress:


    ПРИМІТКА: Заміна всіх стандартних файлів оновить вашу поточну інсталяцію до версії, яка використовується у тимчасовій інсталяції «fix», а змішування файлів із різних версій може спричинити конфлікти системи та порушити роботу сайту.

    Якщо важливо зберегти поточну версію WordPress або ви плануєте замінити лише окремі файли, перевірте версію вашого сайту у файлі /wp-includes/version.php і переконайтеся, що нова інсталяція використовує ту ж саму версію WordPress:


  4. Ви можете вибрати версію WordPress для нової інсталяції безпосередньо у вікні встановлення:


  5. Після налаштування всіх параметрів натисніть Швидка установка або прокрутіть донизу сторінки встановлення й натисніть Встановити. 

  6. Після завершення нової інсталяції WordPress її файли з’являться у «File Manager» > кореневий каталог вашого домену. Відкрийте папку подвійним кліком:


  7. Щоб замінити конкретний відсутній файл (наприклад, wp-settings.php), знайдіть цей файл у каталозі нової інсталяції.

  8. Після цього перемістіть файл у поточний кореневий каталог вашого сайту: клацніть правою кнопкою миші по файлу > натисніть Перемістити > введіть шлях до кореневої папки сайту > натисніть Перемістити файл(и): 


  9. Після завершення відсутній файл буде відновлено, і ваш сайт має завантажуватися коректно.

Як замінити всі стандартні файли WordPress

Під час заміни всіх стандартних файлів WordPress для сайту кроки 1–6 такі ж, як у розділі «Як замінити відсутні файли WordPress». 

Після виконання цих кроків і створення нової інсталяції WordPress, щоб замінити всі стандартні файли у кореневій папці вашого сайту, виконайте такі дії:

  1. Відкрийте кореневу папку нової інсталяції WordPress:


  2. У папці нової інсталяції видаліть такі файли та папки:


    • .htaccess

    • wp-config.php

    • wp-content

      Ці файли та папки містять налаштування й контент вашого сайту, тому їх не можна змінювати.

  3. Потім перемістіть решту файлів у кореневий каталог основного сайту. Для цього скористайтеся кнопкою Вибрати все > натисніть Перемістити > введіть шлях до кореневої папки сайту > натисніть Перемістити файл(и):


  4. Основні файли WordPress повністю замінено. Відвідайте ваш сайт, щоб переконатися, що все працює коректно.

    Якщо сайт все ще показує помилки, перевірте error_log ще раз. У більшості випадків додаткові проблеми викликані відсутністю файлів теми або плагінів.

Відсутні файли теми або плагінів

Відсутність файлів теми або плагінів може виникати з різних причин, але найпоширеніша — це шкідливе ПЗ, яке заражає та видаляє важливі компоненти вашої інсталяції WordPress. 

Якщо будь-які файли плагінів або тем WordPress відсутні, ви можете зіткнутися з такими проблемами:

  • Пуста сторінка;

  • Помилка 500 Internal Server Error;

  • Помилка «На цьому сайті виникли технічні проблеми» (з’явилася у WordPress 5.2.2);

  • Частково завантажена або «зламана» сторінка.

Для діагностики проблеми зверніться до наступних розділів цієї статті: Перевірте файл error_log вашого сайту та Увімкніть опцію display_errors у PHP.

У вашому error_log або безпосередньо на сайті можуть з’являтися такі повідомлення про помилки:

PHP Fatal error: Uncaught Error: Call to undefined function sample_function() in /home/cPaneluser/...

Нижче наведено приклад помилки, спричиненої пошкодженим або відсутнім файлом плагіна:


Щоб відновити відсутній файл, просто перевстановіть відповідну тему або плагін.

ПРИМІТКА: Відсутність файлів functions.php у темах часто пов’язана зі шкідливим ПЗ wp-vcd.php, яке зазвичай знаходиться у каталозі /wp-includes. Перед встановленням нової теми видаліть wp-vcd.php, якщо він існує, або, для повної безпеки, замініть усі стандартні файли WordPress, як описано вище.

Шкідливі редиректи

У деяких випадках, коли ваш сайт заражено шкідливим ПЗ, він може почати перенаправляти відвідувачів на шкідливі або підозрілі сторінки. Найчастіше ця проблема виникає через небезпечний плагін або тему, які дозволяють зловмисникам змінювати URL-адреси в базі даних або редагувати файли сайту.

ПРИМІТКА: Ніколи не натискайте на жодне з перенаправлених посилань. Це може заразити ваш комп’ютер шкідливим ПЗ:


Щоб усунути шкідливі редиректи, дотримуйтесь наведених нижче кроків:

  1. Знайдіть файл конфігурації бази даних вашого сайту — wp-config.php у вашому cPanel > File Manager > кореневій папці сайту. Відкрийте файл і знайдіть у ньому назву бази даних сайту:


  2. Далі відкрийте базу даних, призначену для вашого сайту, у меню phpMyAdmin вашого cPanel, натиснувши на неї, і перейдіть до таблиці wp_options («wp_» — це стандартний префікс; у вас він може бути іншим):


  3. Перевірте значення полів siteurl та home , і якщо там є шкідливі або підозрілі URL-адреси, замініть їх на вашу справжню адресу домену: 


  4. Проскануйте решту бази даних на наявність подібних шкідливих URL-адрес і замініть їх відповідно. 

  5. Тимчасово замініть ваш поточний .htaccess на чисту стандартну версію. Найкраще перейменувати існуючий файл (наприклад, .htaccess_old) і створити новий з нуля.

    Щоб перейменувати файл, двічі клацніть по ньому > виберіть Перейменувати у списку > введіть нову назву файлу > і натисніть Перейменувати файл.

    Після цього, щоб створити новий файл, натисніть + Файл > назвіть його .htaccess > і виберіть Створити новий файл.

  6. Після створення нового .htaccess відредагуйте його: клацніть правою кнопкою миші > виберіть Редагувати у списку. Коли відкриється вікно редагування, вставте у файл такі стандартні правила WordPress:

    # BEGIN WordPress
    RewriteEngine On
    RewriteBase /
    RewriteRule ^index\.php$ - [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /index.php [L]
    # END WordPress

  7. Натисніть Зберегти зміни.

Якщо ваш сайт продовжує перенаправляти, спробуйте замінити всі стандартні основні файли WordPress.

Ви також можете тимчасово вимкнути всі плагіни через панель керування WordPress або базу даних і пробувати вмикати їх по одному. Після активації кожного плагіна перевіряйте сайт, щоб визначити, який саме викликає проблему зі шкідливим редиректом.

Потрібна дійсна адреса електронної пошти