Realizzazione siti web

Easyweb Consulting » Trasferire WordPress su un nuovo hosting

Trasferire WordPress senza problemi

Dopo aver letto varie guide su come trasferire WordPress da un dominio ad un altro mi sono deciso di scriverne una anche io. Spero con questo di dare un aiuto a tutti coloro che per la prima volta affrontano questo delicato aspetto. Trasferire WordPress è una operazione che può essere necessaria qualora vogliamo per esempio cambiare hosting o quando dobbiamo prendere in carico un sito già realizzato da qualcun altro per gestirlo nel nostro hosting “di fiducia”. Di seguito illustrerò i passi da eseguire per trasferire WordPress senza problemi.

  1. La prima cosa da fare per trasferire WordPress è effettuare un back dei file presenti sul server e del database collegato al sito. Per eseguire la copia dei file del sito si possono seguire vari metodi. Ne illustro due di seguito che normalmente utilizzo.
    1. Via FTP: con il vostro client FTP (io utilizzo Filezilla) effettuate la copia sul disco locale del vostro PC di tutta la directory principale sul server (normalmente il contenuto della cartella “www”). A questo punto dovete estrarre il database collegato al vs. sito. Per far questo dovete utilizzare Phpmyadmin. Una volta entrati nel pannello di amministrazione effettuare queste operazioni:
      1. Selezionate il database da estrarre.
      2. Cliccate su “esporta” e salvate il file in formato SQL.

  1. Via Plugin di WordPress: esistono molti ottimi plugin per realizzare la copia dei file e trasferire WordPress sul nostro PC locale nella realizzazione siti web. Io utilizzo un plugin collegato ad un servizio on line di mantenimento dei siti web che si chiama WP-Remote. La parte di back up di questo servizio è disponibile come plugin separato e si chiama “BackUpWordPress”. La caratteristica per cui ho scelto questo plugin e che esso effettua una estrazione automatica del database e lo inserisce nel file zippato che viene creato dal plugin. La prima operazione per trasferire WordPress consiste quindi nel fatto di copiare i file ed esportare il db.
  1. Dopo aver esportato e copiato tutti i dati dal vecchio host ,ci spostiamo sul nuovo host per ripristinare il sito e le sue funzionalità. Prima cosa dobbiamo creare un nuovo database (db). Procediamo con il wizard presente nel nostro nuovo hosting e impostiamo il db (nome database, nome utente e password).

  1. A questo punto apriamo Phpmyadmin e procediamo al ripristino del db nella realizzazione siti web. Sulla sinistra selezioniamo il db appena creato e si aprirà la seguente maschera dove dobbiamo selezionare il file SQL creato dal vecchio sito e cliccheremo su esegui. Dopo qualche secondo il alto apparirà una stringa di testo su sfondo verde che ci avviserà che le importazione delle tavole è stata eseguita con successo.

Seconda parte del trasferimento

  1. Procediamo ora all’aggiornamento degli url all’interno del db in modo che la nostra installazione di wp possa funzionare sul nuovo hosting. Dobbiamo eseguire due differenti Query in Phpmyadmin per aggiornare gli url. Nel campo delle Query inseriamo questa stringa di testo:
UPDATE wp_options SET option_value = 'http://www.ILTUONUOVOURL.it'WHERE option_name IN ('siteurl', 'home')

Dove dobbiamo sostituire ILTUONUOVOURL con il vs. nuovo url. Clicchiamo su esegui e apparirà una stringa d testo su sfondo verde che ci avviserà che sono state sostituite due righe con il nuovo testo.
Ripetiamo questa operazione una seconda volt,  ma con una stringa di testo diversa:

UPDATE wp_posts SET post_content = REPLACE(post_content, 'http://www.vecchiosito.it', 'http://www.nuovosito.it')

In questa stringa di testo inseriremo il vecchio url ed il nuovo in modo che eventuali link presenti nei post o nelle pagine vengano aggiornati con il nuovo url.

Una note per entrambe le stringhe. Rispettate completamente gli url con eventuali sottocartelle . Se WP è installato in una sotto cartella dovete inerire anche quella nell’url.

  1. Ora procediamo ad impostare il nome del db nella nostra installazione di WordPress. Apriamo i file di backup del sito, copiati nel nostro PC locale, ed dalla dir principale apriamo il file wp-config.php (consiglio l’utilizzo di notepad++). Qui inseriremo i dati del db creato sul nuovo hosting (step 2).

  1. Per trasferire WordPress definitivamente non rimane altro che copiare tutti i file di backup sul nostro nuovo hosting via FTP. Scompateremo quindi il file di backup del sito che abbiamo precedentemente creato con “BackUpWordPress” o altro plugin similare sul nostro PC locale. Con il nostro FTP client (Filezilla o altro) copieremo i file sul nuovo server remoto per trasferire WordPress in tutta la sua struttura originaria sul nuovo server remoto (possiamo tralasciare la copia del file .SQL presente nella cartella principale). Finita la copia andate sul vostro nuovo url ed il vostro sito sarà “pronto all’uso”.

