Migrare WordPress: da installazione locale a dominio online o viceversa

È prassi comune tra gli sviluppatori WordPress quella di installare WordPress in locale (nel proprio computer) per lavorare in modo veloce e sicuro o semplicemente per provare nuove funzionalità, plugin o aggiornare il CMS prima di applicare le modifiche anche alla versione online.

In questo articolo vi mostro come trasferire WordPress da locale a online nel modo corretto. La guida è valida anche in caso di trasferimento di dominio, ovvero se necessitate di spostare un sito da un dominio ad un altro.

L’esempio pratico che vedremo è il passaggio da installazione locale a versione online.

Per creare una procedura passo passo partiremo dal presupposto che abbiate già una versione locale funzionante nel vostro computer (ad esempio utilizzando programmi come XAMPP o EasyPHP) visibile (tramite una configurazione del virtual host di apache e del vostro file hosts) all’indirizzo: https://www.miodominiolocale.local

Quanti avessero il proprio sito WordPress visibile all’indirizzo: https://localhost potranno seguire ugualmente la guida sostituendo l’indirizzo www.miodominiolocale.local con localhost.

Alla fine di questa procedura il nuovo sito WordPress sarà visibile all’indirizzo: https://www.verodominio.it

 

Spostare WordPress da locale a remoto

Passo 1

La prima cosa da fare, qualora lo riteneste necessario, è assicurarvi che eventuali visitatori del sito nel dominio reale (ricordiamo verodominio.it) non vedano errori o un sito parzialmente funzionante a causa dei “lavori in corso”. Quando dico “visitatori” intendo sia persone reali che bot dei motori di ricerca (Googlebot in primis).

Vi assicuro che il nostro amico Google può a volte sorprendevi. Mi è capitato in passato di mettere online dei siti “senza protezioni” su domini completamente nuovi e vederli indicizzati dopo poche ore senza che avessi fatto nessuna “segnalazione”. Ancora mi chiedo come abbia fatto… forse è in grado di rilevare le registrazioni dei domini dai dati dei vari Registar. #VaiAsapere

Non mi dilungo ulteriormente… inserite una index.html fittizia o un “under costruction” (se già non l’avete fatto) e assicuratevi di aver messo il noindex nelle pagine del sito (dal pannello di amministrazione si può fare velocemente da Impostazioni => Lettura spuntando la voce “Scoraggia i motori di ricerca ad effettuare l’indicizzazione di questo sito”).

Passo 2

Il secondo passaggio è quello di aprire il vostro programma FTP preferito (io uso Filezilla) e di caricare tutti i file del sito dalla vostra cartella locale a quella remota (in genere con nomi come: htdocs, public_html, ecc… ma questo già lo sapete :) ).

Prima di iniziare l’upload dei file dobbiamo modificare il famoso file di configurazione di WordPress wp-config.php in modo da inserire i corretti parametri per la connessione al database MySql remoto.

Personalmente, per non perdermi ogni volta le informazioni, mi salvo 2 ulteriori file nella cartella del sito: wp-config-locale.php e wp-config-online.php che contengono rispettivamente le configurazioni per fare funzionare WordPress in locale e in remoto. In questo modo il passaggio tra le due versioni mi risulta molto più semplice.

Passerete quindi da un wp-config.php che somiglia a questo:

define('DB_NAME', 'nome_db_locale'); // Nome del database
define('DB_USER', 'root');     // Il vostro username MySQL
define('DB_PASSWORD', ''); // ...e la password
define('DB_HOST', 'localhost');

a qualcosa del tipo:

define('DB_NAME', 'nome_db_online'); // Nome del database
define('DB_USER', 'utente_db');     // Il vostro username MySQL
define('DB_PASSWORD', 'password_db'); // ...e la password
define('DB_HOST', 'mysql.verodominio.it’);

con i dati che il vostro fornitore di hosting vi avrà comunicato.

 

Migrazione del Database MySql WordPress: da locale a remoto

L’ultimo importante passaggio è quello di “spostare” il vostro database locale in quello online. Qui avete due possibilità: una veloce e sbagliata, una veloce e corretta… chissà quale sceglierete :)

Migrazione Errata del database

In passato io stesso utilizzavo questa procedura e devo ammettere che nel 98% dei casi ha sempre funzionato alla grande. Poi, un giorno, capita un problema… ti scervelli per ore a capire perché WordPress non funziona a dovere e poi scopri il motivo. Ve lo racconto dopo.

La procedura veloce e sbagliata consiste nel prendere il dump SQL del vostro database locale, modificarlo e poi caricarlo online.

Per esportare il database locale uso phpMyAdmin: accedete al db e andate sulla scheda “Export” o “Esporta”; qui lasciate le impostazioni di default e date l’ok per procedere.

Otterrete un file con estensione .sql o uno zip con dentro un file con estensione .sql che rappresenta la copia del vostro database. Il file .sql è un semplice file di testo e potete aprirlo con qualsiasi editor testuale.

Io uso TextPad, ma ce ne sono tantissimi altrettanto validi (se ti stai chiedendo il motivo della scelta, lo uso perché posso usare le espressioni regolari per fare ricerche, perché apre file di testo di dimensioni apocalittiche senza battere ciglio e perché me lo porto dietro da anni e ci sono affezionato).

Quindi, apri il tuo file .sql con l’editor testuale che preferisci (anche il Blocco Note di Windows va bene), cerca la funzionalità “Trova e Sostituisci” ed “attivala”.

