Adresář článků
Někdo zmínil, že po instalaci Wordfence na jeho webové stránky se mu neustále zobrazovaly chyby, že se mu nepodařilo vytvořit soubor wordfence-waf.php v kořenovém adresáři. Požádal jsem ho, aby mi poslal snímek obrazovky; chybová hláška byla jen jeden řádek a tvrdila, že se jedná o problém s oprávněními k souboru.
Chvíli jsem o tom přemýšlel a uvědomil jsem si, že jsem se s tím už setkal. Strávil jsem věky snahou přijít na to, skoro jsem si myslel, že poskytovatel hostingu něco chystá. Ukázalo se, že jde o problém s oprávněními a vlastnictvím, ale logika ovládacího panelu hostingu může být opravdu matoucí.

Nejprve si ujasním, co je to wordfence-waf.php.
Ve skutečnosti se jedná o ochranný soubor firewallu Wordfence, který musí být zapsán v kořenovém adresáři webu, na stejné úrovni jako wp-config.php.
Bez tohoto souboru se firewall nemůže spustit; je to, jako byste nainstalovali zámek, ale klíč nelze vložit.
Možnost 1: Úprava oprávnění jedním kliknutím přes ovládací panel (BT Panel/)HestiaCP/cPanel)
Pokud používáte BT Panel, je to vlastně nejjednodušší. Přejděte na svůj web, najděte odpovídající web, klikněte na Nastavení a poté na Oprávnění adresáře. Změňte oprávnění kořenového adresáře webu na 755 a oprávnění všech souborů na 644. Poté zkontrolujte, zda je spuštěný uživatel „www“; pokud ne, změňte ho. Klikněte na tlačítko „Opravit oprávnění“, počkejte na dokončení, obnovte Wordfence a zkuste to znovu.
V případě HestiaCP přejděte na stránku pro úpravu webových stránek a povolte možnost „Povolit přístup pro zápis do webového kořenového adresáře“. Poté spusťte několik SSH příkazů pro sjednocení vlastníka a oprávnění adresáře webových stránek.
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 intuitivnější. Otevřete správce souborů, v pravém horním rohu zapněte „Zobrazovat skryté soubory“, klikněte pravým tlačítkem myši na adresář a změňte oprávnění na 755, změňte oprávnění souborů na 644 a v pokročilých možnostech je také funkce pro opravu vlastníka souboru.
Možnost 2: Ruční změna oprávnění přes SSH (obecné)Linux)
Pokud to ovládací panel nezvládne, použijte SSH ručně. Po připojení k serveru nejprve sjednoťte vlastnictví. V prostředí LNMP/LEMP je webová běhová skupina obvykle www-data nebo www.
chown -R 你的面板用户:www-data /网站根目录完全路径Pak nastavte oprávnění složky na 755 a oprávnění souboru na 644.
find /网站根目录 -type d -print0 | xargs -0 chmod 755
find /网站根目录 -type f -print0 | xargs -0 chmod 644Po dokončení procesu se vraťte do backendu WP a znovu povolte firewall; s největší pravděpodobností by to mělo problém vyřešit.
Možnost 3: Ruční vytvoření souboru wordfence-waf.php (skvělé řešení, když jsou oprávnění uzamčena)
Pokud nemůžete nic změnit přes SSH panel, udělejte to ručně. Vytvořte soubor s názvem wordfence-waf.php v kořenovém adresáři a vložte do něj následující kód.
<?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';Nezapomeňte nahradit verzi 7.11.0 vaší aktuální verzí Wordfence. Nastavte oprávnění k souboru na 644 a vlastník by měl odpovídat webové stránce. Poté upravte soubor wp-config.php a přidejte následující řádek úplně na začátek souboru.
require_once 'wordfence-waf.php';Uložte a obnovte Wordfence. Firewall jej automaticky rozpozná a již nebude hlásit chyby.
Možnost 4: Zkontrolujte pravidla, která omezují přístup k zápisu.
Někdy to není problém s oprávněními, ale spíše s konfiguračním souborem, který to blokuje. Otevřete soubor .htaccess a odstraňte všechna pravidla, která omezují přístup k zápisu do souborů nebo brání vytváření souborů PHP. V případě Nginx zkontrolujte konfiguraci webu, zda neobsahuje omezení, jako je kořenová cesta pouze pro čtení nebo vypnutí parametru create_file, a odstraňte je.
Dalším scénářem je, že virtuální hosting nebo lehký cloudový server sám omezuje generování PHP souborů v kořenovém adresáři. V tomto případě je třeba kontaktovat svého poskytovatele hostingu, aby toto omezení odstranil, nebo přepnout režim ochrany Wordfence. Přejděte do nabídky Wordfence, Všechny možnosti, WAF a změňte režim ochranného enginu na Rozšířená ochrana, abyste obešli vytváření kořenových souborů.
Řešení 5: Konflikty pluginů způsobující blokování
Některé pluginy pro ukládání do mezipaměti nebo zabezpečení mohou tuto operaci blokovat. Dočasně deaktivujte pluginy pro ukládání do mezipaměti, jako jsou WP Rocket, W3 Total Cache a LiteSpeed Cache, a také pluginy pro zabezpečení, jako jsou Sucuri a iThemes Security. Poté vymažte mezipaměť serveru a opcache a restartujte službu PHP.
systemctl restart php8.3-fpmRychlé pořadí řešení problémů (doporučuje se postupovat podle kroků v daném pořadí)
Doporučuji vám dodržovat toto pořadí, abyste se vyhnuli nepořádku. Nejprve sjednotte oprávnění a vlastnictví; to má nejvyšší pravděpodobnost vyřešení problému. Pokud to nefunguje, restartujte PHP-FPM a aktualizujte backend. Pokud to stále nefunguje, ručně vytvořte nový soubor a upravte wp-config. Poté zkontrolujte, zda vaše konfigurace Nginx nebo Apache neblokuje vytváření nových souborů PHP v kořenovém adresáři. Nakonec zvažte přepnutí režimů firewallu.
Jedna věc, kterou vám musím připomenout, je, že byste si nikdy neměli nastavovat oprávnění na 777. Oprávnění ke složkám by měla být 755 a k souborům 644; to je standard. Nastavení oprávnění na 777 přímo odhalí váš web, což představuje extrémně vysoké bezpečnostní riziko. Pokud budete napadeni hackery, bude příliš pozdě litovat.
Abych byl upřímný, nejsem si jistý, jestli tato řešení budou fungovat i ve vaší situaci, ale podělil jsem se o úskalí, na která jsem narazil, a o metody, které jsem objevil. Pokud se vám zobrazí další chybové zprávy, udělejte snímek obrazovky a pošlete mi ho, já se na to znovu podívám.
Jelikož jste to dočetli až sem, pokud vám to pomohlo, dejte to prosím like a sdílejte. Pokud chcete dostávat novinky jako první, můžete mě také sledovat!
Děkuji za přečtení mého článku. Uvidíme se příště.
Blog Hope Chen Weiliang ( https://www.chenweiliang.com/ Návod „Kompletní řešení pro WordPress Wordfence, který nelze vytvořit wordfence-waf.php“, který je zde sdílen, by vám mohl být užitečný.
Vítejte u sdílení odkazu na tento článek:https://www.chenweiliang.com/cwl-34337.html
