Pagine

1 giugno 2011

Cambiare l'url di un sito in wordpress

Alla maggior parte dei "wordpress blogger" questo articolo non interesserà, dato che spesso la loro installazione è già bella e pronta da usare e raggiungibile ad un dato indirizzo che aspetta solo di essere riempito di contenuti.
Ma come faccio se sono un'azienda e un mio cliente mi commissiona un blog particolarmente strutturato e articolato? Non posso ovviamente metterlo in un server di produzione on line e lavorarlo mentre tutti possono vederlo. Come per ogni progetto che richiede il vaglio del cliente, si dovrebbe creare una installazione in un server di sviluppo, lavorarci, e quando ci darà l'autorizzazione, migrare il prodotto in un server di produzione.

Facilissimo, vero?

... e invece NO!! Dietro a questo semplice passaggio si nasconde un cambio di url e se ho a che fare con wordpress non è assolutamente banale!

Wordpress da questo punto di vista mostra una sua grossa pecca: l'uso e l'archiviazione di indirizzi assoluti.
Mi spiego meglio, quando amministriamo un sito, lo configuriamo, usiamo dei plugins, scriviamo un post, lo commentiamo, insomma mentre usiamo le varie funzionalità di wordpress, questi archivia nelle sue tabelle del database gli url in maniera assoluta (comprensivi cioè del nome di dominio, es http://www.miosito.com).
Ciò significa che se non prestiamo attenzione quando lavoriamo il sito nella macchina di sviluppo raggiungibile ad esempio all'indirizzo http://www.miaMacchinaDiSviluppo.it/sitoClienteX, nel momento in cui lo passaremo sulla macchina di produzione, nel database saranno rimasti riferimenti al server di sviluppo.
Ovviamente questo comportamento è molto antipatico e non ci sono dei plugin che permettono di risolvere automaticamente il problema, o meglio, qualcosa c'è ma è sempre necessaria una discreta dose di "manualità" e di controlli.

Prevenire è meglio che curare.
La soluzione che reputo migliore per non dover cambiare gli url durante la pubblicazione è proprio quella di non cambiarli. Utilizzare cioè direttamente il nome del dominio definitivo e approvato dal cliente sia in ambiente di sviluppo che in produzione.
Come si fa?
Semplice si configura il virtual host del sito in wordpress nella macchina di sviluppo  affinché risponda al nome reale del dominio e poi si modifica il DNS aziendale o più facilmente il file hosts del nostro PC per fare in modo che quel dominio punti al nostro server di sviluppo e non al server di produzione.

Ecco i passaggi (suppongo che i server siano Linux, ma con IIS si può procedere in maniera analoga dal pannello di controllo):
  1.  Configurazione del virtual host col nome del dominio definitivo
    <VirtualHost *:80>
            ServerName <nomeDominioDefinitivo>
            DocumentRoot "/var/www/vhosts/<nomeDominioDefinitivo>/"
            DirectoryIndex index.php
            <Directory "/var/www/vhosts/<nomeDominioDefinitvo>/">
                    AllowOverride All
                    Allow from All
            </Directory>
    </VirtualHost>
  2. Configurazione del file hosts. In macchine Linux e Mac il file è /etc/hosts, in windows è C:\Windows\System32\Drivers\Etc\hosts. Si deve aggiungere una riga di questo tipo:
    <IP Server Sviluppo>    <nomeDominioDefinitivo>
Curare è sempre un problema.
Se ci troviamo nella sfortunata condizione di dover cambiare l'url di un sito con molti contenuti basato su wordpress, allora abbiamo un bel problema. Il lavoro è lungo e laborioso e richiede una buona dose pazienza. Vi rimando alla guida ufficiale che già dai numerosi passaggi proposti fa capire ciò che ci aspetta: https://codex.wordpress.org/Changing_The_Site_URL

Nessun commento:

Posta un commento