Obiettivo: trasferire e/o copiare un blog wordpress da un server Windows 2008 ad altro server Windows 2008. 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 potrebbero 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 un blog wordpress con base dati su server Linux Centos e web server IIS 7.5 su Windows 2008
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, smb, vpn …
2) Sistemare i permessi delle cartelle per l’esecuzione dell’applicazione da parte del web server IIS 7.5 locale. Lo user IIS_IUSR deve avere gli appropriati permessi anche Users deve essere attenzionato.

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.

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

Esito del search e replace nel database

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

Risorse:
- Moving WordPress « WordPress Codex
- WordPress Serialized PHP Search Replace Tool | Interconnect IT – WordPress Consultants, Web Development and Web Design
- WordPress › Blog Tool, Publishing Platform, and CMS
- Installare manualmente WordPress 4.6.9 in debian 9.xx da zero – una o più installazioni
- Trasferimento o copia di blog wordpress 4.3.x tra server windows 2008
- Trasferire o copiare un blog wordpress 3.5 in altro server
- Installazione veloce di WordPress 3.5 in Centos 5.8 da zero
- WordPress password dimenticata
- Installazione veloce di WordPress 3.4.2 in debian squeeze da zero
- Installare WordPress 3.4.1 in ubuntu 12.04 da zero