Personalmente mi capita sempre più spesso di dover creare una copia locale del mio blog per poter procedere a test su nuovi plugin, aggiornamenti del core di WordPress etc. La procedura è molto semplice e consiste in pochi passi. Eccoli sintetizzati a mia futura memoria e anche per chi abbia necessità di tenere sotto mano un documento veloce.

  1. Creare un backup completo attraverso un client FTP (consiglio Filezilla) di tutti i file del proprio blog
  2. Creare un dump SQL del database dove è installato il proprio blog WordPress. Per fare questo è necessario esportare il database ricorrendo a phpMyAdmin o, ancora più semplicemente, installare il plugin WP-DB Backup ed effettuare un backup di tutte le tabelle di WordPress dall’interfaccia dell’addon.
  3. Se si è su Windows, la cosa più comoda è installare WampServer, mentre se si è su Linux si possono installare Apache2+PHP+MySQL+phpMyAdmin oppure ancora più facilmente ricorrere a XAMPP. Predisposto il proprio ambiente si può procedere a copiare i file scaricati da FTP nella directory “htdocs” o “/var/www” di Apache.
  4. A questo punto dalla versione “locale” di phpMyAdmin è necessario creare un nuovo utente e un database con lo stesso nome concedendo all’utente tutti i privilegi su di esso: cliccare su “Privilegi” quindi su “Crea nuovo utente”, riempire tutti i campi come vogliamo e spuntare “Crea un database con lo stesso nome e concedi tutti i privilegi”.
  5. Fatto questo va importato il dump SQL del database del blog remoto nel nuovo database creato. Per far questo si può usare phpMyAdmin selezionando il database in cui importare e cliccando su “Importa”. In alternativa, consiglio solo su Windows l’utilizzo di un ottimo freeware chiamato SQLyog davvero efficace quando si deve importare un dump SQL pesante e si vogliono risolvere alla svelta eventuali problemi di timeout PHP.
  6. Terminata l’importazione, utilizzando phpMyAdmin è necessario modificare il valore della siteurl. Basta andare sulla tabella wp_options, cliccare su “Mostra” e individuare siteurl. Cliccando sul simbolo della matita si può modificare il valore, impostando quello locale (es. http://localhost/blog)
  7. A questo punto possiamo collegarci all’indirizzo amministrativo del blog “http://localhost/blog/wp-admin”, effettuare il login, andare su Impostazioni\Generale e modificare la voce Indirizzo del blog (URL) impostando anche in questo caso “http://localhost/blog”.
  8. L’ultimo passo consiste nel rigenerare la struttura dei permalink andando in Impostazioni\Permalink e cliccare sul bottone “Salva le modifiche”.

Possibili problemi:

4 geek

Quando si tenta di collegarsi a “http://localhost/blog/wp-admin” per completare la procedura di trasferimento si ricevono una serie di messaggi di errore simili a questo: “Deprecated: Assigning the return value of new by reference is deprecated”. I messaggi, dovuti a una versione più aggiornata di PHP utilizzata in locale rispetto a quella remota, non consentono il login ma per fortuna la cosa è facilmente risolvibile andando a modificare wp-config.php inserendo la riga “error_reporting(0);” proprio all’inizio del file dopo <?php.

Post correlati:

  1. WordPress 2.6 provato in locale
  2. iDrive, backup remoto di un blog WordPress
  3. Inviare i log di WordPress a un server syslog remoto
  4. Da WordPress 2.1 a 2.1.1
  5. Yoast WordPress SEO, il più completo plugin SEO per WordPress

 

6 Responses to Trasferire WordPress da remoto a locale

  1. Laura scrive:

    Grazie Matteo! Era proprio quello di cui avevo bisogno! Sto tentando tutti i passaggi.. speriamo bene. Ad ogni modo sei stato chiarissimo!!! :-)

  2. stefano scrive:

    Ciao, ma scusate la copia di bakcup di WP (non del Db) dove devo copiarla? Grazie

  3. Fabrizio scrive:

    Io ho seguito -circa- questa procedura per spostare un wordpress 2.9.1 sulla mia piattaforma EasyPHP 5.3.8 su win vista ma i risultati non sono stati quelli sperati…
    Ho inserito circa perchè ho importato il dump del database su un db assegnato ad un utente differente rispetto a quello dell'hosting, ma una modifica al wp-config.php con i dati di accesso corretti dovrebbe aver risolto la questione.

    Il problema è che dopo aver modificato wp_options – siteurl con 127.0.0.1/cartella_locale e tentando l'accesso al sito, vengono caricate solo le voci testuali, non il template (con relativo errore 404), e richiedendo la pagina wp-admin parte una stringa di redirect che genera un bel "Oggetto non trovato – Errore 404"

    Ho provato ad editare in wp_options anche il campo "home" – NIENTE

    Ho provato ad ridefinire in wp-config le variabili con:
    define('WP_SITEURL', 'http://example.com/wordpress&#039 ;) ;
    define('WP_HOME', 'http://example.com/wordpress&#039 ;) ; – NIENTE (ovvio ma provare non costa niente)

    Ovviamente tutti i files del wordpress di partenza sono stati scaricati e collocati sotto la cartella linkata, tant'è che se richiamo 127.0.0.1/nome_cartella/wp-admin/css/ compare la lista dei files… quindi li sono e li vengono visti regolarmente dal server Apache…
    Come se non bastasse nella stessa installazione di EasyPHP ho già in locale 2 Joomla 1.5 che importo ed esporto regolarmente senza problemi… sto impazzendo!!

  4. Fabrizio scrive:

    Si, ma lavorando in questo modo CREDO (da prova personale) che vengano aggiornati solo i permalink relativi agli articoli, non i link relativi alle immagini, e ad eventuali link incrociati presenti negli articoli (nel testo). Di conseguenza è una procedura che va bene solo nel caso in cui si abbia un blog di soli articoli di testo pieno (praticamente MAI).

    Molto meglio lavorare andando a modificare il database prima dell'import, come descritto su wordpress italy http://www.wordpress-it.it/wiki/Main/CambiareServ
    O importare e modificare successivamente con le query sul database http://yeahnowow.com/2010/wordpress-spostare-word

    Queste procedure permettono di modificare i link nella loro totalità… almeno finora non mi sono accorto di problemi.

    Altro dettaglio (ci ho perso 5 ore)… nella mia configurazione (Vista + EasyPHP) il campo wp_options siteurl (e con lui tutti gli altre link) deve diventare rigorosamente http://127.0.0.1/cartella_locale
    e nessuno dei successivi invece funziona:
    http://localhost/cartella_locale
    localhost/cartella_locale
    127.0.0.1/cartella_locale

    Per qualcuno forse sarà banale, per me non lo era assolutamente, ho praticamente perso una giornata per capire cosa non andava. Bisogna fare attenzione a quello che si pubblica, altrimenti la gente un pò inesperta impazzisce, quantomeno indicare il sistema dove tali operazioni sono state testate.

    • L’ho fatta decine di volte questa procedura ed ha sempre funzionato senza alcun problema, quando pubblico c’è sempre dietro un lavoro di prove fatte.

      • Fabrizio scrive:

        Immagino certamente che la procedura fosse ben testata, magari su linux o mac e purtroppo le cose un pochino a volte cambiano; comunque volevo solamente semplificare la vita ad altri utenti futuri.

        La rogna del localhost su windows in fondo è ben documentata direttamente su wikipedia (non ci potevo credere) http://it.wikipedia.org/wiki/Localhost
        Credo che tutti prima o poi ci debbano passare, diciamo che non è facile pensarci se uno proviene da altri sistemi (e da xp) e non lo sa.

Lascia un Commento

L'indirizzo email non verrà pubblicato. I campi obbligatori sono contrassegnati *

*

È possibile utilizzare questi tag ed attributi XHTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Set your Twitter account name in your settings to use the TwitterBar Section.