Per 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.
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.
Ciao, innanzi tutto complimenti per il libro.
Sto cercando di installare il mio sito anche in locale per poter fare delle prove ed evitare che vadano online, ma attraverso “localhost/thehotelspecialist” riesco a vedere la homepage in locale, ma senza gli articoli pubblicati, cosi’ come cliccando su logo o i titoli del menù non riesco ad aprire le pagine del sito.
Cosa devo fare per risolvere il problema?
Ciao Rosario, prima di tutto grazie per i complimenti. Riguardo al tuo quesito, ho l’impressione che tu abbia collocato le cartelle e i file di WP in una sottocartella ‘thehotelspecialist’, è così anche sullo spazio Web? In genere cartelle e file di WP vanno collocati direttamente in htdocs, a meno che non sia stata impostata appunto in WP la modalità di sotto-cartella, ma questa si usa quasi sempre per installare, per esempio, un blog dentro un sito come struttura autonoma, per esempio nomedelsito.com/blog.
Buongiorno.
avrei bisogno di una mano: il PC Linux su cui “abitava” il nostro vecchio sito wordpress, ci ha lasciati definitivamente. Purtroppo, non ho fatto un export del database ma sono riuscito, collegando l’ HD ad un altro PC, ad esportare tutta la cartella di installazione del sito wordpress.
Adesso, ho reinstallato il SO Linux su un nuovo HD ma non riesco ad importare i vecchi dati. Esiste un modo per importarli? Spero di ricevere una soluzione… altrimenti avremo perso 8 anni di dati e vivrò per sempre con il rimorso di non avere mai effettuato un export… 🙂
Saluti
Ciao Sergio, purtroppo senza database non c’è modo di recuperare i contenuti (tranne le foto che sono conservate nella cartella di WordPress, ovviamente). Se il sito era anche online, ovvero visibile su Web e non solo in rete locale, potresti provare a vedere se Wayback Machine (cercala con Google) ne ha conservato traccia, e recuperare i testi delle pagine da lì eventualmente.
Buona sera, scusi che scrivo qui ma non so tanto dove potermi rivolgere ne a chi
Non riesco ad accedere al mio wp-admin …non mi riconosce la psw quindi decido di cambiarla ma mai mi arriva la mail per il reset e non so mica come fare a riuscire ad entrare…. il sito è ilmondodivale.it
forse lei mi riesce ad aiutare?
o se mi indica una via per risolvere…
grazie mille
Valentina
Buona sera Valentina, un caso come quello che descrive richiede di intervenire nel database MySQL per verificare (ed eventualmente cambiare) l’indirizzo e-mail dell’amministratore. Dovrebbe utilizzare il pannello di hosting per accedere al phpMyAdmin ed eseguire l’operazione di cui sopra nel campo di WordPress che contiene i dati degli utenti.
Buongiorno, come faccio a sapere se il nome del database che è stato inserito in fase di registrazione di wordpress in remoto e uguale a quello che ho inserito io installando wordpress in locale? Da dove lo posso vedere?
Ciao Fausto, i dati relativi al database (nome, utente, password, hosting DB, prefisso tabelle) li trovi sempre all’interno del file wp-config.php, che però puoi normalmente consultare soltanto accedendo via FTP oppure con lo strumento di gestione file del pannello di hosting. In genere sono sempre diversi da quelli dell’installazione locale, soprattutto se vengono definiti in automatico e non manualmente da te.
Ciao,
è possibile installare wordpress usando un database MsSQL invece del MySQL?
Non credo, Lutis, solo MySQL o MariahDB che è appunto compatibile.
Ciao
È mia intenzione realizzare una applicazione web con WP per la gestione un un archivio clienti e dei relativi acquisì, cambi, resi e quant’altro. Dove è meglio collocare questo archivio ? Sullo stesso db di WP o separatamente tenendo conto di accessi multipli simultanei ?
Complimenti per l’articolo
Ciao Giuseppe, se utilizzi un plugin come WooCommerce (consigliatissimo, visto che ti permette di gestire tutte le operazioni che hai elencato e in modo abbastanza intuitivo) sarà il plugin stesso a creare i campi nel database, e inoltre potrai in seguito anche esportare i dati relativi nel caso ti fosse utile o necessario per altri scopi. La capacità di gestire un grosso traffico di accessi al database è più che altro legata alle prestazioni dell’hosting (ti sconsiglio una soluzione ‘shared’, ovvero condivisa) e alla manutenzione del database stesso, che va periodicamente ottimizzato. Per l’hosting ti consiglio il pacchetto semi-dedicato di MisterDomain (http://bit.ly/wpaz357), se non vuoi spendere molto ma desideri comunque buone prestazioni, mentre per l’ottimizzazione del DB ti consiglio il mio ebook dedicato appunto a questo argomento (http://libriwordpress.altervista.org/project/wordpress-database/). Se vuoi farti un’idea di come funziona WooCommerce, puoi richiedere gratuitamente un capitolo omaggio del mio manuale usando l’apposito pulsante che trovi in questa pagina: http://www.bonaventuradibello.com/e-commerce-con-wordpress-e-woocommerce
Innaitutto grazie per la esaustiva risposta risposta è per il capitolo del tuo libro che omaggi.
A perte il tuo scritto, mi puoi consigliare altre letture sul’argomento ?
Giuseppe
Purtroppo di specifico sulla gestione dei database in WordPress non c’è granché in italiano, per quello ho scritto e pubblicato il mio ebook. Forse trovi qualcosa in inglese cercando su Google.
Grazie
Mi farò sentire