Nel corso degli anni di sviluppo web mi è capitato di dover migrare un’installazione WordPress da un sito web all’altro. Supponiamo di dover migrare un sito da http://old.domain.com a http://new.domain.com: in questo caso dovremmo sicuramente fare il backup di tutti i files dell’installazione WordPress che comprendono le cartelle wp-admin, wp-content e wp-includes.
La parte più sostanziosa è la cartella wp-content che contiene tutti i plugins installati, i temi e la cartella uploads che ha tutte le immagini e i media che abbiamo caricato da pannello WordPress.
Una volta fatto il download di tutti i files e cartelle dobbiamo fare il download del database dell’installazione. Questa operazione dipende dal tipo di pannello e hosting che avete, normalmente dovreste avere un Phpmyadmin installato per la gestione dei DB.
Entrate all’interno di Phpmyadmin e selezionate il vostro DB, selezionate esporta nella barra in alto e dentro la checkbox “Personalizzato – mostra tutte le possibili opzioni ” seleziona “salva l’output in un file”. Una volta selezionata l’opzione fai click su Esegui in basso a destra. A questo punto avremo in download un file .sql che è il backup dell’intero DB.
Arrivati a questo punto andremo sul nuovo hosting e tramite FTP caricheremo tutti i file che abbiamo preso e dal nuovo Phpmyadmin selezioniamo “Importa”. Clicchiamo su Sfoglia e selezioniamo il file .sql che abbiamo esportato prima. Selezioniamo “Esegui” e il DB verrà ripristinato.
Ora abbiamo un problema infatti se andiamo sul nuovo sito vedremo che non funziona: dobbiamo infatti aprire il file wp-config.php e cambiare i parametri per la connessione al nuovo DB.
Mettiamo apposto anche il file .htaccess nel quale controlliamo che sia corretto il path per il file index.php e per la root directory.
L’ultima cosa che rimane da fare è il cambio url all’interno del DB di WordPress: facendo una migrazione di questo tipo infatti il DB manterrà in memoria l’url il vecchio sito web. Per cambiare il vecchio sito nel nuovo url basta eseguire le seguenti queries:
-- Query 1: update the wp_options table
UPDATE wp_options SET option_value = REPLACE(option_value, 'http://original.domain.com', 'https://new.domain.com') WHERE option_name = 'home' OR option_name = 'siteurl';
-- Query 2: update the wp_posts table
UPDATE wp_posts SET post_content = REPLACE (post_content, 'http://old.domain.com', 'https://new.domain.com');
-- Query 3: update the wp_posts table
UPDATE wp_posts SET post_excerpt = REPLACE (post_excerpt, 'http://old.domain.com', 'https://new.domain.com');
-- Query 4: update the wp_postmeta table
UPDATE wp_postmeta SET meta_value = REPLACE (meta_value, 'http://old.domain.com','https://new.domain.com');
-- Query 5: update the wp_comments table
UPDATE wp_comments SET comment_content = REPLACE (comment_content, 'http://old.domain.com', 'https://new.domain.com');
-- Query 6: update the wp_comments table
UPDATE wp_comments SET comment_author_url = REPLACE (comment_author_url, 'http://old.domain.com','https://new.domain.com');
-- Query 7: update the wp_comments table
UPDATE wp_posts SET guid = REPLACE (guid, 'http://old.domain.com', 'https://new.domain.com') WHERE post_type = 'attachment';
Ora potrete caricare la home del vostro sito e iniziare a navigarlo: se avete fatto tutto seguendo la guida il vostro sito funzionerà come prima ma sul nuovo dominio.