Il file wp-config.php
è il file principale dell'istallazione di WordPress, esso è collocato nella root directory e memorizza tutti i principali parametri di configurazione. È utilizzato per configurare la connessione al database, per migliorare la performance e la sicurezza del sito. Permette inoltre di abilitare il debug mode di WordPress, fornendo utili informazioni in fase di sviluppo. Il file non è subito disponibile ma viene creato al primo avvio di WordPress.
Nel caso in cui WordPress non abbia i privilegi di scrittura necessari a creare il file, l'amministratore del sito dovrà rinominare wp-config-sample.php
in wp-config.php
, impostando manualmente i valori delle costanti dichiarate nel file. Queste costanti vengono definite in un ordine preciso che non è opportuno alterare per evitare errori di esecuzione. Vediamo quali sono i parametri memorizzati nel file di configurazione.
Impostazioni di MySQL
wp-config.php
memorizza le impostazioni MySQL, queste sono memorizzate nelle seguenti costanti:
/** Il nome del database di WordPress */
define('DB_NAME', 'wordpress');
/** Nome utente del database MySQL */
define('DB_USER', 'root');
/** Password del database MySQL */
define('DB_PASSWORD', 'root');
/** Hostname MySQL */
define('DB_HOST', 'localhost');
/** Charset del Database da utilizzare nella creazione delle tabelle. */
define('DB_CHARSET', 'utf8mb4');
/** Il tipo di Collazione del Database. Da non modificare se non si ha idea di cosa sia. */
define('DB_COLLATE', '');
I valori impostati nel codice di esempio sono riferiti ad un'istallazione locale, quando non si lavora in locale è l'host a fornire i dati necessari. Ovviamente, per inserire il nome del database sarà opportuno accertarsi di averne creato uno perché non sarà WordPress a crearlo per noi.
Il nome dell'host può anche essere rilevato automaticamente definendo la costante DB_HOST
come segue:
define('DB_HOST', $_ENV{DATABASE_SERVER});
In questo caso, ovviamente, il file dovrà essere modificato manualmente.
La costante DB_CHARSET
imposta il set di caratteri da utilizzare quando vengono definite le tabelle del database. A partire dalla versione 4.2 di WordPress il set di caratteri predefinito non è più UTF-8 ma utf8mb4
, set con identiche caratteristiche rispetto a UTF-8 ma con un byte in più per carattere. Il supporto a utf8mb4
migliora l'usabilità di WordPress nelle lingue per le quali si utilizza il set di caratteri Han(Cinese, Giapponese, Coreano). In generale non è necessario né consigliato modificare il valore predefinito.
La costante DB_COLLATE
imposta il valore della collation, ossia l'ordine di lettere, numeri e simboli del set di caratteri. Se lasciato vuoto, la collation sarà assegnata in base al valore di DB_CHARSET
. Al charset utf8mb4
corrisponderà la collation utf8mb4_unicode_ci
. Anche in questo caso è preferibile lasciare invariato il valore della costante.
Chiavi di sicurezza
Per assicurare una migliore crittografia delle informazioni memorizzate nei cookie, wp-config.php
utilizza 8 chiavi di autenticazione che possono essere liberamente impostate dall'amministratore del sito. Per generare chiavi più sicure, si può utilizzare il servizio di chiavi segrete di WordPress. Quello che segue è un set di chiavi di esempio:
Le chiavi di autenticazione sono richieste per il sistema di sicurezza. Le chiavi di “salatura” sono raccomandate sebbene non richieste.
Il prefisso delle tabelle
In fase di istallazione WordPress genera le tabelle in cui vengono archiviati i dati man mano che viene sviluppato ed aggiornato il sito, ad ognuna di esse viene assegnato un nome con un prefisso il cui valore predefinito è wp_
.
Per evitare problemi di SQL injections è bene che il nome delle tabelle del database non sia noto. Per questo è sempre consigliabile impostare in fase di istallazione un prefisso diverso da quello predefinito. Il valore impostato viene memorizzato nel file wp-config.php
nella variabile $table_prefix
:
$table_prefix = 'wp_';
È possibile anche gestire più istallazioni con un solo database impostando un valore diverso per la variabile $table_prefix
in ognuna delle istallazioni. Sono ammessi solo numeri, lettere e il carattere di sottolineatura.
Se il sito è già attivo è comunque possibile modificare il valore di $table_prefix
. Una volta impostato il nuovo valore, bisognerà provvedere ad aggiornare i nomi delle tabelle e alcuni valori di campi: nella tabella wp_options
andrà aggiornato il valore del campo option_name
in corrispondenza di wp_user_roles
(se presente), mentre nella tabella wp_usermeta
andranno reimpostati i valori dei campi meta_key
contenenti la stringa wp_
.
Prima di modificare un sito funzionante è opportuno effettuare un back-up preventivo.
Nel prossimo andremo oltre le impostazioni di base e vedremo come utilizzare il file di configurazione per ottenere il massimo in termini di velocità e sicurezza da WordPress.