Artikel Directory
Iemand vertelde dat hij na de installatie van Wordfence op zijn website steeds foutmeldingen kreeg dat het bestand wordfence-waf.php niet in de hoofdmap kon worden aangemaakt. Ik vroeg hem om een screenshot te sturen; de foutmelding bestond uit slechts één regel, waarin stond dat het een probleem met de bestandsrechten betrof.
Ik dacht er even over na en realiseerde me dat ik dit al eerder was tegengekomen. Ik heb er een eeuwigheid over gedaan om het op te lossen, en dacht bijna dat de hostingprovider iets in de zin had. Het bleek een probleem met machtigingen en eigendom te zijn, maar de logica van het hostingcontrolepaneel kan echt verwarrend zijn.

Laat me eerst even verduidelijken wat wordfence-waf.php precies is.
Het is in feite het beveiligingsbestand van de Wordfence-firewall, dat in de hoofdmap van de website moet worden geplaatst, op hetzelfde niveau als wp-config.php.
Zonder dit bestand kan de firewall niet starten; het is alsof je een slot hebt geïnstalleerd, maar de sleutel er niet in past.
Optie 1: Machtigingen met één klik wijzigen via het configuratiescherm (BT-paneel/)HestiaCP/cPanel)
Als je BT Panel gebruikt, is het eigenlijk heel eenvoudig. Ga naar je website, zoek de betreffende site, klik op Instellingen en vervolgens op Maprechten. Wijzig de rechten van de hoofdmap van de website naar 755 en de rechten van alle bestanden naar 644. Controleer vervolgens of de gebruiker die het programma uitvoert "www" is; zo niet, wijzig dit dan. Klik op de knop "Repareren van rechten", wacht tot het proces is voltooid, vernieuw Wordfence en probeer het opnieuw.
Ga voor HestiaCP naar de pagina voor het bewerken van de website en schakel de optie 'Schrijftoegang tot de webroot toestaan' in. Voer vervolgens een paar SSH-opdrachten uit om de eigenaar en de machtigingen van de websitedirectory te uniformeren.
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 is intuïtiever. Open de bestandsbeheerder, schakel 'Verborgen bestanden weergeven' in de rechterbovenhoek in, klik met de rechtermuisknop op de map en wijzig de machtigingen naar 755, wijzig de bestandsmachtigingen naar 644, en er is ook een functie om de bestandseigenaar vast te zetten in de geavanceerde opties.
Optie 2: Handmatig de machtigingen wijzigen via SSH (algemeen)Linux)
Als het configuratiescherm dit niet aankan, gebruik dan handmatig SSH. Nadat u verbinding hebt gemaakt met de server, moet u eerst het eigenaarschap uniformiseren. In een LNMP/LEMP-omgeving is de web runtime-groep doorgaans www-data of www.
chown -R 你的面板用户:www-data /网站根目录完全路径Stel vervolgens de maprechten in op 755 en de bestandsrechten op 644.
find /网站根目录 -type d -print0 | xargs -0 chmod 755
find /网站根目录 -type f -print0 | xargs -0 chmod 644Nadat het proces is voltooid, ga je terug naar de WP-backend en schakel je de firewall opnieuw in; dit zou het probleem hoogstwaarschijnlijk moeten oplossen.
Optie 3: Handmatig het bestand wordfence-waf.php aanmaken (een uitstekende oplossing wanneer de toegangsrechten geblokkeerd zijn)
Als je via het SSH-paneel niets kunt wijzigen, doe het dan handmatig. Maak een bestand met de naam wordfence-waf.php aan in de hoofdmap en plak de volgende code erin.
<?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';Vergeet niet om versie 7.11.0 te vervangen door uw huidige Wordfence-versie. Stel de bestandsrechten in op 644 en zorg ervoor dat de eigenaar overeenkomt met de website. Bewerk vervolgens wp-config.php en voeg de volgende regel helemaal bovenaan het bestand toe.
require_once 'wordfence-waf.php';Sla Wordfence op en vernieuw het. De firewall zal het automatisch herkennen en geen foutmeldingen meer geven.
Optie 4: Controleer de regels die schrijftoegang beperken.
Soms is het geen probleem met de machtigingen, maar zit het configuratiebestand dat de toegang blokkeert. Open je .htaccess-bestand en verwijder alle regels die de schrijftoegang tot bestanden beperken of het aanmaken van PHP-bestanden blokkeren. Controleer voor Nginx de configuratie van je website op beperkingen zoals 'root path read only' of 'create_file off' en verwijder deze.
Een ander scenario is dat de virtuele host of de lichtgewicht cloudserver zelf het aanmaken van PHP-bestanden in de rootmap beperkt. In dat geval moet u contact opnemen met uw hostingprovider om de beperking op te heffen, of de beveiligingsmodus van Wordfence wijzigen. Ga naar het Wordfence-menu, Alle opties, WAF en wijzig de beveiligingsmodus naar Uitgebreide beveiliging om het aanmaken van bestanden in de rootmap te omzeilen.
Oplossing 5: Pluginconflicten die een blokkering veroorzaken
Sommige caching- of beveiligingsplugins kunnen deze bewerking blokkeren. Schakel tijdelijk cachingplugins zoals WP Rocket, W3 Total Cache en LiteSpeed Cache uit, evenals beveiligingsplugins zoals Sucuri en iThemes Security. Wis vervolgens de servercache en opcache en herstart de PHP-service.
systemctl restart php8.3-fpmSnelle stappen voor probleemoplossing (het wordt aanbevolen de stappen in de juiste volgorde te volgen)
Ik raad je aan deze volgorde aan te houden om problemen te voorkomen. Ten eerste, zorg dat de machtigingen en het eigenaarschap uniform zijn; dit heeft de grootste kans om het probleem op te lossen. Als dat niet werkt, herstart PHP-FPM en vernieuw de backend. Als dat nog steeds niet werkt, maak dan handmatig een nieuw bestand aan en pas wp-config aan. Controleer vervolgens of je Nginx- of Apache-configuratie het aanmaken van nieuwe PHP-bestanden in de rootmap blokkeert. Overweeg ten slotte om de firewallmodus te wijzigen.
Ik moet je er nog even op wijzen dat je nooit de machtigingen op 777 moet instellen. Mapmachtigingen moeten 755 zijn en bestandsmachtigingen 644; dat is de standaard. Het instellen van machtigingen op 777 maakt je website direct kwetsbaar en vormt een extreem hoog beveiligingsrisico. Als je gehackt wordt, is het te laat om er spijt van te hebben.
Eerlijk gezegd weet ik niet zeker of deze oplossingen in jouw situatie werken, maar ik heb de valkuilen die ik tegenkwam en de methoden die ik heb ontdekt met je gedeeld. Als je nog andere foutmeldingen krijgt, maak dan een screenshot en stuur die naar me, dan kijk ik er nog eens naar.
Aangezien je tot hier hebt gelezen, en je het nuttig vond, geef het dan een like en deel het. Wil je als eerste op de hoogte blijven van de laatste ontwikkelingen, volg me dan!
Bedankt voor het lezen van mijn artikel. Tot de volgende keer.
Hoop Chen Weiliang Blog ( https://www.chenweiliang.com/ De hier gedeelde handleiding "Complete oplossing voor het probleem dat WordPress Wordfence geen wordfence-waf.php kan aanmaken" kan u wellicht van dienst zijn.
Welkom om de link van dit artikel te delen:https://www.chenweiliang.com/cwl-34337.html