Nel campo “Trova” inserite l’URL dell’installazione locale, nel nostro caso di esempio: www.miodominiolocale.local

Nel campo “Sostituisci con” inserite l’URL del dominio online, nel nostro caso:

www.verodominio.it

Avviate la procedura.

Fate attenzione in questo passaggio alla presenza o meno del www nel vostro URL. Se la vostra installazione locale funzionava su miodominiolocale.local e volete continuare ad usare WordPress anche online senza www, la sostituzione va fatta in modo coerente (quindi con verodominio.it).

Bene, salvate il vostro file .sql modificato e caricatelo online usando gli strumenti che il vostro hosting vi mette a disposizione. Se avete phpMyAdmin utilizzerete questa volta la scheda Importa.

Procedura di migrazione finita. Qui potreste saltare alla fine della guida ma…

Migrazione Corretta del database

Dovete sapere che WordPress memorizza all’interno del database dati serializzati. Ora, non scendo troppo nel tecnico, ma faccio un esempio.

Supponete che WordPress debba salvare da qualche parte l’URL del logo che avete caricato nelle opzioni del vostro tema. Questo URL nella vostra installazione locale sarà qualcosa del tipo:

https://www.miodominiolocale.local/wp-content/uploads/logo.png

Quindi nel database locale da qualche parte avete scritto questo URL e quando effettuate la migrazione per portarlo online seguendo la procedura errata che ho descritto sopra diventerà:

https://www.verodominio.it/wp-content/uploads/logo.png

Notate niente a colpo d’occhio? Starete pensando: “be’, che c’è di strano? Mi sembra tutto ok!”

Non proprio.

Come dicevo, WordPress serializza alcuni dati che salva nel database. Ma cosa significa? Senza tanti tecnicismi, ecco cosa succede riprendendo l’esempio sopra citato (se avete voglia di indagare potete cominciare da qui).

Nel vostro database locale quel dato viene memorizzato come:

s:61:"https://www.miodominiolocale.local/wp-content/uploads/logo.png"

che significa:

  • s = Stringa
  • 61 = Seguono 61 caratteri
  • “…” = Valore dato

e facendo Find&Replace come spiegato nella procedura sbagliata, vi trovereste con

s:61:"https://www.verodominio.it/wp-content/uploads/logo.png"

Tuttavia, come avrete già intuito, questo genera un errore, diciamo un’inconsistenza nei dati che porta ad un malfunzionamento di WordPress.

Il dato corretto avrebbe dovuto essere:

s:53:"https://www.verodominio.it/wp-content/uploads/logo.png"

dove 53 è il numero corretto di caratteri che rappresenta il dato.

Mi perdonerete il gigantesco elogio che ho fatto a questa procedura, ma sentivo la necessità di spiegare il motivo del fallimento di molte migrazioni WordPress.

Fallimento che può presentarsi in modo grave, come sito non funzionante o leggero, cioè con qualche dato mancante (es. il logo scelto nelle impostazioni del vostro tema).

La soluzione?

Be’, ancora una volta, si potrebbe dire, la soluzione ce la dà un fantastico plugin che si chiama WP Migrate DB.

Lo installate, andate nella sua pagina per l’esportazione del database (la trovate nel menù Strumenti => Migrate DB) e troverete proprio un campo dove inserire i vostri dati per il “Trova e Sostituisci” che ho descritto prima.

Usando il nostro esempio avremo:

Migrate DB

Cliccate sul pulsante “Migrate” ed il plugin si occuperà di fare le sostituzioni ed i conti dovuti nel modo corretto. Alla fine vi farà salvare il vostro database pronto per essere importato nel vostro ambiente MySql del sito online.

 

Verifiche Post Migrazione

Bene, abbiamo tutti i file necessari all’interno dello spazio web nel nostro server, abbiamo il database corretto… non ci resta che verificare che tutto funzioni.

Se avevate un index.html, è il momento di toglierlo, andate su www.verodomino.it e navigate il sito controllando che sia tutto in ordine.

Poi accedete al pannello di amministrazione di WordPress e verificate anche qui che tutto funzioni in modo corretto.

Ho descritto una procedura di test, chiamata Test Base, quando parlavo della configurazione del plugin W3 Total Cache per velocizzare WordPress… dategli un’occhiata!

Quando tutto è pronto, togliete il noindex (il blocco ai motori di ricerca), e lasciate che i vostri visitatori possano accedere.

Come anticipavo all’inizio, questa procedura è valida anche se dovete fare il percorso contrario, ovvero volete portare in locale un sito online, ma anche se dovete spostare WordPress da un dominio all’altro. Non cambia niente.

Spero che l’articolo vi sia stato utile. Avete trovato difficoltà? Conoscevate già il plugin presentato? Se no, come vi comportavate in caso di migrazione di WP?

Aspetto i vostri commenti. Alla prossima!

Tag:

L'autore

Niki Rocco è Co-fondatore di Adviva, web agency specializzata nella realizzazione di siti web ed e-commerce con una particolare attenzione alla SEO e alla conversione/vendita. Ha una passione sfrenata per il web, la SEO e WordPress. Lo trovi su Google+

Sito web dell'autore | Altri articoli scritti da

Articoli correlati

Potresti essere interessato anche ai seguenti articoli:

10 commenti

Trackback e pingback

Non ci sono trackback e pingback disponibili per questo articolo