Повний посібник з усунення несправностей WordPress Wordfence, коли не вдається створити wordfence-waf.php

Хтось згадував, що після встановлення Wordfence на його вебсайті він постійно отримував помилки про те, що не вдалося створити файл wordfence-waf.php у кореневому каталозі. Я попросив його надіслати мені скріншот; повідомлення про помилку було лише одним рядком, у якому говорилося, що це проблема з правами доступу до файлу.

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

Повний посібник з усунення несправностей WordPress Wordfence, коли не вдається створити wordfence-waf.php

Дозвольте мені спочатку уточнити, що таке цей wordfence-waf.php.

Насправді це файл захисту брандмауера Wordfence, який має бути записаний у кореневому каталозі веб-сайту, на тому ж рівні, що й wp-config.php.

Без цього файлу брандмауер не може запуститися; це якби ви встановили замок, але ключ не можна вставити.

Варіант 1: Зміна дозволів одним клацанням миші через панель керування (BT Panel/)HestiaCP/Панель керування)

Якщо ви використовуєте BT Panel, це насправді найпростіше. Перейдіть на свій веб-сайт, знайдіть відповідний сайт, натисніть «Налаштування», потім перейдіть до розділу «Дозволи каталогу». Змініть дозвіл кореневого каталогу веб-сайту на 755, а дозвіл на всі файли – на 644. Потім перевірте, чи запущений користувач – це «www»; якщо ні, змініть його. Натисніть кнопку «Відновити дозволи», зачекайте завершення, оновіть Wordfence та спробуйте ще раз.

Для HestiaCP перейдіть на сторінку редагування веб-сайту та увімкніть опцію під назвою «Дозволити доступ для запису до кореневого каталогу веб-сайту». Потім виконайте кілька команд SSH, щоб уніфікувати власника та дозволи каталогу веб-сайту.

chown -R admin:www-data /home/admin/web/你的域名/public_html
chmod -R 755 /home/admin/web/你的域名/public_html
find /home/admin/web/你的域名/public_html -type f -print0 | xargs -0 chmod 644

cPanel інтуїтивно зрозуміліший. Відкрийте файловий менеджер, увімкніть «Показувати приховані файли» у верхньому правому куті, клацніть правою кнопкою миші на директорії та змініть дозволи на 755, змініть дозволи файлів на 644, а також є функція фіксації власника файлу в розширених налаштуваннях.

Варіант 2: Зміна дозволів вручну через SSH (загальне)Linux)

Якщо панель керування не може з цим впоратися, скористайтеся SSH вручну. Після підключення до сервера спочатку уніфікуйте права власності. У середовищі LNMP/LEMP група веб-виконання зазвичай має назву www-data або www.

chown -R 你的面板用户:www-data /网站根目录完全路径

Потім встановіть права доступу до папки на 755, а до файлу на 644.

find /网站根目录 -type d -print0 | xargs -0 chmod 755
find /网站根目录 -type f -print0 | xargs -0 chmod 644

Після завершення процесу поверніться до сервера WP та знову ввімкніть брандмауер; це, найімовірніше, має вирішити проблему.

Варіант 3: Вручну створіть wordfence-waf.php (чудове рішення, коли дозволи заблоковані)

Якщо ви нічого не можете змінити через панель SSH, зробіть це вручну. Створіть файл з назвою wordfence-waf.php у кореневому каталозі та вставте туди наступний код.

<?php
if (!defined('WFWAF_VERSION')) {
    define('WFWAF_VERSION', '7.11.0');
}
$wafConfig = array(
    'wafAutoPrepend' => true,
    'wafFile' => __FILE__,
    'wpContentDir' => dirname(__FILE__) . '/wp-content',
    'wpPluginsDir' => dirname(__FILE__) . '/wp-content/plugins',
    'wafLogDir' => dirname(__FILE__) . '/wp-content/wflogs',
);
require_once $wafConfig['wpPluginsDir'] . '/wordfence/lib/waf/waf.php';

Не забудьте замінити версію 7.11.0 на вашу поточну версію Wordfence. Встановіть права доступу до файлу на 644, а власник має збігатися з веб-сайтом. Потім відредагуйте wp-config.php і додайте наступний рядок у самий початок файлу.

require_once 'wordfence-waf.php';

Збережіть та оновіть Wordfence. Брандмауер автоматично розпізнає його та більше не повідомлятиме про помилки.

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

Іноді проблема не в правах доступу, а в конфігураційному файлі, який блокує це. Відкрийте файл .htaccess та видаліть усі правила, які обмежують доступ до файлів на запис або запобігають створенню PHP-файлів. Для Nginx перевірте конфігурацію сайту на наявність обмежень, таких як кореневий шлях "лише читання" або "create_file вимкнено", і видаліть їх.

Інший сценарій полягає в тому, що віртуальний хост або легкий хмарний сервер сам обмежує створення PHP-файлів у кореневому каталозі. У цьому випадку вам потрібно звернутися до свого хостинг-провайдера, щоб зняти обмеження або перемкнути режим захисту Wordfence. Перейдіть до меню Wordfence, Усі параметри, WAF та змініть режим механізму захисту на Розширений захист, щоб обійти створення кореневого файлу.

Рішення 5: Конфлікти плагінів призводять до блокування

Деякі плагіни кешування або безпеки можуть блокувати цю операцію. Тимчасово вимкніть плагіни кешування, такі як WP Rocket, W3 Total Cache та LiteSpeed ​​​​Cache, а також плагіни безпеки, такі як Sucuri та iThemes Security. Потім очистіть кеш сервера та opcache і перезапустіть службу PHP.

systemctl restart php8.3-fpm

Швидка послідовність усунення несправностей (рекомендується виконувати кроки по порядку)

Раджу дотримуватися цього порядку, щоб уникнути плутанини. Спочатку уніфікуйте дозволи та права власності; це має найвищу ймовірність вирішення проблеми. Якщо це не спрацює, перезапустіть PHP-FPM та оновіть серверну частину. Якщо це все ще не спрацює, вручну створіть новий файл та змініть wp-config. Потім перевірте, чи блокує конфігурація Nginx або Apache створення нових PHP-файлів у кореневому каталозі. Нарешті, розгляньте можливість перемикання режимів брандмауера.

Одне, про що я мушу вам нагадати, це те, що ніколи не слід встановлювати дозволи на 777. Дозволи для папок мають бути 755, а для файлів – 644; це стандарт. Встановлення дозволів на 777 безпосередньо розкриє ваш вебсайт, що створює надзвичайно високий ризик для безпеки. Якщо вас зламають, буде надто пізно шкодувати про це.

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

Оскільки ви дочитали до цього місця, якщо це було корисно, будь ласка, поставте лайк та поділіться цим. Якщо ви хочете отримувати оновлення першими, ви також можете підписатися на мене!

Дякую, що прочитали мою статтю. До зустрічі наступного разу.

Блог Hope Chen Weiliang ( https://www.chenweiliang.com/ Посібник «Повне рішення для неможливості WordPress Wordfence створити wordfence-waf.php», наведений тут, може бути вам корисним.

Ласкаво просимо поділитися посиланням на цю статтю:https://www.chenweiliang.com/cwl-34337.html

Щоб розкрити більше прихованих хитрощів🔑, приєднуйтесь до нашого Telegram-каналу!

Поділіться та поставте лайк, якщо вам подобається! Ваші розповсюдження та вподобання — наша постійна мотивація!

 

发表 评论

Ваша електронна адреса не буде опублікована. 必填 项 已 用 * Етикетка

Прокрутка до початку