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”.

Autore:

Publisher: Easyweb Consulting Srls

Social Facebook / Google+

Data creazione:

20/07/2013

Data pubblicazione:

21/07/2013

Data modifica:

21/07/2013

2018-02-13T23:55:51+00:00 Categories: Wordpress|Tags: , |25 Commenti

25 Comments

  1. Andrea 27/05/2013 at 13:07 - Reply

    ho seguito pedissequamente la guida , ma non sono riuscito.

    • Easyweb Consulting 27/05/2013 at 14:48 - Reply

      buongiorno a te! cosa non ha funzionato in particolare?

    • annalisa 11/11/2013 at 14:01 - Reply

      Grazie davvero utile !!

  2. Andrea C 31/05/2013 at 11:54 - Reply

    Utilissimo!

  3. Andrea 13/08/2013 at 22:38 - Reply

    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 14/08/2013 at 12:13 - Reply

    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 26/08/2013 at 10:22 - Reply

    se le versioni di wp sono diverse funzionerà ugualmente?

    • Sante 26/08/2013 at 13:39 - Reply

      forse bisogna cambiare anche hostname del vecchio database o no?

  6. Sante 26/08/2013 at 16:08 - Reply

    non riesco a importare il vecchio database errore 1046

  7. annalisa 11/11/2013 at 17:56 - Reply

    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 11/11/2013 at 19:32 - Reply

      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 28/12/2013 at 22:38 - Reply

    Ottimo lavoro! Grazie

  9. Gabriele Favrin 13/01/2014 at 01:39 - Reply

    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 13/01/2014 at 08:49 - Reply

      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 01/02/2014 at 16:40 - Reply

    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 02/02/2014 at 11:44 - Reply

      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 02/02/2014 at 14:01 - Reply

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

        • Easyweb Consulting 02/02/2014 at 14:30 - Reply

          Perfetto!! Buon lavoro allora! 🙂

  11. leonardo 22/02/2014 at 08:02 - Reply

    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 22/02/2014 at 08:16 - Reply

      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 22/02/2014 at 10:21 - Reply

        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 14/03/2014 at 16:20 - Reply

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

    • Easyweb Consulting 17/03/2014 at 19:32 - Reply

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

  13. Claudia 26/03/2014 at 11:01 - Reply

    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 27/03/2014 at 11:11 - Reply

      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.

Inserisci il tuo commento