Home > Server, Webmaster > Trasferire o copiare un blog wordpress 3.5 in altro server

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:

  1. aprile 8, 2013 alle 8:09 am

    Ciao io avrei un problema, forse, più semplice…ho un blog in http://www.myblog.it e dovrei copiarlo in http://www.myblog.it/news, in modo da averne una copia e poi personalizzarlo per farne una versione speciale per le news aziendali. Per questo motivo gli articoli non mi servirebbero nemmeno.

    Io vorrei procedere così

    1) creo la cartella /httpdocs/news
    2) copio TUTTO quello che è in /httpdocs in news
    3) cambio il config.php con il nome del Db che voglio creare (in questo caso cambierei solo 4) wp_ in news_)
    5) Solo ora accedo al nuovo blog

    è corretto? sbaglio qualcosa

    • aprile 8, 2013 alle 11:54 am

      Ciao, scusa ma se non ti servono i dati perchè non fai una nuova installazione direttamente in /news senza effettuare una copia. E’decisamente più semplice. In fondo al post del links allegato ci sono i comandi per WordPress seconda e successive installazione: https://mauriziosiagri.wordpress.com/2012/12/18/installazione-veloce-di-wordpress-3-5-in-centos-5-8-da-zero/

      • aprile 8, 2013 alle 12:20 pm

        Grazie Maurizio….onestamente sono un pò niubbo in materia e quello che mi consigli non so nemmeno se va bene per il mio caso. Anche perchè comunque io ho bisogno di tutta la struttura del tema e dei widget.
        Tu che mi consigli? A questo punto mi converrebbe installare normalemnte WP in /eng? e poi copio la cartella del tema?

  2. aprile 8, 2013 alle 4:38 pm

    Quasi esatto Pietro.
    Installi normalmente WP nella sotto cartella che desideri: /eng /news ….
    Poi utilizzando l’interfaccia di amministrazione di WP installi gli stessi temi e gli stessi widget che hai nell’installazione principale.
    Dico una cosa ovvia ma non si sa mai; scegliere attentamente il nome della sottocartella perchè wp sarà in modalità permalink e la sotto cartella scelta (/news, /eng,) non potrà più essere usata come pagina autonoma nel blog padre perchè rimanderà inevitabilmente al blog figlio.

    • aprile 8, 2013 alle 7:25 pm

      ok grazie,
      ho seguito i tuoi consigli ed è tutto ok!
      almeno spero…:(

      • aprile 8, 2013 alle 10:44 pm

        Bene Pietro. Vai tranquillo si tratta di due installazioni autonome che non interferiscono
        e che potrai personalizzare anche in modo diverso a seconda delle esigenze. Ci sarà solo
        un po’ più di consumo di risorse.

  3. maggio 21, 2013 alle 3:26 pm

    Ciao Maurizio!
    ho un problema: ho creato un sito con wordpress e dovrei trasferirlo su aruba con hosting windows 2008. Non mi era mai capitato perchè non ho mai avuto a che fare con l’hosting di windows, ma ho visto che non sembra molto facile… mi sai dare qualche dritta?
    Grazie in anticipo.
    Alessandro

    • maggio 21, 2013 alle 11:58 pm

      Ho avuto modo di trasferire wordpress da macchina linux a macchina windows 2008 server e viceversa e non ho riscontrato particolari problemi.Certo come indicato nel post ci vuole un po’ di attenzione. Devo tuttavia precisare che in genere ho un accesso abbastanza completo sui servers e questo può aiutare. Purtroppo non conosco il servizio di Aruba. Quindi per dare indicazioni più precise dovrei sapere se ci sono ostacoli ad applicare la procedura indicata. La procedura indicata infatti va bene per tutta la parte database e per la parte relativa alla sostituzione del nome del dominio. Ovviamente quello che cambia é la parte relativa al webserver. Riassumendo e procedendo per gradi:
      1) ci sono ostacoli al trasferimento del database come indicato nel post ?
      2) come viene effettuata la copia della cartella sul server ?
      3) la directory base di wordpress del sito di test sarà diversa nel sito di produzione ?

  1. No trackbacks yet.

Rispondi

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...

%d blogger hanno fatto clic su Mi Piace per questo: