Trasferimento di siti WordPress tra host differenti
Inauguriamo una nuova area tematica relativa al celebre CMS WordPress con un primo articolo relativo al trasferimento di un sito realizzato in WordPress da un hosting ad un altro. Potremmo aver bisogno di fare questo tipo di “Trasloco”, se ad esempio:
- Stiamo lavorando sul nostro web server locale (LAMP, WAMP, MAMP che sia…) ed a fine lavoro dobbiamo pubblicare il sito su un host pubblico
- Dobbiamo spostarci da un servizio di hosting ad un altro, o tra due host
Simuliamo una situazione concreta…
Per rendere meno astratta questa guida, simuleremo il caso in cui si stia realizzando un sito per un cliente in una sottocartella del proprio spazio web con il supporto di un database personale, ad esempio: “https://www.miosito.it/sitocliente” appoggiato su un database MioSito.sql (www.miosito.it potrebbe anche essere “localhost” nel caso di un web server locale).
A lavoro terminato, dovremo trasferire tale lavoro su un web server di proprietà del cliente, ad esempio “https://www.sitocliente.it“, appoggiandoci su un database SitoCliente.sql.
Per effettuare il trasferimento del sito non serve nulla in particolare, se non:
- Un client FTP (FileZilla, CuteFTP, ecc…)
- Un buon Text Editor (Notepad++, TextMate, ecc…)
In questa specifica guida verranno usati rispettivamente FileZilla e Notepad++ , e le operazioni da fare saranno le seguenti:
- Esportare il database MySQL di origine con PhpMyAdmin
- Modificare il database MySQL di origine con gli URL di destinazione
- Caricare il database MySQL modificato sull’host di destinazione
- Salvare il sito WordPress dall’FTP di origine
- Modificare il file wp-config.php
- Modificare eventuali URL presenti nei file WordPress di origine con gli URL di destinazione (se necessario)
- Caricare il sito WordPress nell’FTP di destinazione
- Modificare il file .htaccess (se necessario)
- Ripristinare il contenuto delle Widget (se necessario)
- Varie ed eventuali
[1] – Esportare il database MySQL di origine con PhpMyAdmin
A meno che non siate espertissimi in MySQL, il modo più semplice per esportare il database è sicuramente quello di avvalersi dell’aiuto di PhpMyAdmin. Che sia su un web server locale o sia fornito dal provider, poco cambia, l’operazione da effettuare è la medesima: si seleziona il database, e si esporta in formato SQL. Nelle immagini che seguono, si sta esportando un database da un provider che fornisce PhpMyAdmin. In questo caso, avendo un numero definito di database predefiniti, dovremmo selezionare tutte le tabelle del database che ci interessa, cliccare su esporta, e nella schermata successiva scaricare il file in formato sql.
[2] – Modificare il database MySQL di origine con i nuovi URL
Abbiamo detto che dobbiamo spostarci da “www.miosito/sitocliente” a “www.sitocliente.it“, quindi dobbiamo andare a cercare nel file .sql che abbiamo scaricato (in questo caso MioSito.sql) tutte le tabelle che contengono nel proprio campo l’URL del tipo “www.miosito.it/sitocliente” e sostituirli con l’URL di destinazione del nuovo sito “www.sitocliente.it“. Per fare questa operazione ci torna utile il programma Notepad++:
- Aprire il file con Notepad++ , o altro editor…
- Aprire la maschera di ricerca (CTRL+F)
- Andare nel “Trova e Sostituisci” per poter sostituire tutte le radici degli URL di WordPress di origine con quelli di destinazione
- Salvare il database con un altro nome, in questo caso SitoCliente.sql, tenendo sempre una copia dell’originale come backup!
[3] – Caricare il database MySQL modificato sull’host di destinazione
Questa operazione è molto semplice, andiamo nel PhpMyAdmin del nuovo host, scegliamo il database in cui importare le nostre tabelle (o se è possibile ne creiamo uno noi), ed attraverso il caricamento del file SitoCliente.sql avremo ottenuto il nostro scopo! Ora il nostro database modificato è già pronto.
[4] – Salvare il sito WordPress dall’FTP di origine
Anche questo passo è molto semplice, se abbiamo una copia del sito in locale siamo già a posto, altrimenti attraverso il client FileZilla (o altro…) ce ne facciamo una copia in locale. E’ consigliabile tenerne sempre da parte una copia come backup, e lavorare alle modifiche su una seconda copia in modo da poter rimediare ad eventuali errori.
[5] – Modificare il file wp-config.php
Prima di caricare i file nell’FTP di destinazione, che abbiamo chiamato “www.sitocliente.it“, è opportuno fare tutte le modifiche del caso “off line”. La prima da fare è quella di modificare il file wp-config.php che contiene i parametri di connessione al database. In questo file dovremo sostituire i dati di connessione al vecchio database “MioSito.sql” con quelli di connessione a “SitoCliente.sql” che sono su un host diverso. Per l’editazione ci torna ancora utile Notepadd++ ovviamente.
[6] – Modificare eventuali URL presenti nei file WordPress di origine con quelli di destinazione
Se abbiamo effettuato modifiche nei file php di WordPress inserendo all’interno del codice degli URL assoluti, ad esempio per la modifica di immagini, sarà bene andare anche qui a sostituire tutti gli URL di origine con quelli di destinazione. Se vi ricordate in quali file avete fatto le modifiche li potete andare ad editare direttamente, altrimenti, se non lo ricordate, vi potete aiutare con la comoda funzione “Cerca nei File” di Notepad++. Questa funzione vi permetterà di trovare e sostituire le stringhe in tutti i file di WordPress che avete scaricato dall’FTP di origine.
[7] – Caricare il sito WordPress nell’FTP di destinazione
A questo punto siete pronti per poter caricare anche i file di WordPress nel nuovo FTP… Una volta terminato l’upload, se non sono stati commessi errori e se non ci si è dimenticati di correggere qualcosa, dovreste vedere il vostro sito correttamente installato nel nuovo host.
[8] – Modificare il file .htaccess (se necessario)
A volte può capitare che si verifichino degli errori particolari come l’impossibilità di accedere alle pagine del sito ottenendo un errore di accesso da parte del web server… In ogni modo, è sempre bene controllare il file .htaccess! Se la vostra destinazione è “www.sitocliente.it” e non avete installato WordPress in sottocartelle, il tipico .htaccess dovrebbe essere molto simile a questo:
# BEGIN WordPress
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ – [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
# END WordPress
In caso di anomalie potreste trovare che il “RewriteBase” e/o il “RewriteRule” siano ancora impostati sul vecchio indirizzo.
[9] – Ripristinare il contenuto delle Widget (se necessario)
Un’altra cosa spiacevole che può accadere durante il trasferimento, è quella di perdere tutte le impostazioni delle widget. Per risolvere velocemente questo problema, potete usare un comodissimo plugin che vi permette di fare l’importazione e l’esportazione della configurazione delle widget che si chiama Widget Importer & Exporter. Partendo dal sito di origine, una volta installato il plugin, troverete la voce di menù sotto la voce “Strumenti” della Dashboard di WordPress, ed attraverso la semplicissima interfaccia potrete esportare in un file la configurazione delle widget. Successivamente, dopo aver installato lo stesso plugin nel sito di destinazione, farete l’operazione inversa di importazione.
[10] – Varie ed eventuali
In questa ultimissima parte andrò a riportare eventuali problemi che potrebbero verificarsi ma a cui non ho menzionato esplicitamente in questo articolo, inoltre, non esitate a commentare per riportare eventuali problemi/errori/soluzioni che dovreste incontrare facendo questo tipo di operazioni. Sarà mia premura aggiungere eventuali ulteriori indicazioni in questo ultimo paragrafo.
Sicuramente, una delle cose che capita più spesso, è che qualche plugin possa dare dei problemi, e per capire se il problema venga proprio da lì, dovrete andare a leggere con molta attenzione qual’è il file incriminato ed a quale plugin appartiene. A volte capita che al termine delle operazioni il sito non sia visibile e ci sia solo una stringa di errore, a questo punto se è colpa di un plugin, potete andarlo a cancellare manualmente via FTP al percorso “./wp-content/plugins/” per poi reinstallarlo dalla Dashboard.
Grazie, molto utile!