Komplet fejlfindingsvejledning til WordPress Wordfences manglende evne til at oprette wordfence-waf.php

Nogen nævnte, at han efter at have installeret Wordfence på sin hjemmeside blev ved med at få fejlmeddelelser om, at filen wordfence-waf.php ikke kunne oprettes i rodmappen. Jeg bad ham om at sende mig et skærmbillede; fejlmeddelelsen var kun én linje, der sagde, at det var et problem med filtilladelser.

Jeg tænkte over det et øjeblik og indså, at jeg havde stødt på dette før. Jeg brugte evigheder på at forsøge at finde ud af det, næsten i den tro, at hostingudbyderen havde noget på spil. Det viste sig at være et problem med tilladelser og ejerskab, men logikken i hosting-kontrolpanelet kan være virkelig forvirrende.

Komplet fejlfindingsvejledning til WordPress Wordfences manglende evne til at oprette wordfence-waf.php

Lad mig først præcisere, hvad denne wordfence-waf.php er.

Det er faktisk beskyttelsesfilen til Wordfence-firewallen, som skal skrives i hjemmesidens rodmappe på samme niveau som wp-config.php.

Uden denne fil kan firewallen ikke starte; det er som om du har installeret en lås, men nøglen kan ikke indsættes.

Mulighed 1: Ændring af tilladelser med et enkelt klik via kontrolpanelet (BT Panel/)HestiaCP/cPanel)

Hvis du bruger BT Panel, er det faktisk det enkleste. Gå til din hjemmeside, find den tilsvarende side, klik på Indstillinger, og gå derefter til Katalogtilladelser. Skift tilladelsen for hjemmesidens rodmappe til 755 og tilladelsen for alle filer til 644. Kontroller derefter, om den kørende bruger er "www". Hvis ikke, så skift tilladelse. Klik på knappen "Reparer tilladelser", vent på, at det er færdigt, opdater Wordfence, og prøv igen.

For HestiaCP skal du gå til hjemmesidens redigeringsside og aktivere indstillingen "Tillad skriveadgang til webrod". Kør derefter et par SSH-kommandoer for at forene ejeren og tilladelserne til hjemmesidens mappe.

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 er mere intuitivt. Åbn filhåndteringen, slå "Vis skjulte filer" til i øverste højre hjørne, højreklik på mappen og skift tilladelserne til 755, skift filtilladelserne til 644, og der er også en funktion til at rette filejeren i de avancerede indstillinger.

Mulighed 2: Ændre tilladelser manuelt via SSH (generelt)Linux)

Hvis kontrolpanelet ikke kan håndtere det, skal du bruge SSH manuelt. Når du har forbindelse til serveren, skal du først forene ejerskabet. I et LNMP/LEMP-miljø er webruntime-gruppen typisk www-data eller www.

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

Indstil derefter mappetilladelserne til 755 og filtilladelserne til 644.

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

Når processen er færdig, skal du vende tilbage til WP-backend'en og genaktivere firewallen; det burde højst sandsynligt løse problemet.

Mulighed 3: Opret wordfence-waf.php manuelt (en genial løsning, når tilladelserne er låst)

Hvis du ikke kan ændre noget via SSH-panelet, skal du gøre det manuelt. Opret en fil med navnet wordfence-waf.php i rodmappen, og indsæt følgende kode i den.

<?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';

Husk at erstatte version 7.11.0 med din nuværende Wordfence-version. Indstil filtilladelserne til 644, så skal ejeren matche webstedet. Rediger derefter wp-config.php, og tilføj følgende linje øverst i filen.

require_once 'wordfence-waf.php';

Gem og opdater Wordfence. Firewallen vil automatisk genkende den og ikke længere rapportere fejl.

Mulighed 4: Markér de regler, der begrænser skriveadgang.

Nogle gange er det ikke et problem med tilladelser, men snarere konfigurationsfilen, der blokerer det. Åbn din .htaccess-fil, og slet alle regler, der begrænser skriveadgang til filer eller forhindrer oprettelse af PHP-filer. For Nginx skal du kontrollere din webstedskonfiguration for begrænsninger som f.eks. root path read only eller create_file deaktiveret, og fjerne dem.

Et andet scenarie er, at den virtuelle vært eller letvægts-cloudhosting selv begrænser genereringen af ​​PHP-filer i rodmappen. I dette tilfælde skal du kontakte din hostingudbyder for at fjerne begrænsningen eller skifte beskyttelsestilstanden for Wordfence. Gå til Wordfence-menuen, Alle indstillinger, WAF, og skift beskyttelsesmotortilstanden til Udvidet beskyttelse for at omgå oprettelsen af ​​rodfiler.

Løsning 5: Plugin-konflikter forårsager blokering

Nogle caching- eller sikkerhedsplugins kan blokere denne handling. Deaktiver midlertidigt caching-plugins som WP Rocket, W3 Total Cache og LiteSpeed ​​​​Cache, samt sikkerhedsplugins som Sucuri og iThemes Security. Ryd derefter serverens cache og opcache, og genstart PHP-tjenesten.

systemctl restart php8.3-fpm

Hurtig fejlfindingssekvens (det anbefales at følge trinnene i rækkefølge)

Jeg foreslår, at du følger denne rækkefølge for at undgå at rode rundt. Først skal du samle tilladelser og ejerskab; dette har den højeste sandsynlighed for at løse problemet. Hvis det ikke virker, skal du genstarte PHP-FPM og opdatere backend. Hvis det stadig ikke virker, skal du manuelt oprette en ny fil og ændre wp-config. Kontroller derefter, om din Nginx- eller Apache-konfiguration blokerer oprettelsen af ​​nye PHP-filer i rodmappen. Overvej endelig at skifte firewall-tilstand.

En ting jeg må minde dig om er, at du aldrig bør sætte tilladelser til 777. Mappetilladelser bør være 755 og filtilladelser 644; det er standarden. At sætte tilladelser til 777 vil direkte eksponere dit websted og udgøre en ekstremt høj sikkerhedsrisiko. Hvis du bliver hacket, vil det være for sent at fortryde det.

For at være ærlig, er jeg ikke sikker på, om disse løsninger vil virke i din situation, men jeg har delt de faldgruber, jeg stødte på, og de metoder, jeg fandt ud af. Hvis du får andre fejlmeddelelser, så tag et skærmbillede og send det til mig, så vil jeg kigge på det igen.

Nu du har læst så langt, så synes du meget godt om og del det, hvis du fandt det nyttigt. Hvis du vil modtage opdateringer først, kan du også følge mig!

Tak fordi du læste min artikel. Vi ses næste gang.

发表 评论

Din e-mailadresse vil ikke blive offentliggjort. 必填 项 已 用 * 标注

Rul til top