Trasferire o copiare un blog wordpress 3.5 in altro server

wordpress-logo-sObiettivo: trasferire e/o copiare  un blog wordpress  da un server in altro server.  Il trasferimento può far comodo anche per avere una copia in locale del blog.  Per poter effettuare l’operazione  è necessario l’accesso ai MySQL e alle cartelle delle web application nei  servers conivolti nel trasferimento. Se non si dispongono dei dati di accesso non resta che far ricorso al plugin per l’esportazione con i limiti del caso.  La versione di WordPress presa in considerazione è la 3.5.1. I servers utilizzati possono essere sia Linux che Windows. Per quanto riguarda i databases MySQL è sufficiente che la versione sia 5.0 o successive. Un’articolata discussione di tutte le situazioni che si possono presentare quando si deve spostare un blog wordpress si trova nel seguente post Moving WordPress « WordPress Codex.

Di seguito l’esemplificazione, talvolta anche passo passo, delle operazioni da compiere per copiare ad esempio il blog maurizio.siagri.net su server locale ubuntu 12.04 virtuale ip 192.168.7.162.

1) Accedere alla cartella contenente l’applicazione WordPress da trasferire e copiarla nel nuovo server. A seconda delle connessioni da remoto supportate dal server sorgente si possono utilizzare una molteplicità di modalità di accesso per il trasferimento:  ftp, webdav, sftp. smb, vpn …

Nel caso specifico copiamo la cartella di wordpress del server di origine da

/maurizio  (server origine )  
in ---->  
/var/www/maurizio  ( server target locale ubuntu )

2) Sistemare i  permessi delle cartelle per l’esecuzione dell’applicazione da parte del web server apache2 presente nella macchina ubuntu locale.

chown www-data:www-data -R /www/var/maurizio

3)  Effettuata la copia delle cartelle si deve copiare il database.

Per ottenere le informazioni relative al database  visualizzare il file wp-config.php  si potranno visualizzare il nome del database, DB_NAME,  il nome del proprietario del database, DB_USER,  la password usata dal DB_USER,  DB_PASSWORD .

 
 * @package WordPress
 */

// ** MySQL settings - You can get this info from your web host ** //
/** The name of the database for WordPress */
define('DB_NAME', 'dbwp_name');

/** MySQL database username */
define('DB_USER', 'user_dbwp');

/** MySQL database password */
define('DB_PASSWORD', 'pass_user_dbwp');

/** MySQL hostname */
define('DB_HOST', 'hostname');

4) Effettuare il dump del database MySQL, del blog da trasferire, utilizzando i dati di accesso del file wp-config.php  con un comando dle tipo .

$ mysqldump -u user_dbwp --password=pass_user_dbwp -h host_wp_remoto dbwp_name > dbwp_name.sql

5) Caricare il dump del database nel nuovo server MySQL della macchina ubuntu locale:

Accedere al nuovo server Mysql con:

$ mysql -u root -h host -p

creare il nuovo database e lo user_dbwp con:

mysql> CREATE DATABASE dbwp_name;
mysql> GRANT ALL PRIVILEGES ON dbwp_name.* TO 'user_dbwp'@'localhost'
mysql> IDENTIFIED BY 'pass_user_dbwp' ;
mysql> FLUSH PRIVILEGES ;

caricare il database con :

$ mysql -u user_dbwp --password=pass_user_dbwp  -h host dbwp_name < dbwp_name.sql

6) Adesso è possbile avviare però i risultati saranno “stravaganti “e non sarà possbile navigare. Infatti si rende necessario sostituire almeno i nomi di dominio ed eventualmente gli urls.

Sostituzione del nome di dominio
In questo caso è necessario procedere alla ricerca dei vecchi valori,  sostituendoli con i nuovi. Per fare questo la soluzione ottimale consiste nell’utilizzare lo script scaricabile al seguente indirzzo Search and Replace for WordPress Databases Script. Lo script consente una sostituzioni sicura dei dati preservando l’integrità della lunghezza delle stringhe serializzate. Il codice funziona per qualsiasi piattaforma che memorizza array PHP serializzati in un database MySQL: Drupal Joomla. ATTENZIONE Lo script rappesenta un punto di vulnerabilità. Pertanto é bene usarlo rinominato e rimuoverlo dopo il suo utilizzo.

Possiamo anche scaricare e rendere disponibile lo script Download Search Replace DB v 2.1.0 con:

$ wget http://www.interconnectit.com/wp-content/uploads/2011/05/searchreplacedb21.zip
$ unzip searchreplacedb21.zip
$ cp    searchreplacedb21.php  /var/www/maurizio/_sr21.php 
$ chown www-data:www-data maurizio

Avviare  lo scripts facendo puntare il browser allo scipt stesso 192.168.66.162/maurizio/_sr2.php e seguire le indicazioni a video. Procedere con attenzione e cautela. Nel caso si compiano errori si può ricaricare il dump originale del database e ripetere l’operazione.

wordpress db search e replace
wordpress db search e replace start page

Sostituzione nome dominio maurizio.siagri.net con l’indirizzo locale 192.168.7.162/maurizio

wordpress db sostituzione nome dominio
wordpress db sostituzione nome dominio

Esito del search e replace nel database

wordpress db search and replace results
wordpress dbsearch and replace results

Adesso è possibile avviare il blog in locale http://192.168.7.162/maurizio

wp_blog_copiato

Risorse:

Annunci