WordPress in locale, ma con il dominio finale.

Spesso capita, per chi fa il mio mestiere, di imbattersi in problemi pratici e non saperne uscire senza un paio di imprecazioni e pugni sulla tastiera.

Nel caso specifico parlo di una installazione di WordPress.
Dobbiamo creare un sito e non vogliamo farlo andare subito in linea, facile se la programmazione è ad-hoc in xhtml (sostituisco la index con una pagina “under construction”), ma se è un wordpress? Non posso mica sostiturire la index.php! Se lo facessi, tutto il sito si bloccherebbe perchè quella è la pagina principale, tutto ruota intorno ad essa.
Ci sono almeno 3 possibili soluzioni, analizziamole:

1. Maintenence Mode – plugin

plugin per “sospendere” la visualizzazione di un wordpress

Installando un plugin per WordPress, direttamente nella installazione online, possiamo “inibire” la visualizzazione del sito/blog a tutti i visitatori, mentre possiamo gestire chi, tra gli utenti di WP possono vedere il sito nella sua versione completa (ovviamente previa autenticazione).
Il plugin è di semplice configurazione e lo trovi qui: Maintenence Mode di Frank Bültge.

Questa soluzione è ottima per le ristrutturazioni di un sito, oppure per le cooperazioni di creazione di un sito/blog.

2. Pulire prima di pubblicare – mySql

Questo è sicuramente il percorso più impegnativo ed articolato. Serve principalmente quando dobbiamo spostare una installazione WordPress da un dominio ad un altro, magari che va a morire, senza dover rimappare le singoli post.
Come si sa, ogni “elemento” che viene configurato in WordPress, viene scritto nel database con il suo nome completo di url del sito. Nel caso della immagine sopra, il percorso completo è «https://www.aculine.net/wp-content/uploads/screenshot-13.png», quindi, se dovessi spostare il sito su un altro dominio  e «https://www.aculine.net» non dovesse esistere più, il collegamento con l’immagine cesserebbe, restituendo errore.
Stessa cosa succede se, come preferisco lavorare io, creo e modifico il sito in locale (http://localhost) e poi devo trasferirlo nella sua locazione finale http://dominio.ext. Anche in questo caso le immagini (e altro, ma concentriamoci sulle immagini) avrebbero un indirizzo del tipo «http://localhost/wp-content/uploads/screenshot-13.png» e quindi il browser cercherebbe sul computer locale dell’utente, con evidente errore.

Cosa posso fare? Semplice, modifico a manina.

1) verifico la versione di Worpress installata in locale (o sul vecchio dominio) e scarico la stessa versione sul mio desktop.

2) faccio un bel backup completo della cartella /wp-content (anche se è meglio farlo di tutto il worpress), faccio il backup del database (io preferisco farlo tramite myPhpAdmin, ma va bene anche la procedura di WP)

3) traferisco WordPress sul nuovo dominio e importo il database. A questo punto tutte le immagini sono ancora visibili, poichè il vecchio dominio (o il mio localhost) è ancora attivo, quindi non mi accorgo dei guai.

4) nel nuovo sito, via FTP, apro il file config.php ed inserisco, in cascata, queste due costanti:

define('WP_SITEURL', 'http://nuovodominio.ext');
define('WP_HOME', 'http://nuovodominio.ext');

5) apro l’amministrazione di wordpress, all’inidirizzo http://nuovodominio.ext/wp-admin, effettuo il login e vado in Impostazioni > Generale. controllo che in “Indirizzo WordPress (URL)” e “Sito Web (URL)” ci sia il http://nuovodominio.ext. e SALVO (anche se non ho modificato nulla)

schermata nelle impostazioni di WP

6) riapro config.php e cancello le stringe inserite.

7) riapro in WP impostazioni > Generali e SALVO ancora, anche se non ho modificato nulla. Questo serve a WP per rimappare tutti i collegamenti

8) a questo punto tutto dovrebbe essere a posto, se trovi qualche errore di immagine o altro, è opportuno analizzare il database con phpMyAdmin o con il plugin search and replace di WordPress

3. modifica del file Host

Tra tutti i metodi, questo è quello che preferisco (dove possibile, ovviamente).
Allora, ripeto, io devo creare un sito ex-novo e devo usare wordpress. Se uso il localhost, quando vado a pubblicare, devo modificare il mio database per poter visualizzare le immagini (che sono appunto registrate come http://localhost… nel database).

OK: bypasso il localhost, o meglio, inganno il mio webserver.

1) Apro il terminale (io ho un mac, quindi uso questa procedura. Se hai un windows… già è stato difficile installare WordPress in locale, quindi per me sei un guru…)

2) vado alla cartella /private/etc

cd /private/etc

3) edito il file hosts
sudo pico hosts

4) inserisco di seguito la “conversione” tra localhost (127.0.0.1) e il futuro dominio.

la modifica del file hosts

5) salvo sovrascrivendo e chiudo il terminale.

A questo punto, il mio bel blog è pronto per essere modificato in locale e solo io posso vederlo. Ovviamente questa procedura va fatta con cognizione di causa, perchè non potrò mai (salvo la ri-modifica del file hosts) vedere il sito online, ma vedrò sempre quello ospitato in locale.


Pubblicato

in

da