Come Creare Una Perfetta Copia Locale del tuo Blog
...una sandbox dove sperimentare in piena libertà!
scritto da Francesco Gavello il 14 aprile 2010 | 28 commenti in: Tool e Risorse

Anche se a prima vista potrà sembrare complicato, replicare in maniera speculare l’installazione di un blog in WordPress è solo questione di pochi, semplici passi.
Se vorrai seguirmi nelle prossime righe, sarai rapidamente in grado di configurare una copia locale del blog che attualmente sfogliano i tuoi lettori. Una copia precisa in ogni minimo dettaglio e che potrà tornarti, credimi, davvero utile nell’ottimizzare e spingere al massimo le tue pagine.
Perché creare una copia locale?
- Per mantenere una copia di backup
- Per effettuare in sicurezza modifiche al layout
- Per testare l’efficacia e il peso di nuovi plugin
- Per testare l’effetto di operazioni potenzialmente dannose al database
Iniziamo?
Di cosa hai bisogno?
Avrai bisogno di:
- una copia aggiornata della cartella del tema (wp-content/themes/[nome-tema-attivo])
- una copia aggiornata della cartella “uploads”
- una copia aggiornata della cartella “plugins”
- una copia aggiornata del database in uso (file .sql o .sql.gz)
- una copia di WAMP (per Win) o MAMP (non pro) (per OS X)
1. Copia dei file del tema e delle cartelle sensibili
Il punto di partenza sarà copiare la cartella stessa del tema. Se non sai dove risiedano i file del tema attivo, puoi seguire la dicitura indicata sotto il pannello “Aspetto” >> “Temi” da dashboard “Tutti i file di questo tema sono posizionati in: percorso“.
Successivamente avrai bisogno di copiare altre due cartelle decisamente importanti per la vita del tuo blog: “wp-content/uploads” e “wp-content/plugins.” Nella prima sono contenuti tutti i file che hai caricato nel tempo associandoli ad ogni post (come le immagini, ad esempio). Nella seconda sono presenti tutti i plugin (attivi o meno) che il tuo blog utilizza e presenta in dashboard nella pagina “Plugin”.
Nota: Compatibilmente con l’installazione di altri particolari plugin (gestori di banner in primis), potrebbero essere presenti ulteriori cartelle all’interno di “wp-content” da copiare allo stesso modo.
2. Esportare il database
Il metodo più semplice per disporre di un backup costantemente aggiornato del database del proprio blog è quello di installare sin dai primi giorni di vita il plugin WP-DB-Backup. È uno di quei pochi plugin essenziali a cui davvero non potrei rinunciare.
Con qualche semplice click potrai decidere se salvare una copia compressa dell’intero database direttamente sull’FTP oppure spedirla ad un indirizzo e-mail. È anche possibile decidere quali tabelle ignorare rendendo il backup più leggero e maneggevole (evitando nel caso di portarsi dietro tabelle inutilizzate da plugin che si è deciso di abbandonare).
Neanche a dirlo, una buona via di mezzo consiste nello spedire l’intero backup giornaliero ad un indirizzo di posta (magari Gmail), configurando sul client un semplice filtro che archivi il messaggio in entrata assegnandogli un’opportuna etichetta. È un ottimo modo di mantenere backup “invisibili”, sempre disponibili e che non pesino sulla inbox globale!
2.1 Esportazione manuale
Questo è probabilmente il metodo più veloce e semplice per mettere a sicuro il proprio database da spiacevoli contrattempi. È naturalmente possibile, per chi se la senta, effettuare l’esportazione manuale del file .sql direttamente da phpMyAdmin. Si tratta però di un’operazione estremamente delicata (per non dire rischiosa se non hai ben chiaro ciò che stai facendo); per ulteriori informazioni puoi leggere la dettagliata pagina sul Codex di WordPress.
3. Configurare una sandbox locale
Ora non dovrai fare altro che configurare una determina area della tua macchina locale per ospitare un’installazione di WordPress in tutto e per tutto simile a quella online.
Quello che faremo sarà:
- Scaricare MAMP o WAMP e attivarlo come una normale applicazione
- Creare un nuovo database (ed eventualmente un nuovo utente con privilegi) da phpMyAdmin
- Scaricare una versione aggiornata di WordPress
- Copiare all’interno di MAMP/WAMP i file di WordPress e procedere con l’installazione
- Copiare al posto giusto i file del tema e le cartelle “uploads” e “plugins”
WAMP (Windows, Apache, MySQL and PHP) e MAMP (Mac, Apache, MySQL and PHP) sono i due migliori amici di chi desideri creare una zona di test sicura e protetta sulla propria macchina locale senza dover installare e configurare separatamente ogni componente di cui sopra.
3.1 Utenti Windows
Gli utenti Windows dovranno utilizzare WAMP per creare la sandbox. Gli amici di WordPress Italy hanno tradotto una fantastica guida che affronta tutte le piccole modifiche necessarie a configurare correttamente Apache e MySQL sulla tua macchina.
3.2 Utenti Mac
Con MAMP su OS X invece le cose filano via molto più lisce: una volta scaricato il .dmg (di MAMP in versione gratuita, non MAMP Pro che è invece a pagamento) sarà sufficiente scompattarlo e trascinare Mamp.app tra le applicazioni.
All’interno di “Mamp” sarà creata una sottocartella “htdocs” dove potremo depositare i file di installazione di WordPress. Lanciando Mamp.app si aprirà automaticamente una finestra del browser da cui potremo accedere a phpMyAdmin e creare il database di supporto.
Potremo così configurare WordPress usando il nome del database appena creato e l’utente “root” conpassword “root”. Semplice, no?
4. Importare il database
Ora disponiamo di una vera e propria sandbox locale in grado di eseguire tutti i nostri progetti basati su PHP e MySQL in piena sicurezza. Se tutto è andato per il verso giusto abbiamo anche installato WordPress e copiato i file del tema (più le cartelle uploads e plugin) al giusto percorso.
Manca solo un aspetto: (ri)popolare il database dei post così come appaiono attualmente online!
Ed ecco che torna utile quel WP-DB-Backup di cui parlavamo prima. ![]()
Recuperiamo il backup effettuato dal plugin e teniamolo a portata di mano sul desktop.
Apriamo nuovamente phpMyAdmin e selezioniamo nella colonna di destra il database che abbiamo assegnato al nostro blog. Scegliamo quindi “Importa” dal menù di navigazione in alto nella porzione destra del pannello e tramite “Sfoglia…” andiamo a indicare il file di backup.
Per evitare che il processo di importazione termini bruscamente dopo un periodo di tempo limitato, è opportuno deselezionare la spunta sotto “Importazione parziale”. Clicchiamo dunque “Esegui” e… prendiamoci un caffè!
Per i backup più corposi potrebbe essere necessario lasciar macinare la pagina per qualche minuto.
4.1 Correzioni al database
Prima di accedere nuovamente al blog sarà necessario correggere i parametri “home” e “siteurl” non combacianti nel database importato. È possibile modificare questi valori in maniera molto rapida da “wp-config.php”, “functions.php” o direttamente nel database agendo da phpMyAdmin. Tra parentesi, questo è un trick che è sempre bene conoscere per gestire alcune situazioni spinose.
Una volta modificati questi parametri potremo loggarci alla versione locale del nostro blog avendo cura di controllare la corretta attività di tutti i plugin installati.
Note finali
Come puoi immaginare questa non vuole essere una guida definita all’argomento, quanto piuttosto un buon punto di partenza per cominciare a valutare seriamente la possibilità di mantenere una copia del proprio blog in locale per qualunque necessità. Ci sono mille modi di affrontare la questione e mille diverse sfumature per affrontare casi particolari, tutte ugualmente valide.
Spero di averti lasciato con l’acquolina in bocca ![]()
Buona sperimentazione!
foto: bfishadow
Aspetta! C'è dell'altro!
Trovato questo articolo interessante?
Condividilo sulla tua rete di contatti Twitter, sulla tua bacheca su Facebook o semplicemente premi "+1" per suggerire questo risultato nelle ricerche in Google. Diffondere contenuti che trovi rilevanti aiuta questo blog a crescere. Grazie!





