Directory articoli
Qualcuno ha segnalato che, dopo aver installato Wordfence sul proprio sito web, continuava a ricevere errori relativi alla creazione del file wordfence-waf.php nella directory principale. Gli ho chiesto di inviarmi uno screenshot; il messaggio di errore era composto da una sola riga e indicava un problema di permessi di accesso ai file.
Ci ho pensato un attimo e mi sono reso conto di aver già incontrato questo problema. Ho passato un sacco di tempo a cercare di risolverlo, quasi pensando che il provider di hosting stesse tramando qualcosa. Alla fine si è rivelato essere un problema di permessi e proprietà, ma la logica del pannello di controllo dell'hosting può essere davvero complicata.

Permettetemi innanzitutto di chiarire cos'è questo wordfence-waf.php.
Si tratta in realtà del file di protezione del firewall Wordfence, che deve essere scritto nella directory principale del sito web, allo stesso livello di wp-config.php.
Senza questo file, il firewall non può avviarsi; è come se avessi installato una serratura ma non riuscissi a inserire la chiave.
Opzione 1: Modifica delle autorizzazioni con un clic tramite il pannello di controllo (Pannello BT/)EstiaCP/cPanel)
Se utilizzi BT Panel, la procedura è davvero semplice. Vai al tuo sito web, trova il sito corrispondente, clicca su Impostazioni e poi su Permessi directory. Modifica i permessi della directory principale del sito web in 755 e i permessi di tutti i file in 644. Quindi verifica se l'utente corrente è "www"; in caso contrario, cambialo. Clicca sul pulsante "Ripara permessi", attendi il completamento dell'operazione, aggiorna Wordfence e riprova.
Per HestiaCP, accedi alla pagina di modifica del sito web e abilita l'opzione "Consenti l'accesso in scrittura alla directory principale del sito web". Dopodiché, esegui alcuni comandi SSH per unificare il proprietario e i permessi della directory del sito web.
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 è più intuitivo. Apri il file manager, attiva "Mostra file nascosti" nell'angolo in alto a destra, fai clic con il pulsante destro del mouse sulla directory e cambia i permessi in 755, cambia i permessi del file in 644, e c'è anche una funzione per bloccare il proprietario del file nelle opzioni avanzate.
Opzione 2: Modificare manualmente i permessi tramite SSH (generale)Linux)
Se il pannello di controllo non riesce a gestirlo, prova a connetterti manualmente tramite SSH. Una volta connesso al server, unifica prima la proprietà. In un ambiente LNMP/LEMP, il gruppo di runtime web è in genere www-data o www.
chown -R 你的面板用户:www-data /网站根目录完全路径Quindi imposta i permessi della cartella su 755 e i permessi del file su 644.
find /网站根目录 -type d -print0 | xargs -0 chmod 755
find /网站根目录 -type f -print0 | xargs -0 chmod 644Una volta completata la procedura, torna al pannello di amministrazione di WordPress e riattiva il firewall; questo dovrebbe risolvere il problema.
Opzione 3: Creare manualmente wordfence-waf.php (una soluzione infallibile quando i permessi sono bloccati)
Se non è possibile modificare le impostazioni SSH dal pannello di controllo, è necessario farlo manualmente. Crea un file denominato wordfence-waf.php nella directory principale e incolla al suo interno il seguente codice.
<?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';Ricorda di sostituire la versione 7.11.0 con la versione corrente di Wordfence. Imposta i permessi del file a 644 e il proprietario deve corrispondere al sito web. Quindi modifica il file wp-config.php e aggiungi la seguente riga all'inizio del file.
require_once 'wordfence-waf.php';Salva e aggiorna Wordfence. Il firewall lo riconoscerà automaticamente e non segnalerà più errori.
Opzione 4: Verificare le regole che limitano l'accesso in scrittura.
A volte il problema non riguarda i permessi, ma piuttosto il file di configurazione che lo blocca. Apri il file .htaccess ed elimina tutte le regole che limitano l'accesso in scrittura ai file o impediscono la creazione di file PHP. Per Nginx, controlla la configurazione del tuo sito per eventuali restrizioni come la sola lettura del percorso root o la disabilitazione di create_file e rimuovile.
Un altro scenario possibile è che l'host virtuale o il servizio di cloud hosting leggero imponga restrizioni alla creazione di file PHP nella directory principale. In questo caso, è necessario contattare il proprio provider di hosting per rimuovere la restrizione oppure modificare la modalità di protezione di Wordfence. Accedere al menu di Wordfence, selezionare "Tutte le opzioni", "WAF" e impostare la modalità del motore di protezione su "Protezione estesa" per ignorare la creazione dei file nella directory principale.
Soluzione 5: Conflitti tra plugin che causano il blocco
Alcuni plugin di caching o di sicurezza potrebbero bloccare questa operazione. Disabilita temporaneamente i plugin di caching come WP Rocket, W3 Total Cache e LiteSpeed Cache, nonché i plugin di sicurezza come Sucuri e iThemes Security. Dopodiché, svuota la cache del server e opcache e riavvia il servizio PHP.
systemctl restart php8.3-fpmSequenza rapida per la risoluzione dei problemi (si consiglia di seguire i passaggi in ordine)
Ti suggerisco di seguire quest'ordine per evitare di fare pasticci. Innanzitutto, unifica i permessi e la proprietà; questa è la soluzione con la più alta probabilità di risolvere il problema. Se non funziona, riavvia PHP-FPM e aggiorna il backend. Se ancora non funziona, crea manualmente un nuovo file e modifica wp-config. Quindi verifica se la configurazione di Nginx o Apache sta bloccando la creazione di nuovi file PHP nella directory principale. Infine, valuta la possibilità di cambiare la modalità del firewall.
Una cosa che devo assolutamente ricordarvi è che non dovreste mai impostare i permessi a 777. I permessi delle cartelle dovrebbero essere 755 e quelli dei file 644; questo è lo standard. Impostare i permessi a 777 esporrà direttamente il vostro sito web, comportando un rischio per la sicurezza estremamente elevato. Se venite hackerati, sarà troppo tardi per pentirsene.
A dire il vero, non sono sicuro che queste soluzioni funzioneranno nel tuo caso, ma ho condiviso le difficoltà che ho incontrato e i metodi che ho trovato. Se ricevi altri messaggi di errore, fai uno screenshot e inviamelo, così potrò dare un'altra occhiata.
Visto che sei arrivato a leggere fin qui, se hai trovato utile questo articolo, metti mi piace e condividilo. Se vuoi ricevere gli aggiornamenti in anteprima, puoi anche seguirmi!
Grazie per aver letto il mio articolo. Alla prossima.
Speranza Chen Weiliang Blog ( https://www.chenweiliang.com/ Il tutorial "Soluzione completa per l'impossibilità di WordPress Wordfence di creare wordfence-waf.php" condiviso qui potrebbe esserti utile.
Benvenuti a condividere il link di questo articolo:https://www.chenweiliang.com/cwl-34337.html
