Guida per Trasferire Velocemente WordPress su un Nuovo Server
In questo post ti indico una tecnica per operare velocemente un cambio di hosting evitando di utilizzare phpMyAdmin per il backup del DB e di scaricare l’intera cartella di installazione sul PC, operazione che può essere decisamente laboriosa in caso di un numero elevato di files.
L’ho utilizzata molto spesso negli ultimi mesi a causa di trasferimenti dei miei progetti su altri server ed esperimenti vari.
Doverosa avvertenza: qui si parla di trasferire un sito WordPress da un server all’altro mantenendo però lo stesso nome di dominio. Se stai cercando informazioni su come operare un cambio di dominio allora ti invito a consultare la doumentazione ufficiale.
Informazioni preliminari
Percorso ed installazione
Non preoccuparti se le webroot su server di origine e di destinazione sono differenti: a WordPress in genere non importa.
Accesso al DB
Lo so, usi phpMyAdmin e sai che può importare ed esportare le tabelle di WordPress che contengono articoli, utenti, commenti ecc.
Tuttavia ti sconsiglio caldamente di utilizzare le funzionalità di import/export di phpMyAdmin in quanto esiste un limite preciso per la dimensione del file da importare (molto limitato nel caso di hosting condivisi).
Inoltre differenti versioni di phpMyAdmin potrebbero creare problemi di compatibilità nel file di interscambio.
Plugin di backup
I plugin per il backup di WP sono utili ma solo quando devi ripristinare il contenuto del blog. Quando devi trasferire WordPress su un altro server non te li consiglio perchè devi spostare tutta la piattaforma, e non solo il contenuto. Incluse eventuali modifiche e personalizzazioni sui templates e sui files che andrebbero persi.
Cosa ti serve
Prima di continuare devi accertarti di possedere;
- Una username ed una password per l’accesso SSH al tuo spazio web (sia di origine che di destinazione).
- Un software per connessioni SSH se operi su Windows (PuttY è il più utilizzato, su mac e linux puoi utilizzare il terminal dei comandi)
- Dati di accesso FTP di entrambi gli spazi web
- Nome host, username e password dei db di origine e di destinazione (quelli che inserisci nel file wp-config.php).
Alcune precauzioni
- Sul nuovo spazio crea un DB con lo stesso nome, la stessa username e la stessa password di accesso di quello di origine.
Come fare
E’ semplice. Dovrai;
- creare una copia del db ed una dello spazio web
- trasferirli sul nuovo server
- ripristinarli sul nuovo server
- testare il blog per verificare che sia tutto ok
- cambiare i DNS
1. Creazione copia DB e WordPress
Collegati in ssh al sito che vuoi trasferire. Questo video mostra come si fa;
Con Mac o Linux sarà sufficiente digitare nel terminal dei comandi
ssh nomeutente@tuosito.it
Una volta dentro entra nella cartella che contiene di documenti del sito (webroot) digitando;
cd /path/to/webroot
Ora due archivi, uno per il DB e l’altro per i files.
Per i files di WP sarà digitare ed inviare il seguente comando;
tar -gzvf files.tar.gz .
Per il DB il comando sarà il seguente, sostituendo ovviamente alle stringhe in corsivo i dati del tuo DB;
mysqldump -h host.db.origine -u username -p password nome_db_origine > db.tar
Ora avrai due files;
- files.tar.gz: contiene l’installazione WP
- db.tar: contiene la fotocopia del DB
2. Trasferimenti dei files sul nuovo server
A questo punto dovrai usare il tuo client FTP preferito per prelevare questi due files dal vecchio server e trasferirli nella webroot di quello nuovo (mi raccomando, mettili entrambi nella cartella dei documenti web).
In realtà ci sarebbe il modo di saltare questo passaggio intermedio aprendo in SSH una sessione FTP tra i due server e facendo il trasferimento diretto, ma ho paura di complicare le cose per i neofiti che avranno senza dubbio già la testa che gira abbastanza.
3. Ripristino files sul nuovo server
Ok, ora dobbiamno ripristinare tutto sul nuovo server, che al momento contiene solo gli archivi compressi.
Apri una sessione SSH sul nuovo server (utilizza il video in cima come esempio utilizzando questa volta i dati di connessione del server di destinazione), ed entra nella webroot che contiene i due files;
cd /path/to/webroot
Ora ripristina il DB con il comando seguente;
mysql -h host.db.destinazione -u username -p password nome_db_destinazione > db.tar
Se tutto va bene ora il db deve essere già popolato. Adesso esplodiamo l’archivio del files con il comando;
tar -zxvf files.tar.gz
ed anche il files saranno al loro posto.
Una ultima precauzione: se i dati dei due db (origine e destinazione) coincidono non c’è bisogno di far nulla, altrimenti andrà modificato il file wp-config con i nuovi dati di autenticazione altrimenti WP non potrà accedere al db.
4. Testare il sito prima del trasferimento
A questo punto è saggio verificare che tutto funzioni prima di cambiare il puntamento dei DNS. Per fare questo faremo in modo di far puntare l’indirizzo al nuovo IP solo al nostro PC modificando il file hosts presente nel computer.
In questo modo noi vedremo a tutti gli effetti il nuovo blog, mentre tutti gli altri continueranno a vedere il vecchio.
Utile no? Per far questo dovremo aggiungere una stringa contenente il nuovo IP ed il nuovo dominio;
x.x.x.x www.nuovoblog.it
al file;
- <CARTELLA DI SISTEMA>/system32/drivers/etc/hosts (se sei su Windows)
- /etc/hosts (se sei su Mac o Linux)
Una volta salvato il file, sul tuo computer l’indirizzo del tuo blog punterà al nuovo spazio.
Funziona tutto? Bene, a questo punto puoi modificare tranquillamente i DNS.
Photo credit: John Fischer
grazie, mi avete risolto un problema!