Creare una copia di backup del vostro blog wordpress
febbraio 5, 2009 4:39 pmSpesso sento l’esigenza di avere una seconda copia del blog, completamente sincronizzata a quella di produzione, dove poter provare le modifiche prima di metterle on line.
Un esempio e` stato l’aggiornamento alla versione 2.7 che non avevo ancora fatto per paura di fare danni.
Alla fine ho deciso di crearmi una seconda copia del blog (non accessibile al pubblico) dove sperimentare migrazioni o provare nuovi plugins.
La procedura non e` di certo complessa, ma ho pensato che averla scritta in maniera chiara e semplice potesse essere utile a tutti.
Vediamo due procedure, una per sistemi windows e l’altra per sistemi linux. Entrambe vi permetteranno di avere una seconda versione del vostro blog che gira completamente sulla macchina locale. Le procedure vanno leggermente adattate nel caso in cui vogliate avere la copia su un sito di hosting. Partiamo con il caso piu` comune (ancora per poco 🙂 ), quello di una macchina Windows:
- Fate una copia di backup di tutti i contenuti del sito di produzione, compreso il database. Per il database potete usare il plugin WordPress Database backup, di cui vi parlero` anche in un altro post. Nel caso wordpress sia installato in una cartella (esempio wordpress) copiare la cartella e il file .htaccess
Io vi raccomando di includere nel backup tutti i file e tutte le tavole del DB. Nel caso abbiate tanti dati e vogliate ridurre i tempi di backup, potete limitarvi alle tavole principali:- wp_comments - wp_links- wp_options - wp_postmeta - wp_posts - wp_term_relationships - wp_term_taxonomy - wp_terms - wp_usermeta - wp_users
- Scaricate una versione (lite o full) di Xampp. Dal sito
XAMPP è una distribuzione Apache facile da installare contenente MySQL, PHP e Perl. XAMPP è veramente facilissimo da installare e usare – scaricala, estraila e inizia.
- Installate XAMPP su C:
- Editare il file c:\xmpp\apache\conf\httpd.conf e cancellare il carattere # davanti la linea
LoadModule rewrite_module modules/mod_rewrite.so
- Copiate tutti i file presi dal vostro blog “live” nella cartella c:\xampp\htdocs\wpdev (o qualsiasi altro nome purche` sia sotto c:\xampp\htdocs)
- Lanciare XAMPP e aprire con un browser su http://localhost/phpmyadmin
- Dall’interfaccia di phpMyAdmin creare un nuovo database (es. wpdev)
- Sempre dall’interfaccia di phpMyAdmin selezionare il DB appena creato e importare lo script SQL (il file) generato da WordPress Database backup
- Aprire il file wp-config.php nella cartella c:\xampp\htdocs\wpdev e cambiare la configurazione del database. In genere MySql e` configurato con un utente root e password nulla.
- Se dal varsione in produzione si e` copiato il file .htaccess potrebbe essere necessario modificarlo. Questa procedura non e` generalizzabile.
- IMPORTATE AL FINE DI EVITARE DI ESSERE RIMANDATI ALLA COPIA ONLINE DEL SITO: Dall’interfaccia di phpMyAdmin selezionare la tavola wp_options e cliccare sulla prima icona a destra del nome (“Mostra” o “Show”). In questa tavola dovete cambiare tre valori: siteurl, home e fileupload_url (se farete degli upload di contenuti sulla copia locale del sito). Per cambiarli basta cliccare sull’icona a forma di penna (“Modifica” o “Edit”) e cambiare i seguenti valori:
- siteurl: http://www.blog_wordpress.com –> http://localhost/wpdev
- home: http://www.blog_wordpress.com –> http://localhost/wpdev
- fileupload_url: http://www.blog_wordpress.com/wp-content/images –> http://localhost/wpdev/wp-content/images
- Finito! Adesso aprire un browser all’indirizzo http://localhost/wpdev e se tutto e` stato fatto correttamente si trovera` la copia locale del blog.
Questa procedura funziona anche per macchine linux, basta usare la versione di XAMPP apposita.
Ma se avete una distribuzione Ubuntu (o in generale basata su Debian) potete evitare di usare XAMPP e configurare la vostra macchina pezzo per pezzo ed eseguire tutta la procedura a linea di comando:
- Installare Apache, MySql e php (se non sono gia` installati)
sudo apt-get install apache2 sudo apt-get install php5 sudo apt-get mysql-server sudo apt-get php5-mysql sudo /etc/init.d/apache2 restart
- Creare un backup del sito in produzione, collegandosi in SSH al server eseguire (sostiture le parti in maiuscolo con i valori corretti)
mysqldump -uUSERNAME -pPASSWORD -hSERVER DATABASENAME > dbbackup.bak tar -cfz sitebackup.tar.gz SITE_ROOT_DIRECTORY
- Copiare sitebackup.tar.gz e dbbackup.bak sulla macchina locale usando scp o ftp (o qualsiasi altro metodo usato di solito)
- Creare un database locale su MySql e ripristinare il backup. Nella cartella locale dove e` dbbackup.bak lanciare
mysqladmin create DATABASENAME mysql -uroot DATABASENAME < dbbackup.bak
- Estrarre sitebackup.tar.gz in una cartella locale, per esempio /home/USERNAME/htdocs/wpdev
mkdir /home/USERNAME/htdocs/wpdev tar xvzf sitebackup.tar -C /home/USERNAME/htdocs/wpdev
- Aggiungere la cartella appena creata alla lista degli alias in Apache; aprire il file /etc/apache2/conf.d/alias e inserire
Alias /wordpress /home/USERNAME/wpdev <Directory /home/USERNAME/wpdev> Options Indexes FollowSymLinks AllowOverride All Order allow,deny Allow from all </Directory>
- Abilitare il mod_rewrite per far funzionare i permalink
ln -s /etc/apache2/mods-available/rewrite.load /etc/apache2/mods-enabled/rewrite.load
- Modificare le impostazioni in wp-config.php per usare il nuovo database locale; aprire wp-config.php in /home/USERNAME/htdocs/wpdev e modificare
// ** MySQL settings ** // define('WP_CACHE', false); //Added by WP-Cache Manager define('DB_NAME', 'DATABASENAME'); // The name of the database define('DB_USER', 'root'); // Your MySQL username define('DB_PASSWORD', ''); // …and password define('DB_HOST', 'localhost'); // …and the server MySQL is running on
- Se nel blog in produzione si usa un plugin tipo WP-Cache e` necessario cancellare i dati generati:
cd /home/USERNAME/htdocs/wpdev rm wp-content/advanced-cache.php ln -s wp-content/plugins/wp-cache/wp-cache-phase1.php wp-content/advanced-cache.php rm wp-content/cache/* chmod -R 777 *
- Non rimane che aggiornare i dati nella tabella wp_options per modificare l’indirizzo del sito in modo da non essere rediretti al sito in produzione. Seguire il punto 15 del metodo precedente, oppure creare un file locale chaiamato fixsettings.sql, editare il contenuto inserendo questo codice
update wp_options set option_value='http://localhost/wpdev/' where option_id=1; update wp_options set option_value='http://localhost/wpdev/' where option_id=40;
[NOTA: sembra che in WP 2.5+ option_id sia 39 e non 40. Verificare sul database]
Importare il file nel database eseguendomysql -uroot < fixsettings.sql
- Fatto! Aprire un browser all’indirizzo http://localhost/wpdev.
Ogni volta che si vuole sincronizzare il contenuto del sito wpdev con quello del sito in produzione bastera` fare un backup del database per poi importarlo in locale, ricordandosi sempre di cambiare i valori contenuti in wp_options (punto 15 del primo metodo o punto 10 del secondo metodo)
[Molte delle informazioni qui riportate sono state prese da Running A Duplicate Offline Copy WordPress Site e Make a Backup Copy of your Production WordPress Blog on Ubuntu :: the How-To Geek]
Tags: linux,Ubuntu
Categorie: Programmazione, Siti Internet
12 commenti »
12 risposte a “Creare una copia di backup del vostro blog wordpress”
ciao, inanzi tutto complimenti per la guida veramente chiara, vorrei chiederti una cosa, per copia “live”cosa indenti? Utilizzando filezilla cosa devo copiare nella cartella da te indicata?
Per “live” intendo la parte che e` sul web server. Il sito “vero” insomma. Con Filezilla devi copiare tutta la cartella “wordpress” o “wp” a seconda di come l’hai installato.
Fatto tutto quando indicato e soo riuscito a fare il backup di WP. grazie!
Che bello! Mi piace sempre sapere che sono stato utile 😉 Grazie a te per avermelo scritto!
dovresti dare anche qualche istruzione per passare lo stesso db su un altro dominio in modo da creare un clone ma su un dominio diverso. In particolare la fdase piu difficile secondo me e quella del far leggere il db importato nel domino nuovo
Non ho ben capito il tuo problema.. cosa vuoi ottenere? Avere solo la copia del DB in un altro dominio o l’intero blog compresa una seconda installazione di WP?
Nel secondo caso dovrebbe essere la stessa procedura descritta sopra sostituendo a localhost il nuovo nome di dominio.
Per passare il dump del db da un dominio all’altro lo importi facendo attenzione di non creare il database due volte, cioè di crearlo e mantenere nel dump l’struzione di crearlo ancora, altrimenti ricevi errore. Altre difficoltà non ce ne sono.
Ciao!
il tuo articolo mi è stato molto utile anche a distanza di molto tempo! grazie!
Ho solo un problemino…la parte admin mi funziona perfettamente e invece nel frontend vedo l’homepage mentre tutti i link mi rimandano a http://localhost/xampp/,
qualcuno ha qualche idea di come risolverlo?
Â
ok, ho messo i permalink da struttura personalizzata a standard e riesco a navigare ma non vedo più le immagini del sito…
Non è che ti sei dimenticata di mettere l’indirizzo del tuo server nella configurazione di word press?? i link generati da wordpress (sia per i permalink che per le immagini) sono tutti relativi al tuo domain principale, mi sembra quindi strano che non funzionino..
Verifica sulla tua pagina di admin, impostazioni/generali/indirizzo wordpress e indirizzo sito.