Viagra online
www.flickr.com

Creare una copia di backup del vostro blog wordpress

febbraio 5, 2009 4:39 pm

Spesso 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:

  1. 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
  2. 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.

  3. Installate XAMPP su C:
  4. Editare il file c:\xmpp\apache\conf\httpd.conf e cancellare il carattere # davanti la linea
    LoadModule rewrite_module modules/mod_rewrite.so
  5. 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)
  6. Lanciare XAMPP e aprire con un browser su http://localhost/phpmyadmin
  7. Dall’interfaccia di phpMyAdmin creare un nuovo database (es. wpdev)
  8. Sempre dall’interfaccia di phpMyAdmin selezionare il DB appena creato e importare lo script SQL (il file) generato da WordPress Database backup
  9. 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.
  10. Se dal varsione in produzione si e` copiato il file .htaccess potrebbe essere necessario modificarlo. Questa procedura non e` generalizzabile.
  11. 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
  12. 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:

  1. 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
    
  2. 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
  3. Copiare sitebackup.tar.gz e dbbackup.bak sulla macchina locale usando scp o ftp (o qualsiasi altro metodo usato di solito)
  4. 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
  5. 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
  6. 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>
  7. Abilitare il mod_rewrite per far funzionare i permalink
    ln -s /etc/apache2/mods-available/rewrite.load /etc/apache2/mods-enabled/rewrite.load
  8. 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
  9. 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 *
  10. 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 eseguendo

     mysql -uroot < fixsettings.sql
    
  11. 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]

12 risposte a “Creare una copia di backup del vostro blog wordpress”

paik ha scritto un commento il febbraio 25, 2009

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?

Il Nissardo ha scritto un commento il febbraio 25, 2009

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.

santino ha scritto un commento il febbraio 27, 2009

Fatto tutto quando indicato e soo riuscito a fare il backup di WP. grazie!

Il Nissardo ha scritto un commento il febbraio 27, 2009

Che bello! Mi piace sempre sapere che sono stato utile 😉 Grazie a te per avermelo scritto!

informatica ha scritto un commento il maggio 6, 2009

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

Il Nissardo ha scritto un commento il maggio 7, 2009

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.

Simone ha scritto un commento il ottobre 21, 2009

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.

michela ha scritto un commento il giugno 24, 2011

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?
 

michela ha scritto un commento il giugno 24, 2011

ok, ho messo i permalink da struttura personalizzata a standard e riesco a navigare ma non vedo più le immagini del sito…

Il Nissardo ha scritto un commento il giugno 25, 2011

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..

Il Nissardo ha scritto un commento il giugno 25, 2011

Verifica sulla tua pagina di admin, impostazioni/generali/indirizzo wordpress e indirizzo sito.

This blog is protected by dr Dave\'s Spam Karma 2: 147257 Spams eaten and counting...