Straipsnių katalogas
Kažkas užsiminė, kad įdiegus „Wordfence“ savo svetainėje, jis nuolat gaudavo klaidų pranešimus, kad nepavyko sukurti failo „wordfence-waf.php“ šakniniame kataloge. Paprašiau jo atsiųsti ekrano kopiją; klaidos pranešimas buvo tik viena eilutė, kurioje teigiama, kad tai failo leidimų problema.
Akimirką pagalvojau ir supratau, kad su tuo jau esu susidūręs. Amžinai bandžiau išsiaiškinti, beveik manydamas, kad prieglobos paslaugų teikėjas kažką rezga. Paaiškėjo, kad tai buvo leidimų ir nuosavybės problema, bet prieglobos valdymo skydelio logika gali būti labai paini.

Pirmiausia patikslinsiu, kas yra tas wordfence-waf.php.
Tai iš tikrųjų yra „Wordfence“ užkardos apsaugos failas, kuris turi būti įrašytas į svetainės šakninį katalogą, tame pačiame lygyje kaip ir wp-config.php.
Be šio failo užkarda negali paleisti; tai lyg būtumėte įdiegę spyną, bet negalėtumėte įdėti rakto.
1 variantas: Leidimų keitimas vienu spustelėjimu per valdymo skydelį („BT Panel“)HestiaCP/cPanel)
Jei naudojate „BT Panel“, tai iš tikrųjų yra paprasčiausia. Eikite į savo svetainę, raskite atitinkamą svetainę, spustelėkite „Nustatymai“, tada eikite į „Katalogų leidimai“. Pakeiskite svetainės šakninio katalogo leidimą į 755, o visų failų leidimą – į 644. Tada patikrinkite, ar veikiantis vartotojas yra „www“; jei ne, pakeiskite jį. Spustelėkite mygtuką „Taisyti leidimus“, palaukite, kol jis bus baigtas, atnaujinkite „Wordfence“ ir bandykite dar kartą.
„HestiaCP“ atveju eikite į svetainės redagavimo puslapį ir įjunkite parinktį „Leisti rašymo prieigą žiniatinklio šaknies vartotojui“. Tada paleiskite kelias SSH komandas, kad suvienodintumėte svetainės katalogo savininką ir teises.
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“ yra intuityvesnis. Atidarykite failų tvarkyklę, viršutiniame dešiniajame kampe įjunkite „Rodyti paslėptus failus“, dešiniuoju pelės mygtuku spustelėkite katalogą ir pakeiskite teises į 755, pakeiskite failo teises į 644, taip pat yra funkcija, leidžianti pataisyti failo savininką išplėstinėse parinktyse.
2 variantas: rankiniu būdu keiskite teises per SSH (bendroji informacija)Linux)
Jei valdymo skydas negali to apdoroti, naudokite SSH rankiniu būdu. Prisijungę prie serverio, pirmiausia suvienodinkite nuosavybės teisę. LNMP/LEMP aplinkoje žiniatinklio vykdymo laiko grupė paprastai yra www-data arba www.
chown -R 你的面板用户:www-data /网站根目录完全路径Tada nustatykite aplanko teises į 755, o failo teises – į 644.
find /网站根目录 -type d -print0 | xargs -0 chmod 755
find /网站根目录 -type f -print0 | xargs -0 chmod 644Baigę procesą, grįžkite į WP vidinę sistemą ir iš naujo įjunkite užkardą; tai greičiausiai turėtų išspręsti problemą.
3 variantas: rankiniu būdu sukurkite wordfence-waf.php (puikus sprendimas, kai teisės užrakintos)
Jei negalite nieko pakeisti per SSH skydelį, padarykite tai rankiniu būdu. Šakniniame kataloge sukurkite failą pavadinimu wordfence-waf.php ir įklijuokite į jį šį kodą.
<?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';Nepamirškite pakeisti 7.11.0 versijos dabartine „Wordfence“ versija. Nustatykite failo teises į 644, o savininkas turėtų sutapti su svetaine. Tada redaguokite wp-config.php ir pačioje failo viršuje pridėkite šią eilutę.
require_once 'wordfence-waf.php';Išsaugokite ir atnaujinkite „Wordfence“. Ugniasienė automatiškai ją atpažins ir nebepraneš apie klaidas.
4 variantas: patikrinkite taisykles, kurios riboja rašymo prieigą.
Kartais problema ne ta, kad leidimai yra tvarkomi, o blokuoja konfigūracijos failas. Atidarykite .htaccess failą ir ištrinkite visas taisykles, kurios riboja failų rašymo prieigą arba neleidžia kurti PHP failų. „Nginx“ sistemoje patikrinkite svetainės konfigūraciją, ar nėra apribojimų, pvz., „šakninio katalogo kelias – tik skaitymui“ arba „create_file off“, ir juos pašalinkite.
Kitas scenarijus – pats virtualusis arba lengvas debesies prieglobos serveris riboja PHP failų generavimą šakniniame kataloge. Tokiu atveju turite susisiekti su savo prieglobos paslaugų teikėju, kad pašalintumėte apribojimą, arba perjungti „Wordfence“ apsaugos režimą. Eikite į „Wordfence“ meniu, Visos parinktys, WAF ir pakeiskite apsaugos modulio režimą į Išplėstinė apsauga, kad apeitumėte šakninio failo kūrimą.
5 sprendimas: Įskiepių konfliktai, sukeliantys blokavimą
Kai kurie talpyklos arba saugos įskiepiai gali blokuoti šią operaciją. Laikinai išjunkite talpyklos įskiepius, tokius kaip „WP Rocket“, „W3 Total Cache“ ir „LiteSpeed Cache“, taip pat saugos įskiepius, tokius kaip „Sucuri“ ir „iThemes Security“. Tada išvalykite serverio talpyklą ir „opcache“ ir paleiskite PHP paslaugą iš naujo.
systemctl restart php8.3-fpmGreita trikčių šalinimo seka (rekomenduojama atlikti veiksmus eilės tvarka)
Siūlau laikytis šios tvarkos, kad išvengtumėte painiavos. Pirmiausia suvienodinkite teises ir nuosavybę; tai turi didžiausią tikimybę išspręsti problemą. Jei tai nepadeda, paleiskite PHP-FPM iš naujo ir atnaujinkite serverio sąsają. Jei tai vis tiek nepadeda, rankiniu būdu sukurkite naują failą ir modifikuokite wp-config. Tada patikrinkite, ar jūsų „Nginx“ ar „Apache“ konfigūracija neblokuoja naujų PHP failų kūrimo šakniniame kataloge. Galiausiai apsvarstykite galimybę perjungti užkardos režimus.
Vienas dalykas, kurį turiu jums priminti, yra tai, kad niekada neturėtumėte nustatyti leidimų į 777. Aplankų leidimai turėtų būti 755, o failų leidimai – 644; tai yra standartas. Nustačius leidimus į 777, jūsų svetainė bus tiesiogiai pažeidžiama ir sukels itin didelę saugumo riziką. Jei jūsų svetainė bus nulaužta, bus per vėlu gailėtis.
Jei atvirai, nesu tikras, ar šie sprendimai veiks jūsų situacijoje, bet pasidalinau sunkumais, su kuriais susidūriau, ir metodais, kuriuos išsiaiškinau. Jei gausite kitų klaidų pranešimų, padarykite ekrano kopiją ir atsiųskite ją man, o aš dar kartą peržiūrėsiu.
Kadangi jau perskaitėte iki šiol, jei manote, kad tai buvo naudinga, prašome paspausti „patinka“ ir pasidalyti. Jei norite gauti naujienas pirmieji, taip pat galite mane sekti!
Ačiū, kad perskaitėte mano straipsnį. Iki kito karto.
Hope Chen Weiliang tinklaraštis ( https://www.chenweiliang.com/ Čia pateikta pamoka „Pilnas sprendimas, kaip „WordPress Wordfence“ negali sukurti „wordfence-waf.php““, gali jums būti naudinga.
Kviečiame pasidalinti šio straipsnio nuoroda:https://www.chenweiliang.com/cwl-34337.html