E gli utenti Linux invece sanno già come fare per installare Apache, MySql e PHP
Scherzi a parte, volevo segnalare un programma utile in questo scenario, e cioè SyncBack, per sincronizzare fra la copia in locale e quella online. Chiaramente non funziona a livello di database.
Ti riferisci a questo in particolare? http://www.2brightsparks.com/syncback/syncback-hub.html
Se sì, utile! Grazie
Sì, è proprio lui! La versione freeware è già molto potente.
Ho trovato il tuo articolo molto interessante, e l’ho messo tra i miei preferiti… mi tornerà molto utile. Grazie!
Complimenti veramente un articolo utile!
Ciao,
ma lo stesso lavoro (sotto Win) si può fare anche con Xampp? C’è qualche differenza tra quest’ultimo e il software da te citato?
Grazie mille
Xampp e Wamp sono equivalenti in questo caso, così come sarebbe equivalente un altro pacchetto preconfezionato, EasyPHP.
Ottimo articolo Francesco… veramente interessante. Ti volevo chiedere, ci sono limitazioni di grandezza per importare il database.. te lo chiedo perchè avevo letto da qualche parte che con EasyPHP ad esempio potevi importare un DB max di 2 o 3 Mb. Se così fosse anche con il programma che suggerisci non potrei mettere il mio Blog in locale….
Ciao Paolo,
per quanto ne sappia, con il metodo sopra indicato non c’è un limite massimo di dimensione del DB. Quando lo importi (a prescindere dal pacchetto globale MAMP, WAMP o XAMPP che hai usato) in phpMyAdmin ricordati di deselezionare la spunta “importazione parziale” come indicato nel post.
L’unico rischio è infatti che l’importazione non si interrompa per eccesso di dimensione del DB, quanto piuttosto per il timeout dell’operazione che si protrae troppo a lungo (ma anche se così fosse, ricaricando lo stesso file riprenderebbe da dove interrotto).
Ok Grazie Francesco… ci proverò… A presto
Ma una copia locale puo’ venire vista anche da terzi o solo da me?
@Stefano: se il tuo computer è direttamente collegato ad Internet, oppure se il router inoltra il traffico sulla porta 80 del tuo computer, e non ci sono firewall software in mezzo, anche gli altri potranno vedere il sito, a patto che riescano ad indovinare il tuo IP.
Buongiorno,
è possibile utilizzare la medesima tecnica anche per trasferire il mio blog su un nuovo dominio e nuovo database?
Buona Giornata.
Ciao Fabio,
non è necessario in questo caso affrontare tutti questi step (anche se come puoi immaginare, in caso di problemi, è bene avere una copia del blog completamente funzionante in locale con la quale coprirsi le spalle).
Esiste un modo molto più semplice di spostare i contenuti di un blog da e verso un nuovo dominio. Sotto al pannello “Strumenti” puoi esportare (e importare) un WXR di massimo 2MB contenente articoli, pagine, post, commenti, campi personalizzati e quant’altro. Dovrai comunque in questo caso portare con te manualmente i file del tema, i plugin ed eventuali file extra presenti nella tua installazione.
Una volta importato il file su un nuovo dominio dovrai correggere i percorsi interni al database per farli puntare all’URL corretto. Puoi usare (con molta cautela) il plugin Search & Replace che ti permette di fare tutto ciò -senza undo, occhio!- senza mettere mano alle query del db. Il caso più comune è quello di avere i percorsi delle immagini interne ai post che puntano ancora al vecchio hosting, o contenuti audio/video di pagine interne che non pescano più i file corretti.
Grazie molto utile!
Tornerò spesso!
Benvenuto Fabio,
piacere di conoscerti!
Ciao a tutti scusate se irrompo e mi presento con un problema, ma non riesco a capacitarmi.
Ho seguito tutti i passaggi con successo (ho anche hackerato il problema del limite a 32mb per il database di phpmyadmin con successo) ma quando punto il browser sull’index.php di wordpress mi risponde cosi:
Safari non può collegarsi al server.
Safari non può aprire la pagina “http://localhost/wordpress/” perché non può connettere al server “localhost”. ( il :8888 lo toglie da solo quando lo indirizzo è presente)
se rimetto il -sample vicino a wp-config.php ogni tanto ( non sempre) mi apre la pagina di wordpress in cui mi dice ovviamente wp-config.php mancante.. il bello è che lo fà ogni tanto, spesso mi rida il messaggio di cui sopra.
Spero nella vostra gentilezza.
Roberto
p.s.
sto spulciando questo blog e lo trovo veramente ben fatto!
Ciao Roberto,
prima di ogni altra cosa mantieni wp-config.php senza “-sample”.
L’installazione di WordPress in locale è andata a buon fine?
Riesci a raggiungere http://localhost:8888/ e visualizzare la root della cartella htdocs di MAMP?
update, se apro il wp-login me lo apre. è l’index.php che non riesce ad aprire.
Complimenti per l’articolo!! Sei stato molto dettagliato e chiaro nella tua esposizione, grazie delle info
Appena possibile metterò in pratica queste istruzioni grazie
grazie per l’articolo molto chiaro e utile.
ho solo un dubbio per quanto riguarda gli url.
io ho sviluppato il sito in locale e tutti gli url puntavano a localhost
quando ho trasferito il sito online ho modificato i riferimenti negli articoli a http://www.ecc
ora facendo una copia del sito online e facendolo girare in locale si dovrebbero modificare tutti gli indirizzi, ad esempio riferimenti interni al sito localhost/www.ecc
ho tentato con la funzione php bloginfo() in modo che gli indirizzi fossero indipendenti dalla posizione della root ma non sono riuscito a trovare una buona soluzione
non so se mi sono spiegato bene
grazie per i chiarimenti
Humm.. quasi
Al momento in localhost come appaiono i tuoi url interni?
Potrebbe esserti utile infilare un BASE tag nell’html di header.php?
grazie per la risposta
cerco di spiegarmi meglio
se scrivo un post in locale in un riferimento interno al sito devo scrivere es. localhost/contatti se poi carico un’immagine il collegamento è localhost/../images.
Ora se metto il post in rete per funzionare devo modificare localhost con http://www.miosito.
Lo stesso se faccio una copia locale del sito, tutti i riferimenti http://www.miosito devono essere modificati in localhost.
Mi piacerebbe trovare un sistema per far funzionare il tutto senza modificare gli indirizzi.
grazie per l’attenzione
Paolo
Credo non ci sia un modo rapido per risolvere la questione.
Soprattutto perché tutti gli URL presenti negli articoli sono fissati nel DB e (in un modo o nell’altro, da plugin o da query in phpMyAdmin), vanno modificati sostituendo localhost con la root del tuo sito o viceversa.
L’errore più comune durante la transizione online è proprio quella dei path delle immagini. Search & Replace è un ottimo plugin che aiuta in questi casi (vedi: http://wordpress.org/extend/plugins/search-and-replace/) ma va usato con estrema cautela perché non presenta UNDO (ergo, occhio perché non si torna indietro) e mette fisicamente mano al database (backup prima di tutto!).
Spero di esserti stato utile.
Trovo questa guida molto utile. Ho appena avuto una disavventura. MI è stato sospeso l’account dell’hosting. Ho richiesto l’attivazione per recuperare i contenuti, ma ho intenzione di creare un blog da zero, inserendo però gli stessi articoli con nuove categorie. Ilblog era troppo carico.
E’ possibile in questo modo creare il nuovo blog per poi trasferirlo “completo” di articoli vecchi etc. su nuovo hosting?
Ciao Silvia,
Per assurdo potresti lavorare completamente in locale alla costruzione di un blog e poi trasferire tutto in produzione solo al momento opportuno. Una copia locale sempre aggiornata e funzionale non è solo una sandbox in cui sperimentare ma anche, se serve, un backup pronto uso da cui pescare nelle peggiori evenienze.
certo!
Ciao
ho un problema simile ma su un sito messo online però costruito con wordpress in locale.
La pagina mi dice: safari non può aprire la pagina http://www.nomesito.it/8888 perchè non può connettersi al server…
In realtà ho dovuto fare una modifica al dns perchè in precedenza il sito era invisibile ed il provider sostiene che passino fino a 48 ore prima che la modifica abbia effetto (non ancora trascorse).
Solo dopo quella modifica è comparso quel messaggio…
Può essere quella la causa o c’è dell’altro?