guida ai database per WordPressPer chi si avvicina allo sviluppo Web partendo da zero, ma anche per chi è abituato da sempre a realizzare siti Web “statici” con strumenti tradizionali come HTML e CSS, può non essere immediatamente chiaro come un CMS gestisce i dati del sito, ovvero la distinzione fra file e database.

Per questo motivo mi è sembrato doveroso dedicare almeno un breve articolo introduttivo all’argomento, a beneficio di chi ancora avesse dubbi sull’argomento come di chi incontrerà simili perplessità nel momento in cui dovrà gestire WordPress nelle operazioni di manutenzione, esigenza che prima o poi si presenta per chiunque.

Quando si realizza un sito con un CMS come WordPress tutti i dati relativi ai contenuti di testo, ma anche le impostazioni e i riferimenti alle immagini (nome del file, posizione sul server, ecc.) vengono memorizzati all’interno di un database: quest’ultimo non è un file, ma un archivio (database, appunto) gestito dallo standard MySQL e accessibile dal pannello PHPMyAdmin. Dovrebbe essere chiaro, quindi, che non è possibile installare WordPress senza un database.

Il database è memorizzato all’interno di un server MySQL o compatibile, per esempio MariaDB. Il server può contenere anche più database che possono appartenere a siti diversi, e per accedere a ogni database bisogna conoscere, oltre al suo nome, anche il nome e la password associati all’utente che ha i privilegi per gestirlo. Questi dati (nome del server, nome del database, nome utente e password) sono quelli che vanno inseriti nel file wp-config.php di WordPress per consentire al CMS di installarsi al primo lancio, creando le tabelle del database, e di gestire i contenuti in seguito. Tali dati vengono forniti nel momento in cui si crea il database, oppure inviati dal fornitore del database quando quest’ultimo è già pronto per l’uso.

L’installazione di WordPress crea, come dicevamo, delle tabelle all’interno del database: queste rappresentano dei ‘contenitori’ in cui sono conservati i dati, per esempio pagine e articoli, informazioni sugli utenti del sito, dati sulla configurazione dei plugin e del tema, e così via.

In genere non si accede a un database fino al momento in cui si dovrà eseguire qualche operazione di manutenzione manuale per il backup o il ripristino, in genere l’esportazione e importazione dei dati attraverso un file esterno (che avrà estensione .sql oppure sarà compresso in formato .gzip ma che in sostanza è un file di testo strutturato in cui sono copiati i dati delle tabelle).

Nelle fasi di ‘trasloco’ di un sito WordPress da un hosting on line a un server locale, ovvero installato sul vostro computer, dovrete scaricare sia le cartelle e i file che contengono l’installazione di WordPress e i file caricati da voi (plugin, temi, immagini, eventuali documenti audio, PDF ecc.) ma anche memorizzare in un file, usando un plugin o agendo manualmente, le informazioni memorizzate nel database associato, ovvero i dati contenuti nelle sue tabelle, che in questo modo andranno come dicevamo a far parte di un file vero e proprio, nel formato SQL. Queste ultime informazioni saranno poi importante, con l’operazione inversa, nel nuovo database creato su un altro server, in questo caso caso locale e gestito dall’eventuale XAMPP, MAMPP o pacchetto simile, sul vostro computer.

Il file SQL non è altro che un modo per conservare temporaneamente i dati che in sostanza sono ancora presenti sia nel database originale (sul server Web) sia nel database locale una volta che li avrete importati. Il file SQL del database potrebbe quindi essere cestinato senza che cambi nulla all’installazione Web o locale del sito, ma in genere si tende a conservarlo come backup per eventuali usi futuri che potrebbero presentarsi, per esempio un ripristino del sito originale.

In tutte queste operazioni, naturalmente, le ‘coordinate’ del database saranno sempre riportate nel file wp-config.php, che contiene infatti il nome del server, quello del database e i dati d’accesso (nome utente e password). Sarà solo modificando queste informazioni e quelle nel database, in modo che ‘puntino’ ai dati del nuovo server MySQL, che permetterà al sito di funzionare nella sua nuova collocazione (su un diverso hosting Web oppure in locale).

Nell’immagine che segue potete vedere l’interfaccia di PHPMyAdmin con a sinistra un elenco di database, che in questo caso sono ospitati quindi sullo stesso server locale (localhost) e che fanno parte di altrettanti siti WordPress.

L'interfaccia di PHPMyAdmin con i database dei siti WordPress

Il numero fra parentesi che segue il nome di ogni database si riferisce alle tabelle utilizzate dall’installazione di WordPress per il sito associato a quel particolare database. In realtà tutte le operazioni che si possono compiere dall’interfaccia di PHPMyAdmin sono anche accessibili da linea di comando, usando le istruzioni (query) del linguaggio SQL.

Queste istruzioni, in realtà, si possono digitare anche all’interno di PHPMyAdmin usando proprio la scheda SQL, e sono utilizzate per esempio nel caso in cui si importa un database dopo un trasloco: in questo caso, infatti, i riferimento al server cambiano, per esempio da http://www.nomedelsito.com a http://localhost o viceversa, oppure da http://www.vecchiosito.com a http://www.nuovosito.com. In genere queste sostituzioni si possono fare direttamente sul file SQL prima di procedere con l’importazione nel nuovo database, usando un editor di testo o meglio ancora di codice, ma nel caso in cui il database avesse dimensioni troppo grandi ed è necessario gestirlo in formato compresso, dovrete utilizzare appunto delle query SQL per fare le sostituzioni appena descritte.

Tutte queste procedure sono descritte nel Capitolo 16 del mio libro Webmaster con WordPress, ma siete tutti invitati a porre qui eventuali domande che potranno sorgere dai dubbi e dalle incertezze che queste operazioni più tecniche possono suscitare, sarò felice di rispondervi e in questo modo potremo dare informazioni utili anche ad altri.