Guida al file wp-config.php di WordPress

Cos'è wp-config.php
Il file wp-config.php è uno dei file più importanti di un'installazione WordPress perché contiene la configurazione che controlla il modo in cui WordPress comunica con il database, gestisce la sicurezza, tratta gli errori e alloca le risorse di sistema. Questo file viene creato durante l'installazione di WordPress e si trova nella directory radice del sito. A differenza delle impostazioni del pannello di amministrazione, che sono memorizzate nel database, le impostazioni di wp-config.php vengono applicate prima ancora che WordPress stabilisca una connessione al database.
Comprendere wp-config.php è essenziale per chiunque gestisca seriamente un sito WordPress. Una configurazione corretta di questo file può migliorare in modo significativo la sicurezza, le prestazioni e la stabilità del sito. Gli errori in wp-config.php possono rendere il sito completamente irraggiungibile, perché il file viene caricato prima di tutto il resto. In questa guida esaminiamo ogni impostazione importante, spiegando cosa fa, quali valori utilizzare e quando modificarla.
Impostazioni del database
Costanti di base
DB_NAME definisce il nome del database utilizzato da WordPress. Questo nome viene creato nel pannello di controllo dell'hosting o tramite la riga di comando MySQL prima dell'installazione di WordPress. DB_USER è il nome utente per l'accesso al database, con privilegi sufficienti per la lettura e la scrittura. DB_PASSWORD è la password di quell'utente, che dovrebbe essere robusta e univoca. Non utilizzare mai l'utente root per WordPress, perché rappresenta un rischio per la sicurezza.
DB_HOST è l'indirizzo del server del database, di solito localhost quando il web server e il database si trovano sullo stesso server. Su alcune piattaforme di hosting questo valore può essere diverso, come un indirizzo IP o un percorso socket. DB_CHARSET definisce il set di caratteri del database e dovrebbe essere utf8mb4, che supporta tutti i caratteri Unicode, comprese le emoji. DB_COLLATE definisce le regole per l'ordinamento e il confronto del testo e di solito viene lasciato vuoto, in modo che MySQL utilizzi la collation predefinita per il charset selezionato.
Prefisso delle tabelle
La costante table_prefix definisce il prefisso di tutte le tabelle WordPress nel database. Il valore predefinito è wp_, ma è consigliabile cambiarlo durante l'installazione in qualcosa di univoco come abc123_. Si tratta di una misura di sicurezza di base che rende più difficili gli attacchi di SQL injection, perché l'attaccante non può indovinare i nomi delle tabelle. Cambiare il prefisso dopo l'installazione è possibile, ma richiede di rinominare con attenzione tutte le tabelle e aggiornare i riferimenti nelle opzioni e nei metadati degli utenti.
Chiavi di sicurezza e salt
Cosa sono le chiavi di sicurezza
WordPress utilizza otto costanti di sicurezza: AUTH_KEY, SECURE_AUTH_KEY, LOGGED_IN_KEY, NONCE_KEY e le corrispondenti varianti SALT. Queste chiavi vengono utilizzate per cifrare le informazioni memorizzate nei cookie degli utenti. Senza queste chiavi, le sessioni degli utenti sarebbero vulnerabili a intercettazioni e furti di identità. Ogni chiave dovrebbe essere univoca, lunga e casuale, con una combinazione di lettere, numeri e caratteri speciali.
WordPress fornisce un generatore online all'indirizzo api.wordpress.org/secret-key che genera otto chiavi casuali pronte da copiare in wp-config.php. È consigliabile cambiare periodicamente le chiavi, soprattutto dopo un incidente di sicurezza, perché modificarle invalida tutte le sessioni esistenti e costringe tutti gli utenti a effettuare nuovamente il login. È un modo efficace per disconnettere immediatamente tutti gli utenti, compreso un potenziale attaccante che ha compromesso un account amministratore.
Implementazione corretta
Copia le chiavi generate e sostituisci i valori segnaposto in wp-config.php. Ogni chiave deve essere univoca e non utilizzare mai le stesse chiavi su due siti diversi. Se migri un sito su un nuovo server, copia le chiavi dal vecchio wp-config.php in modo che gli utenti non debbano effettuare nuovamente il login. Conserva una copia delle chiavi in un luogo sicuro, perché la loro perdita non causa danni permanenti ma richiede che tutti gli utenti effettuino nuovamente il login.
Modalità debug
WP_DEBUG
La costante WP_DEBUG controlla se WordPress mostra errori, avvisi e notice di PHP. Il valore predefinito è false, che nasconde tutti gli errori ai visitatori. Impostandolo su true si attiva la visualizzazione degli errori, utile durante lo sviluppo o la risoluzione dei problemi. Su un sito in produzione, WP_DEBUG non dovrebbe mai essere true, perché mostrare gli errori ai visitatori rivela informazioni sulla struttura del sito che un attaccante può sfruttare.
WP_DEBUG_LOG
Quando WP_DEBUG_LOG è impostato su true, WordPress scrive tutti gli errori nel file wp-content/debug.log invece di mostrarli sullo schermo. Questo è ideale per i siti in produzione, in cui vuoi tracciare gli errori senza mostrarli ai visitatori. Puoi definire un percorso personalizzato impostando WP_DEBUG_LOG su un percorso assoluto verso il file di log. Esamina regolarmente il file di log ed eliminalo quando diventa troppo grande, perché può occupare uno spazio su disco significativo.
WP_DEBUG_DISPLAY
WP_DEBUG_DISPLAY controlla se gli errori vengono mostrati nella pagina HTML. Impostalo su false in combinazione con WP_DEBUG true e WP_DEBUG_LOG true, in modo che gli errori vengano registrati ma non mostrati ai visitatori. SCRIPT_DEBUG, quando impostato su true, forza WordPress a utilizzare le versioni non compresse dei file CSS e JavaScript, utile per lo sviluppo di temi e plugin ma che rallenta il sito in produzione.
Limite di memoria
WP_MEMORY_LIMIT
WP_MEMORY_LIMIT definisce la quantità massima di memoria PHP che WordPress può utilizzare per elaborare le richieste sul frontend. Il valore predefinito è 40M per le installazioni standard e 64M per il Multisite. Per i siti con molti plugin, librerie multimediali di grandi dimensioni o WooCommerce, è consigliabile aumentarlo a 128M o 256M. Questo valore non può superare l'impostazione memory_limit di PHP sul server, perché WordPress non può richiedere più memoria di quanta ne consenta PHP.
WP_MAX_MEMORY_LIMIT
WP_MAX_MEMORY_LIMIT definisce il limite di memoria per il pannello di amministrazione, che di solito richiede più memoria rispetto al frontend a causa dell'elaborazione delle immagini, degli aggiornamenti e della gestione dei contenuti. Il valore predefinito è 256M. Se ottieni errori come "Allowed memory size exhausted" nel pannello di amministrazione, aumenta questo valore. Tieni presente che un limite di memoria eccessivamente alto può mascherare un problema di memory leak in un plugin o in un tema invece di risolverlo.
Costanti avanzate
Salvataggio automatico e revisioni
AUTOSAVE_INTERVAL definisce l'intervallo in secondi tra i salvataggi automatici degli articoli nell'editor. Il valore predefinito è 60 secondi. Ridurlo a 30 secondi offre backup più frequenti del contenuto durante la scrittura, ma aumenta le richieste al server. WP_POST_REVISIONS controlla quante revisioni vengono memorizzate per ogni articolo. Per impostazione predefinita, WordPress conserva un numero illimitato di revisioni, il che può riempire il database su siti ricchi di contenuti. Impostalo su un numero specifico come 5 o 10 per un compromesso ragionevole tra sicurezza dei contenuti e dimensione del database.
Cestino
EMPTY_TRASH_DAYS definisce per quanti giorni i contenuti eliminati vengono conservati nel cestino prima dell'eliminazione definitiva. Il valore predefinito è 30 giorni. Riducilo a 7 giorni se vuoi ripulire più rapidamente i contenuti eliminati. Impostalo su 0 per disabilitare completamente il cestino, il che significa che i contenuti vengono eliminati definitivamente in modo immediato. Non è consigliabile, perché non esiste alcuna possibilità di recupero per i contenuti eliminati accidentalmente.
Aggiornamenti automatici
WP_AUTO_UPDATE_CORE controlla gli aggiornamenti automatici del core di WordPress. Il valore true abilita tutti gli aggiornamenti comprese le versioni major, minor abilita solo gli aggiornamenti di sicurezza minori, che è l'impostazione predefinita, e false disabilita completamente gli aggiornamenti automatici. AUTOMATIC_UPDATER_DISABLED impostato su true disabilita tutti i processi di aggiornamento automatico, compresi plugin e temi con l'opzione di aggiornamento automatico.
SSL e URL
FORCE_SSL_ADMIN impostato su true forza l'HTTPS per il login e il pannello di amministrazione. Scopri di più sulla configurazione dei certificati SSL. Questo è obbligatorio su ogni sito con un certificato SSL, perché protegge le credenziali dell'amministratore dall'intercettazione. WP_HOME e WP_SITEURL definiscono l'URL del sito e possono essere utili quando si migra un sito a un nuovo indirizzo. Queste costanti hanno la priorità sulle impostazioni del database, il che significa che puoi utilizzarle per modifiche rapide dell'URL senza accedere al pannello di amministrazione.
Cron e attività pianificate
WordPress utilizza il sistema wp-cron per le attività pianificate come la pubblicazione di articoli programmati, il controllo degli aggiornamenti e l'invio di notifiche email. WP-cron viene eseguito a ogni visita del sito, il che non è ideale per i siti con traffico basso o molto elevato. DISABLE_WP_CRON impostato su true disabilita questo sistema e richiede la configurazione di un cron di sistema che esegua wp-cron.php a intervalli regolari, di solito ogni 5 o 15 minuti.
ALTERNATE_WP_CRON utilizza un metodo alternativo per eseguire le attività pianificate, più affidabile in alcuni ambienti di hosting. WP_CRON_LOCK_TIMEOUT definisce il tempo in secondi per cui wp-cron rimane bloccato, per evitare l'avvio simultaneo di più istanze. In BeoHosting, i nostri pacchetti di hosting supportano il cron di sistema, più affidabile del sistema cron interno di WordPress, e possiamo configurarlo per il tuo sito.
Costanti di sicurezza
Protezione del file system
DISALLOW_FILE_EDIT impostato su true disabilita l'editor integrato di temi e plugin nel pannello di amministrazione. Si tratta di un'importante misura di sicurezza perché, se un attaccante compromette un account amministratore, non potrà usare l'editor per iniettare codice dannoso nei file dei temi o dei plugin. DISALLOW_FILE_MODS va un passo oltre e disabilita l'installazione e l'aggiornamento di temi e plugin tramite il pannello di amministrazione, costringendo a effettuare tutte le modifiche tramite FTP o SSH.
Spostare wp-config.php di una directory sopra la radice del sito è possibile perché WordPress cerca automaticamente il file nella directory superiore. Questo impedisce l'accesso diretto al file tramite il browser web nel caso in cui PHP smetta di funzionare e il server inizi a servire i file PHP come testo. Combinare queste misure con permessi dei file corretti, 644 per wp-config.php o persino 440 sui server in cui l'utente del web server ha accesso, migliora notevolmente la sicurezza.
Ottimizzazione delle prestazioni
Caching e compressione
WP_CACHE impostato su true attiva il meccanismo per i plugin di cache avanzati come WP Super Cache o W3 Total Cache. Questa costante consente il caricamento del file advanced-cache.php che il plugin di cache crea per elaborare le richieste prima che WordPress carichi tutti i plugin e il tema. Senza questa costante, i plugin di cache non possono funzionare in modo ottimale. La compressione dei contenuti con define COMPRESS_CSS true e define COMPRESS_SCRIPTS true può ridurre la dimensione dei file CSS e JavaScript.
Database
SAVEQUERIES impostato su true registra tutte le query al database e il tempo di esecuzione nella variabile globale wpdb queries. Questo è utile per diagnosticare un sito lento, perché puoi identificare le query che impiegano troppo tempo o che vengono ripetute inutilmente. Non lasciare mai questa opzione abilitata in produzione, perché memorizzare tutte le query in memoria aumenta il consumo di risorse. Usala solo temporaneamente per l'analisi delle prestazioni, in combinazione con un plugin come Query Monitor.
Conclusione
Il file wp-config.php è il centro di controllo dell'installazione WordPress, in quanto definisce il comportamento del sito a livello fondamentale. Una configurazione corretta delle chiavi di sicurezza, della modalità debug, dei limiti di memoria e delle costanti avanzate può migliorare in modo significativo la sicurezza, le prestazioni e la stabilità del sito. Esamina e aggiorna regolarmente le impostazioni in base alla crescita del sito e ai cambiamenti dell'infrastruttura. In BeoHosting, il nostro team può aiutarti a ottimizzare le impostazioni di wp-config.php per ottenere le massime prestazioni sulla nostra piattaforma di hosting.
BeoHosting Team
10+ anni di esperienza — Specialisti di web hosting e infrastrutture
- Web Hosting
- WordPress Hosting
- VPS
- Dedicated Serveri
- Domeni
- SSL
- cPanel
- LiteSpeed
- Linux administracija
- DNS
Ultimo aggiornamento: