Vai al contenuto
Configurazione

wp-config.php di WordPress: a cosa serve e come modificarlo

wp-config.php contiene login del database, chiavi di sicurezza e impostazioni di WordPress. Scopri dove si trova, cosa fa ogni parte e come modificarlo.

Pubblicato

wp-config.php è il file che dice a WordPress come collegarsi al database e come funzionare. Di solito si trova nella cartella principale dell’installazione, accanto a wp-admin e wp-content. Puoi aggiungere o cambiare impostazioni in sicurezza sopra la riga “That’s all, stop editing!” (“È tutto, smetti di modificare!”), mentre i due blocchi di codice sotto quella riga vanno lasciati stare. Fai prima un backup, perché un solo errore di battitura può mandare offline l’intero sito.

I punti chiave

  • Il file contiene la password del database e le chiavi di sicurezza, quindi trattalo come una password e non pubblicarne mai il contenuto in un forum o in una chat di assistenza.
  • Le impostazioni personalizzate vanno sopra la riga “stop editing”. L’ultima riga sotto di essa carica WordPress, e un’impostazione messa dopo arriva troppo tardi.
  • Il pacchetto di WordPress include wp-config-sample.php. Il vero wp-config.php viene creato durante la configurazione.
  • Non cambiare $table_prefix su un sito attivo modificando solo quella riga. WordPress si comporterà come se non fosse installato.

Dove trovare wp-config.php

Collegati via SFTP o apri il file manager del tuo host, poi vai nella cartella che contiene wp-admin, wp-includes e wp-content. La documentazione di WordPress la chiama radice della directory dei file di WordPress.

Se non c’è, guarda una cartella più su. Il loader di WordPress controlla prima la cartella di installazione, poi quella superiore, e salta quest’ultima se contiene un proprio wp-settings.php, perché significa che lì si trova un’altra installazione di WordPress.

Se il file non è in nessuno dei due posti, WordPress manda i visitatori alla schermata di configurazione. Quella schermata crea il file a partire da wp-config-sample.php. Quando non può scrivere nella cartella, mostra il testo da incollare a mano in un nuovo file.

Cosa fa ogni sezione predefinita

wp-config-sample.php è il modello, e contiene queste parti in quest’ordine:

SezioneCosa contienePuoi cambiarla?
DB_NAME, DB_USER, DB_PASSWORD, DB_HOSTIl login del database. Il modello usa localhost come host, e il tuo provider può darti i valori reali.Sì, quando cambiano i dati del database. Un valore errato causa l’errore nello stabilire una connessione al database.
DB_CHARSET, DB_COLLATECome viene memorizzato il testo nel database. I valori predefiniti sono utf8mb4 e un valore vuoto.Il commento del modello su DB_COLLATE dice di non cambiarlo in caso di dubbio.
Da AUTH_KEY a NONCE_SALTOtto chiavi di sicurezza e salt usati per i cookie di accesso.Sì. Cambiarli disconnette tutti gli utenti.
$table_prefixIl testo all’inizio del nome di ogni tabella del database, wp_ per impostazione predefinita.Solo in fase di installazione, a meno che tu non rinomini anche le tabelle e aggiorni le voci salvate nel database il cui nome usa il prefisso.
WP_DEBUGLa modalità debug, impostata su false nel modello.Sì. La guida alla posizione del log di debug spiega come inviare gli errori a un file.
Il commento “custom values” (“valori personalizzati”)Uno spazio vuoto per le tue impostazioni, che termina alla riga “stop editing”.Sì, le tue aggiunte vanno qui.
ABSPATH e la riga di wp-settings.phpIl percorso di WordPress, poi la riga che carica tutto il resto.No. Lasciale come sono.

Le nuove chiavi sono a un clic di distanza: il servizio secret-key di WordPress.org ne fornisce un set nuovo a ogni caricamento. Sostituisci tutte e otto le righe con il nuovo set.

I file più vecchi possono non avere il commento “custom values” e dire “Happy blogging” invece di “Happy publishing”. Funzionano entrambi, e la regola non cambia: aggiungi le tue impostazioni sopra quella riga.

Le impostazioni che si cambiano più spesso

Ognuna occupa una riga. Vengono tutte dalla documentazione di wp-config.php, e i valori predefiniti da default-constants.php di WordPress.

// Memory for the front end, then for wp-admin
define( 'WP_MEMORY_LIMIT', '256M' );
define( 'WP_MAX_MEMORY_LIMIT', '512M' );

// Keep at most 3 revisions per post (false turns revisions off)
define( 'WP_POST_REVISIONS', 3 );

// Autosave every 180 seconds
define( 'AUTOSAVE_INTERVAL', 180 );

// Empty the trash after 7 days
define( 'EMPTY_TRASH_DAYS', 7 );

// Remove the theme and plugin file editor from wp-admin
define( 'DISALLOW_FILE_EDIT', true );

// Force HTTPS for logins and wp-admin
define( 'FORCE_SSL_ADMIN', true );

// Set the site addresses here
define( 'WP_HOME', 'https://example.com' );
define( 'WP_SITEURL', 'https://example.com' );

Copia solo le righe che ti servono. Alcune hanno dettagli che vale la pena conoscere:

  • Memoria: il valore predefinito di WordPress è 40M, o 64M su multisite, e 256M per wp-admin a meno che PHP non consenta già di più. Se il tuo host non permette di cambiare il limite, WordPress usa quello già impostato in PHP. La guida a memory exhausted spiega cosa fare in quel caso.
  • Revisioni: sono attive per impostazione predefinita. Imposta false per disattivarle, o un numero per limitarle.
  • Salvataggio automatico e cestino: i valori predefiniti sono 60 secondi e 30 giorni. Impostare EMPTY_TRASH_DAYS su 0 disattiva il cestino, e la documentazione avverte che WordPress non chiederà conferma quando qualcuno clicca “Delete Permanently” (“Elimina definitivamente”).
  • Editor dei file: la guida all’hardening dice che questo non impedirà a un attaccante di caricare file dannosi, anche se potrebbe fermare alcuni attacchi. DISALLOW_FILE_MODS va oltre e blocca anche installazioni e aggiornamenti di plugin e temi.
  • HTTPS: quando l’impostazione “Indirizzo WordPress” inizia già con https, WordPress imposta da solo FORCE_SSL_ADMIN su true. Questa riga cambia qualcosa solo quando l’indirizzo non inizia con https.
  • Indirizzi del sito: sovrascrivono i valori salvati senza cambiare ciò che è memorizzato nel database. Includi la parte https://.

Un’impostazione richiede più pianificazione. define( 'DISABLE_WP_CRON', true ); impedisce alle visite alle pagine di avviare le attività pianificate, quindi configura un cron job sul server per wp-cron.php prima di attivarla, altrimenti gli articoli programmati e le altre attività a tempo non verranno eseguiti.

Come modificare wp-config.php in sicurezza

  1. Scarica prima una copia. Tienila sul tuo computer. Una copia lasciata sul server con un nome come wp-config.php.bak può essere leggibile dal browser, perché il server non la tratta più come PHP.
  2. Apri il file in un editor di testo semplice. La guida alla modifica di WordPress indica come adatti Notepad++, Sublime Text e Visual Studio Code, e sconsiglia Google Docs e Microsoft Word perché gli elaboratori di testi cambiano le virgolette e possono aggiungere codice che rompe i file.
  3. Trova la riga “stop editing” e metti le nuove righe subito sopra. Se l’impostazione è già definita più in alto, cambia quella riga.
  4. Salva e carica, poi apri il sito in una finestra privata del browser, insieme a una pagina di wp-admin.
  5. Se qualcosa si rompe, rimetti la tua copia. Così annulli la modifica anche quando wp-admin non si carica.

Spostare il file sopra la web root

La guida all’hardening dice che wp-config.php può stare una cartella sopra l’installazione di WordPress, e il codice del loader lo gestisce senza impostazioni aggiuntive. Sposta il file, poi controlla che il sito si carichi ancora. Lo spostamento ha due limiti:

  • La cartella superiore non può contenere un’altra installazione di WordPress. Il loader ignora una cartella superiore che ha un proprio wp-settings.php.
  • Un livello più su è privato solo se WordPress si trova nella web root. Se WordPress sta in una sottocartella come /blog/, un livello più su di solito è ancora pubblico.

La stessa guida dice che secondo alcuni lo spostamento ha benefici di sicurezza minimi, e che può introdurre vulnerabilità gravi se fatto senza attenzione. Consideralo quindi facoltativo. Su Apache, la guida fornisce anche questo blocco per l’inizio del file .htaccess, che nega le richieste dirette al file:

<Files "wp-config.php">
Require all denied
</Files>

La nostra guida alla sicurezza con .htaccess tratta questa regola insieme ad altre.

Permessi del file wp-config.php

La documentazione di WordPress dà numeri leggermente diversi a seconda della situazione:

  • La guida all’hardening dice che solo tu e il server web dovreste poter leggere il file, il che secondo la guida in genere significa 400 o 440.
  • La guida ai permessi dei file indica 440 o 400 sull’hosting condiviso con suexec, per impedire agli altri utenti del server di leggerlo. Mostra anche 600 come esempio protetto.
  • Per i normali file di WordPress, quella guida indica 644 o 640.

Il numero giusto dipende dall’utente di sistema con cui gira il server web. Il server web deve poter leggere il file, quindi se il sito smette di caricarsi dopo una modifica, torna al valore precedente e chiedi al tuo host quale si adatta alla sua configurazione.

Errori comuni

  • Incollare un’impostazione dopo la riga wp-settings.php. Quella riga carica WordPress e imposta i suoi valori predefiniti. Una costante PHP non può cambiare durante l’esecuzione di uno script, quindi la tua riga non ha effetto.
  • Definire due volte la stessa impostazione. La prima riga imposta il valore e la seconda non può cambiarlo. Il manuale PHP dice che ridichiarare una costante è deprecato da PHP 8.5, quindi può anche comparire un messaggio. Cerca il nome nel file prima di aggiungerlo.
  • Mettere le virgolette attorno a true o false. 'false' è una stringa non vuota, e PHP la considera true. Scrivi false senza virgolette. Le dimensioni come '256M' invece ne hanno bisogno.
  • Virgolette curve da un elaboratore di testi o da una pagina web. PHP richiede virgolette dritte, quindi quelle curve causano un errore che impedisce il caricamento del sito.
  • Mostrare gli errori di debug su un sito attivo. Il valore predefinito di WP_DEBUG_DISPLAY è true, quindi se attivi solo WP_DEBUG, gli errori compaiono sulla pagina davanti ai visitatori. La guida alla posizione del log di debug mostra come inviarli a un file.
  • Lasciare attivo WP_ALLOW_REPAIR. La documentazione dice di attivarlo solo quando serve e di disattivarlo una volta risolto il problema.

Domande frequenti

Cos’è wp-config.php in WordPress? È il file di configurazione che WordPress carica all’avvio. Contiene il login del database, le chiavi di sicurezza e il prefisso delle tabelle, ed è il punto in cui aggiungere impostazioni come WP_DEBUG o WP_MEMORY_LIMIT.

Dove si trova il file wp-config.php? Di solito nella cartella principale dell’installazione di WordPress, quella che contiene anche wp-admin, wp-includes e wp-content. WordPress lo accetta anche una cartella sopra l’installazione, purché quella cartella non contenga wp-settings.php.

Dove aggiungo il codice in wp-config.php? Sopra la riga che dice That’s all, stop editing! Happy publishing. (“È tutto, smetti di modificare! Buona pubblicazione”). Nei file più vecchi c’è scritto Happy blogging. L’ultima riga sotto di essa carica WordPress, quindi un’impostazione messa dopo quella riga arriva troppo tardi.

È sicuro modificare wp-config.php? Sì, se tieni un backup e usi un editor di testo semplice. Un solo errore di battitura può impedire il caricamento dell’intero sito, wp-admin compreso, quindi scarica prima una copia. Se il sito si rompe dopo la modifica, rimetti la copia.

Cosa succede se elimino wp-config.php? WordPress non trova più il login del database e avvia la procedura di configurazione, con la richiesta di creare un file di configurazione. I contenuti restano nel database, quindi ripristinare il backup o ricreare il file con gli stessi dati ricollega il sito.

Quali permessi deve avere wp-config.php? La guida all’hardening di WordPress dice che solo tu e il server web dovreste poterlo leggere, il che in genere significa 400 o 440. La sua guida ai permessi dei file mostra anche 600. Il server web deve comunque leggere il file, quindi chiedi al tuo host se il sito smette di caricarsi.

Fonti


Crea le impostazioni che ti servono senza scriverle a mano, chiavi di sicurezza nuove comprese, con il generatore gratuito di wp-config.php.

FAQ

Domande

Cos'è wp-config.php in WordPress?

È il file di configurazione che WordPress carica all'avvio. Contiene il login del database, le chiavi di sicurezza e il prefisso delle tabelle, ed è il punto in cui aggiungere impostazioni come WP_DEBUG o WP_MEMORY_LIMIT.

Dove si trova il file wp-config.php?

Di solito nella cartella principale dell'installazione di WordPress, quella che contiene anche wp-admin, wp-includes e wp-content. WordPress lo accetta anche una cartella sopra l'installazione, purché quella cartella non contenga wp-settings.php.

Dove aggiungo il codice in wp-config.php?

Sopra la riga che dice That's all, stop editing! Happy publishing. ("È tutto, smetti di modificare! Buona pubblicazione"). Nei file più vecchi c'è scritto Happy blogging. L'ultima riga sotto di essa carica WordPress, quindi un'impostazione messa dopo quella riga arriva troppo tardi.

È sicuro modificare wp-config.php?

Sì, se tieni un backup e usi un editor di testo semplice. Un solo errore di battitura può impedire il caricamento dell'intero sito, wp-admin compreso, quindi scarica prima una copia. Se il sito si rompe dopo la modifica, rimetti la copia.

Cosa succede se elimino wp-config.php?

WordPress non trova più il login del database e avvia la procedura di configurazione, con la richiesta di creare un file di configurazione. I contenuti restano nel database, quindi ripristinare il backup o ricreare il file con gli stessi dati ricollega il sito.

Quali permessi deve avere wp-config.php?

La guida all'hardening di WordPress dice che solo tu e il server web dovreste poterlo leggere, il che in genere significa 400 o 440. La sua guida ai permessi dei file mostra anche 600. Il server web deve comunque leggere il file, quindi chiedi al tuo host se il sito smette di caricarsi.