Condividi questo contenuto

25 commenti

  1. Andrea in 27/05/2013 il 13:07

    ho seguito pedissequamente la guida , ma non sono riuscito.

    • Easyweb Consulting in 27/05/2013 il 14:48

      buongiorno a te! cosa non ha funzionato in particolare?

    • annalisa in 11/11/2013 il 14:01

      Grazie davvero utile !!

  2. Andrea C in 31/05/2013 il 11:54

    Utilissimo!

  3. Andrea in 13/08/2013 il 22:38

    Ciao,
    sto provando a spostare il mio wordpress da un dominio ad un altro sullo stesso hosting, è solo per via di una questione di “nome dominio”, ma mi sta complicando la vita da morire.

    Allora ho seguito varie guide, ma mi ritrovo sempre punto e a capo.
    Due domande: quando esporti e reimporti il data base, chiaramente hanno poi nomi diversi, io lavoro sul phpmyadmin messo a disposizione da tophost direttamente sul loro cpanel. Ora quando importo, seleziono il nuovo database e ci importo il vecchio, automaticamente mi appaiono le tabelle del vecchio nel nuovo, senza lasciarmi traccia del vecchio nome del database. Fini qui penso di fare correttamente, anche se da altre guide ho visto che alcuni esportano e importano solo le tabelle. Facendo come ho fatto io ho poi visto che wp_option mi rimaneva con gli url del vecchio sito, nonostante da config.php li abbia definiti forzatamente i nuovi URL, infine provando e riprovando col plugin search and replace di wordpress è finita che ho cancellato evidentemente troppe cose perchè Non ha funzionato quindi ho ripulito un altra volta il mio nuovo server e cancellato il database nuovo. Ho i file di backup del vecchio sito in locale ma ho il sito chiaramente ancora on line sul vecchio dominio.
    Ora ho trovato la tua guida, quindi seconda domanda: Mi dici dove andrebbero scritte quelle QUery? direttamente dal pannello di phpmyAdmin alla “paletta” sql? da li?? grazie

  4. Easyweb Consulting in 14/08/2013 il 12:13

    Innanzitutto per l’esportazione del database ti consiglio di utilizzare un plugin che si chiama backup WordPress. Una volta installato puoi esportare facilmente il database facendo anche il damping del database. il db lo dovrai importare da phpmyadminin un altro database che avrai creato con un nome a caso l’importazione prevede solo la copia delle tabelle. i comandi che trovi nel mio articolo li devi inserire nella tabella SQL di phpmyadminin sostituendo naturalmente gli url. Verifica che il comando sia scritto tutto in una riga infatti copiando dal mio articolo potresti trovarlo su due righe. Fammi sapere se è tutto ok ciao

  5. Sante in 26/08/2013 il 10:22

    se le versioni di wp sono diverse funzionerà ugualmente?

    • Sante in 26/08/2013 il 13:39

      forse bisogna cambiare anche hostname del vecchio database o no?

  6. Sante in 26/08/2013 il 16:08

    non riesco a importare il vecchio database errore 1046

  7. annalisa in 11/11/2013 il 17:56

    Ciao, scusa se ti chiedo , ma nelle pagine interne nel codice HTML i percorsi delle immagini rimangono quelle del vecchio sito !? devo andarli a cambiare x forza a mano? grazie mille 😉

    • Easyweb Consulting in 11/11/2013 il 19:32

      Nel mio articolo vengono citate due stringhe SQL che si possono utilizzare per modificare l’url del sito è il link interni.
      UPDATE wp_options SET option_value = ‘http://www.ILTUONUOVOURL.it’WHERE option_name IN (‘siteurl’, ‘home’)

      UPDATE wp_posts SET post_content=(REPLACE (post_content,'{vecchio url}’,'{nuovo url}’))

      Per qualche motivo la seconda stringa non è in grado di intercettare al livello di database i tuoi link credo che l’unica possibilità sia quelli di riscriverli. Un ottimo metodo per evitare questo problema è quello di non dare dei percorsi assoluti. Ovvero nei link di foto ed altro non partire con “http://www.miosito.it/img/miafoto.it” ma solo con”/img/miafoto.it”. In questo modo il percorso lavorerà su qualsiasi url tu spostassi il tuo sito.

      Buon lavoro

  8. M in 28/12/2013 il 22:38

    Ottimo lavoro! Grazie

  9. Gabriele Favrin in 13/01/2014 il 1:39

    Veramente un’ottima guida che mi e’ stata utiissima come “ripasso” pochi giorni fa.
    Suggerisco solo una piccola aggiunta…

    Alcune procedure di installazione automatica di WordPress adottate da vari hosting aggiungono un prefisso alle tabelle di WP, generalmente nell’ipotesi che il cliente effettui installazioni multiple nello stesso database. Tale prefisso si trova in wp-config.php in una riga che di default e’:
    $table_prefix = ‘wp_’;
    ma che puo’ diventare per esempio
    $table_prefix = ‘wp_kkkk_’;

    Prima di utilizzare i due comandi SQL indicati in questo tutorial bisogna quindi controllare in wp-config.php se il prefisso e’ diverso da ‘wp_’ e nel caso modificare di conseguenza i due comandi SQL aggiungendo il prefisso esatto a wp_options e wp_posts che nell’esempio diventerebbero wp_kkkk_options e wp_kkkk_posts

    • Easyweb Consulting in 13/01/2014 il 8:49

      Ottimo suggerimento Gabriele. Grazie per il contributo. Aggiungo solo che nel caso di utilizzo di script automatico presente su molti hosting più evoluti è possibile cambiare il prefisso delle tabelle di default. Una variante a questa procedura potrebbe essere un installazione di wp ex novo dove posso sostituire la sola cartella wpcontent. Naturalmente devo allineare la versione di wp del sito sorgente e del sito destinazione.
      Easyweb Consulting

  10. Elvis in 01/02/2014 il 16:40

    Ciao,
    complimenti per la guida molto utile e semplice,
    mi mi ritrovo con un grattacapo, sto aggiornando il mio sito da locale ad on-line quando sono al punto 4 del tuo tutorial inserendo il comando
    “PDATE wp_options SET option_value = ‘http://www.ILTUONUOVOURL.it’ WHERE option_name IN (‘siteurl’, ‘home’)” ed eseguendolo mi da che ha aggiornato una sola riga e non due come descritto.

    Proseguendo il sito si aggiorna correttamente nel nuovo hosting, ma quando accedo al CMS questo si collega al sito in locale e non quello on-line!…

    • Easyweb Consulting in 02/02/2014 il 11:44

      Buongiorno. Ho fatto delle prove sul tuo sito e mi sembra che non ci siano problemi. Almeno prima del login. non so di preciso percè ti capita quello che descrivi. prova a verificare bene gli indirizzi dove vai a puntare. A volte rimangono indirizzi assuluti che possono dare problemi. Meglio sempre usare quelli relativi. Fammi sapere.

      • Elvis in 02/02/2014 il 14:01

        Grazie per la celere risposta, alla fine ho risolto sostituendo le url del file .sql manualmente.
        Brutale ma funzionante come metodo.

        • Easyweb Consulting in 02/02/2014 il 14:30

          Perfetto!! Buon lavoro allora! 🙂

  11. leonardo in 22/02/2014 il 8:02

    ciao, non ottengo nessuna maidica ai link nei post con l’ istruzione:

    UPDATE wp_posts SET post_content=(REPLACE (post_content,'{vecchio}’,'{nuovo}’))

    dove ovviamente vecchio e nuovo sono gli indirizzi web dei siti…

    puoi aiutarmi? grazie

    • leonardo in 22/02/2014 il 8:16

      update wp_posts set post_content= replace(post_content,”{vecchio url}”,”{nuovo url}”)
      c’è una parentesi in meno… che sia questo il problema?

      • Easyweb Consulting in 22/02/2014 il 10:21

        Dopo il copyright/paste rimetti tutto su una riga eliminando lo spazio. La query normalmente restituisce un risultato di 0 righe modificate. Fammi sapere. Ciao

  12. simone in 14/03/2014 il 16:20

    ho fatto tutto ma mi dice
    Forbidden
    You don’t have permission to access / on this server.

    • Easyweb Consulting in 17/03/2014 il 19:32

      Buonasera Simone. l’errore riportato è generico e può dipendere da molte cose. Eseguito le query?

  13. Claudia in 26/03/2014 il 11:01

    Ciao…Io ho un problema un po’ diverso (forse) dagli altri.
    Il sito di cui mi occupavo si trovava su un hosting “in prestito” da dagli amici. Poi loro hanno chiuso i loro servers causa problemi vari. Purtroppo non sono stata avvertita in tempo e l’unica cosa che ho recuperato è stato il vecchio database.
    Quindi non mi ritrovo il backup dell’intero sito e non posso eseguire completamente la guida da te riportata.
    Volevo quindi chiederti se esiste un modo per ripristinare tutto il sito avendo a disposizione solo il vecchio database.
    grazie per l’attenzione

    • Easyweb Consulting in 27/03/2014 il 11:11

      Buongiorno Claudia .
      Purtroppo non esiste un modo per recuperare tutto il sito se non puoi accedere all’hosting che conteneva il sito via FTP. Il database contiene tutti i testi (pagine articoli eccetera) ma non contiene la struttura (layout) e tutte le foto. Diciamo che il grosso lo puoi comunque recuperare dall’database senza dover riscrivere tutto ma dovrai reimpostare tutta la grafica del sito foto comprese.

Lascia un commento