Indice dei contenuti
ToggleConoscere il file di configurazione di WordPress è molto utile.
Per molti, il file di configurazione di WordPress è quel file dove vengono memorizzati i dati di collegamento al database, chiamato in causa soltanto durante l’installazione del CMS, e con altri oscuri parametri provvede al corretto funzionamento del sito.
Con opportuni accorgimenti e modifiche nel file di configurazione di WordPress, è possibile aumentare la sicurezza, ottimizzare la struttura e, quando serve, cercare e risolvere problemi.
[tweet “#WordPress: i parametri di configurazione più utili per wp-config.php”]
Vediamo come modificare il file di configurazione di WordPress.
Per una maggior comodità, o per chi cerca un argomento specifico, può tornare utile un indice:
- Parametri di collegamento al database
- Prefisso delle tabelle del database
- Chiavi uniche di autenticazione e salatura
- Attivazione del debug di WordPress
- URL di WordPress
- Tema di default di WordPress
- Revisioni e autosalvataggio
- Intervallo del salvataggio automatico
- Svuotare il cestino
- WordPress Multisito
- Disabilitare la modifica di file di temi e plugin
- Aumentare la memoria PHP di WordPress
- Forzare l’uso di SSL per il login e la bacheca
- Disabilitare gli aggiornamenti automatici di WordPress
Struttura del file di configurazione di WordPress
Il file di configurazione, wp-config.php, non esiste quando si effettua il download di WordPress. Si genera al momento dell’installazione di WordPress via browser, oppure bisogna crearlo manualmente, duplicando il file wp-config-sample.php.
È un file PHP, ed al suo interno si trovano i vari parametri di configurazione del CMS. Quelli che ci interessano sono di due tipi:
Variabili PHP, e sono caratterizzate da un termine preceduto dal simbolo $, o costanti PHP, caratterizzate dalla stringa “define” e in genere così strutturate:
define('COSTANTE', 'VALORE');
Ora vediamo una panoramica di alcuni dei parametri modificabili tra quelli standard, o quelli aggiungibili, per estendere o personalizzare l’installazione. Non tutti, sono troppi. I più curiosi possono riferimento alla pagina del codex di WordPress che contiene tutte le modifiche possibili.
Noi vedremo quelle che possono risultare più utili, anche all’utente non troppo esperto.
Configurazione standard di WordPress
I parametri che seguono sono quelli standard, contenuti di default nel file wp-config.php una volta installato WordPress, o creato il file di configurazione duplicando il file wp-config-sample.php.
1. Parametri di collegamento al database
Li citiamo giusto per completezza di informazione, sono quei parametri che permettono alla nostra installazione di dialogare senza problemi con il database MySQL.
define('DB_NAME', 'nome_database'); define('DB_USER', 'utente_database'); define('DB_PASSWORD', 'password_utente_database'); define('DB_HOST', 'server-database'); define('DB_CHARSET', 'utf8'); define('DB_COLLATE', '');
Una volta configurati, manualmente o tramite l’installazione automatica di WordPress, non vanno più toccati, a meno che non si debba cambiare il database o l’hosting.
2. Prefisso delle tabelle del database
Questo parametro in teoria rientrerebbe nella configurazione relativa al database del punto precedente, ma dato che implica importanti considerazioni di sicurezza è bene trattarla a parte.
$table_prefix = 'wp_';
In fase di installazione WordPress propone il prefisso “wp_”, ma è bene cambiarlo con una stringa personalizzata, tipo “j8dMsk_”.
Vanno usati solo lettere, numeri ed il carattere underscore ( _ ).
3. Chiavi uniche di autenticazione e salatura
Questi parametri sono importanti per la sicurezza, ma spesso e volentieri vengono ignorati.
In genere si presentano così:
define('AUTH_KEY', 'put your unique phrase here'); define('SECURE_AUTH_KEY', 'put your unique phrase here'); define('LOGGED_IN_KEY', 'put your unique phrase here'); define('NONCE_KEY', 'put your unique phrase here'); define('AUTH_SALT', 'put your unique phrase here'); define('SECURE_AUTH_SALT', 'put your unique phrase here'); define('LOGGED_IN_SALT', 'put your unique phrase here'); define('NONCE_SALT', 'put your unique phrase here');
Vanno generati tramite il link indicato nel file di configurazione, copiati e incollati al posto di quelli standard.
Barbatrucco: cambiare le chiavi e la salatura può tornare molto utile anche in altre situazioni, ad esempio quando si vuole scollegare a forza tutti gli utenti collegati a WordPress, o quando si vogliono resettare i cookies.
È buona regola, inoltre, cambiare chiavi e salature di tanto in tanto.
4. Attivazione del debug di WordPress
Il debug si attiva in caso di problemi, o in fase di test o sviluppo di un tema o un plugin, ed è una procedura per utenti più evoluti, dove servono competenze appropriate per analizzare a fondo i risultati, ma in taluni casi può essere utile anche al profano, ad esempio per individuare facilmente il plugin che sta creando problemi.
define('WP_DEBUG', false);
Il debug si attiva sostituendo “false” con “true”, e tutti gli errori vengono mostrati a monitor, e viceversa per disattivarlo.
Barbatrucco: l’argomento debug volendo è molto più complesso, per chi volesse approfondire qui ci sono diverse opzioni utili del debug avanzato di WordPress.
Configurazione avanzata di WordPress
In questa sezione, vediamo alcuni dei parametri che non sono presenti nell’installazione standard di WordPress, ma che è possibile aggiungere per diversi motivi, dalla personalizzazione alla sicurezza.
5. URL di WordPress
Una modifica, questa, che può tornare molto utile quando si vuole cambiare la cartella di installazione di WordPress o l’URL del sito, in caso di migrazione.
Sono gli stessi parametri che si possono trovare nelle impostazioni generali di WordPress, ma è possibile inserirli nel file di configurazione nel caso la bacheca non fosse raggiungibile.
define('WP_HOME', 'http://www.dominio.dom'); define('WP_SITEURL', 'http://www.dominio.dom');
Possono sembrare simili, ma è importante comprendere bene la differenza dei due parametri perché da questo potrebbe dipendere il corretto funzionamento di WordPress:
- WP_HOME è il link per raggiungere il sito. Può essere il nome del dominio, come nell’esempio, o una cartella se WordPress fa parte di un’installazione più complessa, esempio “http://www.dominio.dom/blog“
- WP_SITEURL è il puntamento alla cartella che contiene i file di WordPress. In genere è la cartella principale del sito, e di conseguenza il link sarà quello del dominio, ma in taluni casi può essere una cartella diversa, esempio “http://www.dominio.dom/wordpress”, come capita in alcuni hosting utilizzando l’installazione con 1 click di WordPress da pannello di controllo.
6. Tema di default di WordPress
Il tema di default di WordPress, da diverse versioni, è il classico Twenty Qualcosa, Twenty Fifteen in WordPress 4.1.
In taluni casi può tornare utile cambiare il tema di defaul, ad esempio quando si disattiva forzatamente via FTP il tema in uso.
define('WP_DEFAULT_THEME', 'twentyfifteen');
È sufficiente sostituire “twentyfifteen” con il nome del tema che si preferisce.
7. Revisioni e autosalvataggio
Le revisioni di WordPress ed il relativo salvataggio automatico sono molto utili per recuperare errori di scrittura o modifiche sbagliate di un post o una pagina.
// Esempio 1: Limitare le revisioni a 5 define( 'WP_POST_REVISIONS', 5 ); // Esempio 2: Disabilitare le revisioni define( 'WP_POST_REVISIONS', false );
Nel primo esempio, WordPress manterrà solo le ultime 5 revisioni, o salvataggi automatici.
Nel secondo esempio, utilizzando il valore “false”, le revisioni di WordPress sono disabilitate.
Barbatrucco: WordPress conserva una quantità impressionante di revisioni, che vanno a pesare sensibilmente sul database. Limitare il numero di revisioni, specie nei WordPress più attivi, contribuisce a tenere snello il database.
Disabilitare del tutto le revisioni, specie se si scrive molto, può essere però controproducente.
8. Intervallo del salvataggio automatico
Questo parametro è legato da vicino con il punto precedente, e stabilisce ogni quanto WordPress effettua un salvataggio automatico dell’articolo o della pagina su cui si sta lavorando. Il valore di default è 60 secondi.
define( 'AUTOSAVE_INTERVAL', 180 );
Barbatrucco: Quando si attiva il salvataggio automatico, la finestra di editing manifesta un lieve ma fastidioso rallentamento. Io preferisco impostare il salvataggio automatico a 180 secondi, tre minuti, per limitare questo piccolo fastidio.
9. Svuotare il cestino
Puntualmente, quando si mette un post o una pagina nel cestino, finisce nel dimenticatoio, e li rimane finché non si provvede a svuotare il cestino manualmente.
define( 'EMPTY_TRASH_DAYS', 3 );
È possibile definire dopo quanto tempo il cestino si deve svuotare automaticamente, il valore è espresso in giorni.
10. WordPress Multisito
La costante principale per un’installazione WordPress Multisito è la seguente:
define( 'WP_ALLOW_MULTISITE', true );
La procedura completa però è un tantinello più complessa, allora consiglio di partire da questa guida all’installazione di WordPress Multisito.
Una costante utile nei WordPress multisito è quella che permette di reindirizzare al blog principale (o altro blog) quando si cerca di visualizzare un blog non esistente:
define( 'NOBLOGREDIRECT', 'http://dominio.dom' );
Bisogna ovviamente sostituire il valore con l’indirizzo corretto di reindirizzamento.
11. Disabilitare la modifica dei file di temi e plugin
Un accorgimento che può tornare utile e che riguarda la sicurezza generale.
define( 'DISALLOW_FILE_EDIT', true );
Attivando queste costanti, si disabilita l’editor nel menu “Aspetto” per quanto riguarda i temi, e il link “modifica” nell’elenco dei plugin.
Volendo essere ancora più drastici, è possibile disabilitare anche l’installazione di temi e plugin, e ovviamente la loro modifica:
define( 'DISALLOW_FILE_MODS', true );
Questa seconda costante include anche la prima, non è necessario utilizzarle entrambe.
12. Aumentare la memoria PHP di WordPress
Alcuni temi e plugin sono grandi consumatori di memoria. WooCommerce ad esempio, giusto per citarne uno, richiede che la memoria PHP assegnata a WordPress di default (40 MB) venga elevata ad almeno 64 MB.
define( 'WP_MEMORY_LIMIT', '128M' );
Barbatrucco: 64 MB è il minimo per WooCommerce, un valore maggiore come 96 o 128 MB sarebbe meglio. In generale, aumentare la memoria PHP di WordPress è un bene per il sistema.
Bisogna controllare se davvero questa memoria è disponibile nel PHP. Un modo per verificare è creare un file di test PHP, contenente solo questo contenuto:
<?php phpinfo() ; ?>
Una volta lanciato, cercare la riga con la voce “memory_limit”, che indicherà la quantità di memoria disponibile per PHP. La possibilità di cambiare o meno questo valore, casomai fosse insufficiente, dipende dall’hosting.
13. Forzare l’uso di SSL per il login e la bacheca
Se si ha a disposizione un certificato SSL valido per il proprio dominio, è buona cosa per la sicurezza generale utilizzarlo per le pagine di login di WordPress, e per l’amministrazione di WordPress in genere.
define( 'FORCE_SSL_LOGIN', true ); define( 'FORCE_SSL_ADMIN', true );
In questo modo, si costringe l’utente ad utilizzare una connessione sicura per la pagina di login di WordPress e per la bacheca.
14. Disabilitare gli aggiornamenti automatici di WordPress
Io non amo gli aggiornamenti automatici in generale. La prima cosa che faccio, quando installo un nuovo WordPress, e disabilitargli questa funzione.
# Disabilita tutti gli aggiornamenti automatici: define( 'AUTOMATIC_UPDATER_DISABLED', true ); define( 'WP_AUTO_UPDATE_CORE', false );
Ci sono altre versioni, che permettono di disabilitare solo alcuni tipi di aggiornamenti, ma per quanto mi riguarda vale solo l’opzione di disabilitare tutti gli aggiornamenti, e di provvedere alla loro esecuzione manualmente, con maggior controllo, e ovviamente previo backup.
In conclusione…
Come hai potuto notare, il file di configurazione di WordPress non è solo il file di collegamento degli script php con il database, ma molto di più, e può rivelarsi parecchio utile in tanti casi.
Come al solito, si ci si vuole cimentare nelle modifiche di configurazione, è bene fare un backup generale di files e database, che non si sa mai.
Conosci qualche altro parametro utile da consigliare?
10 risposte
SAlve roberto, un articolo molto interessante e relativo a quello che mi in eressa …. ho provato proprio oggi a inserire le due stringhe
define(‘WP_HOME’, ‘http://www.dominio.dom’);
define(‘WP_SITEURL’, ‘http://www.dominio.dom’);
nel mio file config.php ( naturalmente mettendo il mio url dominio) ma mi è saltato tutto e mi dava errore di sintassi .. h ovuto togliere tutto e per fortuna è riapparso il sito …mi chiedo che errore ho fatto…c’è una posizione particolare in cui vanno inserite queste stringhe? io le ho messe dopo:
/** Il tipo di Collazione del Database. Da non modificare se non si ha
idea di cosa sia. */
define(‘DB_COLLATE’, ”);
vanno precedute da qualche tag particolare o si possono mettere così come sono?
grazie per ogni tua indicazione
Ciao e scusa per il ritardo.
le due stringhe vanno usate solo quando per qualche motivo è necessario cambiare l’URL di WordPress, o perché si è spostato i file di WordPress in una sottocartella ma si vuole mantenere il vecchio l’URL, e vanno a forzare le informazioni inserite nelle impostazioni generali.
se non c’è motivo di inserirle, meglio non farlo 😉
si possono mettere ovunque, così come sono.
rob
Grazie Roberto, avevo letto che le due stringhe inserite in config.php velocizzano l’apertura del sito in quanto richiamano immediatamente l’url del sito ed il caricamento risulta immediato senza richiamo di query da DB ( da quel che ho capito 😉 …che ne pensi? ho capito fischi per fiaschi? ciao marni
Ciao Marni,
guarda avevo letto anch’io questa cosa, e a suo tempo feci pure delle prove, ma non ho visto migliorie apprezzabili.
rob
grazie x la risposta:-) ho visto che fai consulenze su wp… io ho un sito -blog su cui scrivo regolarmente cerco di fare il possibile lato tecnico ma non è il mio lavoro per cui mi ci rompo la testa e spesso non ottengo nulla, quando non faccio danni. …tu ti occupi anche di queste cose? di controllare sistemare lato tecnico e seo dei siti altrui? ciao 🙂 marni
Ciao Marni,
hai descritto esattamente il mio lavoro, liberare la gente dai problemi tecnici per potersi dedicare al loro sito più produttivamente 😉
rob
Ciao Roberto, ho un pò di difficoltà con sta storia dei cookie. Ti spiego.
Sto creando un sito in wp con woocommerce e leggendo in rete sembra che il consenso per i cookie sia assolutamente necessario.
A tal proposito ho installato il plugin Cookie Notice, che mi fa comparire la famosa finestra dove si chiede l’autorizzazione agli utenti.
Quello che non capisco è se questo plugin funziona solo x avvisare o attiva i cookie nel mio sito? Io l’unica cosa che inserirò per monitorare l’andamento del sito è Analitycs di Google.
Puoi gentilmente darmi un consiglio in merito?
P.S. scusami se ti ho scritto qui sotto ma non ho trovato nessno dei tuoi articoli inerenti al mio dubbio/confusione/domanda … che macello 🙂
Grazie!!!
Stefy.
Ciao Stefania,
mi dispiace ma non ho mai provato il plugin che citi e non so risponderti, però dovrò occuparmi presto della cosa, magari ritorno sull’argomento con più informazioni.
rob
Ciao Roberto. Da due gg avevo un problema con il sito di un amico/cliente.
(Il sito non mostrava i contenuti)
Praticamente i file all’interno della dashboard erano tutti presenti (foto, temi, plugin) ma non dava la preview sul lato web…come se fosse una bozza di due rettangoli colorati senza menù etc…
Ho letto di tutto senza risultati, ma poi ho visto il tuo post e cambiando semplicemente
define(‘WP_DEBUG’, false);in “TRUE” mi è apparso sullo schermo la riga dell’errore.
Ho eliminato il problema ed ora va!
Il resto già lo avevo applicato ma non avevo preso in considerazione il debug. Anzi stavo rismontando il tutto perdendo molto tempo.
Grazie ancora 🙂
Grazie a te del feedback 🙂
rob