Поўны падручнік па ліквідацыі непаладак 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/ Падручнік «Поўнае рашэнне праблемы немагчымасці стварэння wordfence-waf.php у WordPress», прыведзены тут, можа быць карысным для вас.

Запрашаем падзяліцца спасылкай на гэты артыкул:https://www.chenweiliang.com/cwl-34337.html

Каб адкрыць больш схаваных хітрасцяў🔑, далучайцеся да нашага канала ў Telegram!

Падзяліцеся і пастаўце лайкі, калі вам гэта падабаецца! Вашы акцыі і лайкі - наша пастаянная матывацыя!

 

发表 评论

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

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