Se il file functions.php è il singolo file più importante per il tuo tema WordPress, allora wp-config.php è il file più importante di tutta l’installazione del tuo blog in WordPress. E’ un file all’interno del quale si trovano i principali parametri di installazione e di accesso al database, ma contiene molti altri parametri che permettono di configurare WordPress al meglio aumentandone le prestazioni e la sicurezza generale. In questo articolo ti svelo i più utili parametri di configurazione WordPress per sfruttare al meglio il motore del tuo blog.
Il pacchetto di installazione di WordPress non contiene un file wp-config.php, ma un file di esempio chiamato wp-config-sample.php che non contiene tutti i parametri di configurazione possibili, ma solamente quelli più utilizzati per un’installazione standard. Questi sono i percorsi delle cartelle, l’url di base, i parametri di accesso al database e alcune altre cose. Questo file ha il solo scopo di indicare il modo corretto di configurare WordPress, tuttavia non viene mai utilizzato perché alla prima installazione WordPress provvede alla creazione di un file wp-config.php con i dati inseriti dall’utente tramite browser.
Accesso al database
Iniziamo proprio da questi parametri forniti dal provider che ospita il tuo blog. Le informazioni di base necessarie a WordPress per funzionare sono l’indirizzo dell’host, il nome del database, l’utente e la password di accesso. Ecco come appaiono questi parametri nel file di configurazione di esempio:
define('DB_NAME', 'database-name'); define('DB_USER', 'database-username'); define('DB_PASSWORD', 'database-password'); define('DB_HOST', 'localhost');
Di default l’host del database è localhost perché nella maggior parte dei casi il database e il webserver sono la stessa macchina, ma non è sempre così. Alcuni provider forniscono uno specifico indirizzo ip o hostname che può anche essere diverso per due siti nello stesso hosting. In questo caso, e in tutti i casi nei quali non si conosce l’ip o l’hostname del server database, può essere utile un trucco che è nascosto nelle profondità dell’eBook di WordPress.
define('DB_HOST', $_ENV{DATABASE_SERVER});
Inserendo questo codice nel file di configurazione WordPress inserirà automaticamente il corretto ip del database leggendolo dalle variabili di sistema che sono definite nel server stesso.
Chiavi di sicurezza
Le chiavi di sicurezza WordPress sono un set di variabili che aumentano il livello di cifratura delle informazioni registrate nei cookies dell’browser dell’utente. Nelle versioni di WordPress precedenti alla 3.0 queste informazioni dovevano essere inserite a mano nel file wp-config.php, ma successivamente all’uscita di WordPress 3.0 la procedura di installazione provvede a inserire questi parametri generando stringhe di caratteri casuali. Inoltre prima della versione 3.0 le chiavi di sicurezza erano 4, mentre ora le chiavi disponibili sono 8.
define('AUTH_KEY', 'inserisci la tua chiave qui'); define('SECURE_AUTH_KEY', 'inserisci la tua chiave qui'); define('LOGGED_IN_KEY', 'inserisci la tua chiave qui'); define('NONCE_KEY', 'inserisci la tua chiave qui'); define('AUTH_SALT', 'inserisci la tua chiave qui'); define('SECURE_AUTH_SALT', 'inserisci la tua chiave qui'); define('LOGGED_IN_SALT', 'inserisci la tua chiave qui'); define('NONCE_SALT', 'inserisci la tua chiave qui');
Se durante l’installazione vuoi inserirle a mano tutte le 8 chiavi puoi sfruttare la pagina ufficiale di WordPress e incollare il contenuto del tuo file di configurazione.
Prefisso tabelle del Database
Uno dei parametri che avrai visto sicuramente durante l’installazione guidata di WordPress è il prefisso delle tabelle del db. Questa informazione è memorizzata nel file wp-config.php come qui sotto:
$table_prefix = 'wp_';
Questo parametro costituisce la prima parte del nome di tutte le tabelle del database di WordPress. E’ importante scegliere in fase di installazione un prefisso diverso da “wp_”, questo per rendere difficile il lavoro di eventuali hacker che tentano di accedere alle tabelle del db. Se però hai un’installazione di WordPress già funzionante però non modificare questo parametro perché potresti rendere inaccessibile il tuo blog.
Configurazione lingua
La lingua predefinita nell’installazione di WordPress è l’inglese ma la puoi modificare sfruttando i file di traduzione .mo. Le voci di riferimento nel file di configurazione sono:
define('WPLANG', ''); define('LANGDIR', '');
Solitamente i file con la traduzione devono essere posizionati nelle cartelle predefinite di WordPress che sono wp-content/languages e wp-includes/languages. Inserendo nel file di configurazione le due righe qui sopra puoi definire come cartella dei file di lingua quella che più ti piace.
Debug
Per gli sviluppatori e per tutti coloro che si vogliono cimentare nella creazione di plugin, WordPress fornisce un sistema di debugging interno che può essere attivato impostando nel file di configurazione il parametro WP_DEBUG che solitamente è impostato su false.
define(‘WP_DEBUG’, true);
Indirizzo del Blog/Site
Due parametri che solitamente si omettono nel file di configurazione sono l’url della home dell’installazione di WordPress e l’url di riferimento di tutta l’installazione. Queste due informazioni sono presenti nel database e questo è il motivo per il quale non vengono inserite nel file wp-config.php, ma dalla versione 2.2 è possibile inserirle nel file di configurazione per ridurre il numero di query al database e aumentare in questo modo la velocità generale del blog. La sintassi è la seguente:
define('WP_HOME', 'https://www.giuseppefava.com'); define('WP_SITEURL', 'https://www.giuseppefava.com');
Questo è uno dei trucchi che sono elencati nel post in cui ti spiego come velocizzare wordpress al massimo.
Sovrascrivere i permessi di file e cartelle
Solitamente questa direttiva di configurazione non è necessaria perché i migliori hosting per WordPress forniscono una configurazione di sicurezza del filesystem adeguata, ma per tutti coloro che ne hanno bisogno è possibile forzare i permessi di accesso ai file e alle cartelle impostando i seguenti parametri.
define('FS_CHMOD_FILE', 0755); define('FS_CHMOD_DIR', 0644);
Revisioni dei Post
Nelle ultime versioni di WordPress è stata inserita un’utilissima funzione di salvataggio automatico che tiene traccia delle modifiche apportate agli articoli. Questa funzione è molto utile se per qualche motivo il browser va in crash proprio mentre stai scrivendo un articolo e ti permette anche di poter ripristinare una versione precedente di un articolo nel caso in cui i cambiamenti apportati non andassero più bene. Sebbene però questa caratteristica sia utile alla maggior parte dei blogger, ad alcuni non piace il continuo salvataggio automatico che in qualche modo rallenta l’operazione di scrittura dell’articolo. Inoltre l’aumento di versioni degli articoli influenzando negativamente la velocità del database e di conseguenza la velocità generale del blog. Fortunatamente però i parametri di questa utile funzionalità sono personalizzabili!
Come impostazione predefinita ogni post viene automaticamente salvato ogni 60 secondi ma inserendo nel file wp-config.php il seguente parametro puoi facilmente impostare un intervallo superiore:
define('AUTOSAVE_INTERVAL', 120); // in secondi
Per alcuni post il numero di revisioni arriva anche a superare il centinaio con un notevole appesantimento del database. Se pensi che questo numero sia troppo elevato puoi impostare un numero massimo di revisioni oltre le quali WordPress inizierà a cancellare quelle più vecchie. Il parametro da inserire è:
define('WP_POST_REVISIONS', 5);
Puoi impostare un qualsiasi numero intero, ma se vuoi disabilitare l’intero sistema di gestione delle revisioni ti basta inserire:
define('WP_POST_REVISIONS', false);
Il cestino degli articoli
Dalla versione 2.9 di WordPress è stata introdotto nel core la funzione di cestino per gli articoli. Questa funzionalità permette di mantenere nel cestino gli articoli cancellati e di ripristinarli nel caso servissero o fossero stati cancellati erroneamente. Automaticamente WordPress elimina definitivamente l’articolo dal cestino dopo 30 giorni dalla data della sua cancellazione. Puoi modificare questo periodo inserendo nel file di configurazione questo parametro:
define('EMPTY_TRASH_DAYS', 7 );
Se non ti piace questa caratteristica puoi disabilitarla inserendo al posto del numero di giorni il valore zero come indicato qui sotto:
define('EMPTY_TRASH_DAYS', 0 );
Ricordati però che se disabiliti il cestino WordPress non ti chiederà conferma dell’eliminazione dei tuoi articoli e nel caso tu li cancelli non saraà più possibile recuperarli.
FTP/SSH Constants
WordPress ti permette di aggiornare il core, i plugin e i temi direttamente dall’interfaccia di amministrazione. Alcuni provider necessitano di un accesso FTP o SSH per eseguire gli aggiornamenti o per installare nuovi plugin. Utilizzando il codice qui sotto potrai configurare WordPress per accedere con questi protocolli.
define('FS_METHOD', 'ftpext'); //scegli il metodo di accesso: "direct", "ssh", "ftpext", or "ftpsockets" define('FTP_BASE', '/path/to/wordpress/'); // percorso assoluto della root di installazione define('FTP_CONTENT_DIR', '/path/to/wordpress/wp-content/'); // percorso assoluto della cartella "wp-content" define('FTP_PLUGIN_DIR ', '/path/to/wordpress/wp-content/plugins/'); // percorso assoluto della cartella "wp-plugins" define('FTP_PUBKEY', '/home/username/.ssh/id_rsa.pub'); // percorso assoluto della chiave pubblica SSH define('FTP_PRIVKEY', '/home/username/.ssh/id_rsa'); // percorso assoluto della chiave privata SSH define('FTP_USER', 'username'); // nome utente per l'accesso FTP o SSH define('FTP_PASS', 'password'); // password per l'utente FTP define('FTP_HOST', 'ftp.example.org:21'); // hostname di accesso al server FTP o SSH
Ottimizzazione automatica Database
Dalla versione 2.9 di WordPress è stata aggiunta una funzione per l’ottimizzazione automatica delle tabelle del database. Per abilitarla devi inserire nel file di configurazione la seguente riga di cosice:
define('WP_ALLOW_REPAIR', true);
Una volta attivata puoi vedere i parametri accedendo alla pagina: http://www.tuosito.com/wp-admin/maint/repair.php L’accesso a questa pagina non è limitato e questo significa che chiunque vi può accedere. Il motivo per il quale non è necessario effettuare il login per accedere a questa funzione è che se il database è corrotto può non essere possibile effettuare il login. Una volta utilizzata questa funzione ricordati di rimuovere o commentare la riga di configurazione per disattivare la funzionalità.
Aumentare il limite di memoria PHP
Spesso, attivando un plugin nuovo appare il messaggio di errore che indica che la memoria è esaurita. Per aumentare il valore massimo di memoria utilizzare da PHP i metodi sono diversi e li abbiamo visti già in un precedente post, ma se lo vuoi fare senza dover accedere al pannello di configurazione dell’hosting, puoi inserire questa riga di codice nel file di configurazione:
define('WP_MEMORY_LIMIT', '128M');
Nota: Questa caratteristica è molto comoda ma su alcuni hosting non funziona. Se rilevi che il tuo provider non permette questo tipo di configurazione puoi sempre modificare il limite della memorio utilizzando uno dei metodi descritti in questo articolo.
Visualizzare il Log degli errori di WordPress
Se stai sviluppando un plugin per WordPress, è utile avere un error log. Puoi creare un file di log inserendo alcune righe nel file di configurazione. La prima cosa da fare è creare un file di testo chiamato php_error.log con diritti di scrittura sul server e posizionarlo in una cartella a tua scelta. Successivamente inserisci nel file di configurazione queste righe modificandole in base alle tue esigenze.
@ini_set('log_errors','On'); @ini_set('display_errors','Off'); @ini_set('error_log','/home/path/to/logs/php_error.log');
in questo modo le informazioni di debug non appariranno più a video ma verranno salvate nel file appena creato.
Spostare la cartella wp-content
Dalla versione 2.6 di WordPress è stata inserita la possibilità di spostare la cartella wp-content in una posizione personalizzata per incrementare il livello di sicurezza dei contenuti. Puoi scegliere una locazione diversa per la tua cartella wp-content modificando nel file wp-config.php le seguenti righe:
define( 'WP_CONTENT_DIR', $_SERVER['DOCUMENT_ROOT'] . '/blog/wp-content' ); define( 'WP_CONTENT_URL', 'http://example/blog/wp-content');
Ti consiglio anche di inserire le prossime due righe perchè alcuni plugin potrebbero non funzionare correttamente con questa modifica:
define( 'WP_PLUGIN_DIR', $_SERVER['DOCUMENT_ROOT'] . '/blog/wp-content/plugins' ); define( 'WP_PLUGIN_URL', 'http://example/blog/wp-content/plugins');
Cambiare la tabella degli Utenti
Come impostazione predefinita WordPress salva le informazioni degli utenti nelle tabelle wp_users e wp_usermeta. Utilizzando la seguente funzione puoi scegliere una tabella diversa dove salvare le informazioni, incrementando la il livello di sicurezza del tuo blog:
define('CUSTOM_USER_TABLE', $table_prefix.'mia_tabella_users'); define('CUSTOM_USER_META_TABLE', $table_prefix.'mia_tabella_usermeta');
Abilitare Multi-Site Network
Dalla versione 3.0 di WordPress è stata introdotta la possibilità di gestire un network di siti con una sola installazione. Per abilitare questa funzione devi inserire nel file di configurazione:
define('WP_ALLOW_MULTISITE', true);
Una volta entrati nell’interfaccia di amministrazione troverai una nuova pagina chiamata “Network” dalla quale puoi completare il setup di questa funzionalità.
Mettere in sicurezza il file WP-Config
Come avrai sicuramente intuito il file wp-config.php contiene informazioni molto importanti per la tua installazione di WordPress. E’ quindi importante che nessuno tranne te abbia accesso a queste informazioni per rendere più sicuro il tuo sito. In una installazione standard questo importantissimo file si trova nella root di installazione di WordPress, ma lo puoi spostare in qualsiasi altra cartella perché WordPress lo cercherà in tutte le altre cartelle. Puoi inoltre utilizzare il file .htaccess per limitare l’accesso pubblico al file, inserendo questo codice:
# Protect wp-config.php <Files wp-config.php> order allow,deny deny from all </Files>
Forzare l’uso di SSL per il Login
Se sul tuo server è abilitato l’SSL puoi configurare WordPress per utilizzare una connessione sicure durante la procedura di login. Ti basta inserire nel file di configurazione:
define('FORCE_SSL_LOGIN', true);
Inoltre puoi forzare l’uso di SSL per tutte le pagine del pannello di amministrazione aumentando così la sicurezza dell’intero sistema. Puoi farlo aggiungendo:
define('FORCE_SSL_ADMIN', true);
Disabilitare le modifiche dei Plugin e Temi
Se hai realizzato un sito con WordPress per un tuo cliente o un amico e non vuoi che questi accidentalmente modifichi i plugin e i temi installati, puoi semplicemente inserire queste due direttive al file di configurazione.
define('DISALLOW_FILE_EDIT',true);
Puoi inoltre disabilitare l’installazione e l’aggiornamento dei temi e dei plugin.
define('DISALLOW_FILE_MODS',true);
Ricordati però che temi e plugin vengono aggiornati per correggere errori o per estendere funzionalità. Non aggiornarli potrebbe compromettere la sicurezza dell’intera installazione di WordPress.
Conclusioni
Come hai potuto vedere, per configurare WordPress molte sono le cose che puoi fare con il file wp-config.php e molte sono anche le funzioni nascoste che questo file può attivare. Ogni nuova versione di WordPress aggiunge funzionalità e caratteristiche nuove quindi ti consiglio di leggere le note di rilascio delle ultime release per scoprire quali altre caratteristiche interessanti nasconde il file di configurazione di WordPress e se ne scopri altre puoi inserirle sotto forma di commento a questo articolo…
Lascia un commento