Imenik člankov
Nekdo je omenil, da je po namestitvi programa Wordfence na svojo spletno stran nenehno dobival napake, ki so govorile, da ni mogel ustvariti datoteke wordfence-waf.php v korenskem imeniku. Prosil sem ga, naj mi pošlje posnetek zaslona; sporočilo o napaki je bilo samo ena vrstica, v kateri je pisalo, da gre za težavo z dovoljenji za datoteko.
Za trenutek sem razmislil o tem in ugotovil, da sem se s tem že srečal. Celo večnost sem poskušal ugotoviti, kaj je to, skoraj sem mislil, da ponudnik gostovanja nekaj naklepa. Izkazalo se je, da gre za težavo z dovoljenji in lastništvom, vendar je logika nadzorne plošče za gostovanje lahko res zmedena.

Najprej naj pojasnim, kaj je ta datoteka wordfence-waf.php.
Pravzaprav gre za zaščitno datoteko požarnega zidu Wordfence, ki mora biti zapisana v korenskem imeniku spletnega mesta, na isti ravni kot wp-config.php.
Brez te datoteke se požarni zid ne more zagnati; to je kot da bi namestili ključavnico, vendar ključa ni mogoče vstaviti.
Možnost 1: Spreminjanje dovoljenj z enim klikom prek nadzorne plošče (BT Panel/)HestiaCP/cPanel)
Če uporabljate BT Panel, je to pravzaprav najpreprostejše. Pojdite na svoje spletno mesto, poiščite ustrezno spletno mesto, kliknite Nastavitve in nato pojdite na Dovoljenja imenika. Spremenite dovoljenje korenskega imenika spletnega mesta na 755 in dovoljenje za vse datoteke na 644. Nato preverite, ali je uporabnik, ki se izvaja, »www«; če ni, ga spremenite. Kliknite gumb »Popravi dovoljenja«, počakajte, da se konča, osvežite Wordfence in poskusite znova.
Za HestiaCP pojdite na stran za urejanje spletnega mesta in omogočite možnost »Dovoli dostop za pisanje v spletni koren«. Nato zaženite nekaj ukazov SSH, da poenotite lastnika in dovoljenja imenika spletnega mesta.
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 644cPanel je bolj intuitiven. Odprite upravitelja datotek, v zgornjem desnem kotu vklopite »Prikaži skrite datoteke«, z desno miškino tipko kliknite imenik in spremenite dovoljenja na 755, dovoljenja datotek spremenite na 644, v naprednih možnostih pa je tudi funkcija za določitev lastnika datoteke.
Možnost 2: Ročno spreminjanje dovoljenj prek SSH (splošno)Linux)
Če nadzorna plošča tega ne zmore, ročno uporabite SSH. Ko se povežete s strežnikom, najprej poenotite lastništvo. V okolju LNMP/LEMP je spletna izvajalna skupina običajno www-data ali www.
chown -R 你的面板用户:www-data /网站根目录完全路径Nato nastavite dovoljenja za mapo na 755 in dovoljenja za datoteke na 644.
find /网站根目录 -type d -print0 | xargs -0 chmod 755
find /网站根目录 -type f -print0 | xargs -0 chmod 644Ko je postopek končan, se vrnite v zaledno okolje WP in ponovno omogočite požarni zid; to bi najverjetneje moralo odpraviti težavo.
Možnost 3: Ročno ustvarite datoteko wordfence-waf.php (odlična rešitev, ko so dovoljenja zaklenjena)
Če prek SSH panela ne morete ničesar spremeniti, to storite ročno. V korenskem imeniku ustvarite datoteko z imenom wordfence-waf.php in vanjo prilepite naslednjo kodo.
<?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';Ne pozabite zamenjati različice 7.11.0 s trenutno različico programa Wordfence. Dovoljenja datotek nastavite na 644, lastnik pa se mora ujemati s spletnim mestom. Nato uredite datoteko wp-config.php in na sam vrh datoteke dodajte naslednjo vrstico.
require_once 'wordfence-waf.php';Shranite in osvežite Wordfence. Požarni zid ga bo samodejno prepoznal in ne bo več poročal o napakah.
Možnost 4: Preverite pravila, ki omejujejo dostop za pisanje.
Včasih težava ni v dovoljenjih, temveč v konfiguracijski datoteki, ki jo blokira. Odprite datoteko .htaccess in izbrišite vsa pravila, ki omejujejo dostop do pisanja datotek ali preprečujejo ustvarjanje datotek PHP. Za Nginx preverite konfiguracijo spletnega mesta za omejitve, kot sta korenska pot samo za branje ali izklopljeno create_file, in jih odstranite.
Drug scenarij je, da virtualni gostitelj ali lahka storitev gostovanja v oblaku sama omejuje ustvarjanje datotek PHP v korenskem imeniku. V tem primeru se morate obrniti na svojega ponudnika gostovanja, da odstranite omejitev ali preklopite način zaščite Wordfence. Pojdite v meni Wordfence, Vse možnosti, WAF in spremenite način zaščite na Razširjena zaščita, da se izognete ustvarjanju korenskih datotek.
Rešitev 5: Konflikti vtičnikov povzročajo blokiranje
Nekateri vtičniki za predpomnjenje ali varnost lahko blokirajo to operacijo. Začasno onemogočite vtičnike za predpomnjenje, kot so WP Rocket, W3 Total Cache in LiteSpeed Cache, ter varnostne vtičnike, kot sta Sucuri in iThemes Security. Nato počistite predpomnilnik strežnika in opcache ter znova zaženite storitev PHP.
systemctl restart php8.3-fpmHitro zaporedje odpravljanja težav (priporočljivo je, da korake sledite po vrsti)
Predlagam, da sledite temu vrstnemu redu, da se izognete nepotrebnim težavam. Najprej poenotite dovoljenja in lastništvo; to ima največjo verjetnost rešitve težave. Če to ne deluje, znova zaženite PHP-FPM in osvežite zaledni sistem. Če to še vedno ne deluje, ročno ustvarite novo datoteko in spremenite wp-config. Nato preverite, ali vaša konfiguracija Nginx ali Apache blokira ustvarjanje novih datotek PHP v korenskem imeniku. Nazadnje razmislite o zamenjavi načina požarnega zidu.
Moram vas spomniti, da nikoli ne smete nastaviti dovoljenj na 777. Dovoljenja za mape naj bodo 755, dovoljenja za datoteke pa 644; to je standard. Če dovoljenja nastavite na 777, boste neposredno razkrili svoje spletno mesto, kar predstavlja izjemno veliko varnostno tveganje. Če vas vdrejo, bo prepozno, da bi obžalovali.
Iskreno povedano, nisem prepričan, ali bodo te rešitve delovale v vaši situaciji, vendar sem delil pasti, na katere sem naletel, in metode, ki sem jih ugotovil. Če se prikažejo še kakšna sporočila o napakah, naredite posnetek zaslona in mi ga pošljite, pa si bom še enkrat ogledal.
Ker ste prebrali do sem, vas prosim, da všečkate in delite, če se vam je zdelo koristno. Če želite prvi prejemati posodobitve, mi lahko tudi sledite!
Hvala, ker ste prebrali moj članek. Se vidimo naslednjič.
Blog Hope Chen Weiliang ( https://www.chenweiliang.com/ Vadnica »Celovita rešitev za nezmožnost WordPress Wordfencea ustvariti wordfence-waf.php«, ki je tukaj objavljena, vam bo morda v pomoč.
Dobrodošli, da delite povezavo tega članka:https://www.chenweiliang.com/cwl-34337.html
