Joomla!® 2.5 da remoto a locale
La maggior parte dei tutorial reperibili in rete tratta di come trasferire un sito da locale a remoto ma non viceversa.
Per questo ho scritto questa guida che descrive nel dettaglio i vari passaggi necessari a spostare un sito Joomla!® versione 2.5 da remoto a locale con riferimenti trasversali ai due software più utilizzati per le installazioni locali di Joomla!®: XAMPP in ambiente Windows e MAMP in ambiente Mac.
Trasferire un sito Joomla!® da remoto a locale
Ci sono validi motivi per trasferire un sito Joomla!® da remoto a locale, ne elenco alcuni:
- avere in locale un backup aggiornato e funzionante del sito
- modificare il template o i fogli di stile senza timore di sconvolgere la grafica del sito online
- testare nuove estensioni in completa libertà e sicurezza
Esistono software ed estensioni che facilitano tale procedura ma in questo tutorial non vengono trattati per andare incontro agli utenti che preferiscono operare manualmente piuttosto che affidarsi a procedure automatizzate.
Le operazioni principali per il trasferimento di un sito Joomla!® da remoto a locale sono:
1. esportare il database del sito remoto
2. importare il database del sito remoto in quello del sito locale
3. trasferire i file del sito remoto in locale
4. apportare le necessarie modifiche al file configuration.php
Avvertenze:
- prima di effettuare qualsiasi operazione successiva fate un backup del sito e del database remoti
- un sito una volta trasferito da remoto a locale (ed anche da locale a remoto!) potrebbe presentare dei malfunzionamenti dovuti alle differenze tra il server remoto e quello simulato in locale da XAMPP o MAMP. Normalmente non ci sono problemi ma se entrano in gioco alcune incompatibilità dovute a diverse versioni di php, MySQL o a particolari configurazioni di Apache (vedi il tutorial: Installare Joomla!® 2.5 con MAMP) alcune estensioni potrebbero non funzionare più.
- gli esempi e i percorsi riportati sono riconducibili ad installazioni standard di MAMP, XAMPP e Joomla!® e non vengono considerate installazioni remote con sottodomini, sottocartelle, database multipli o altre configurazioni particolari.
Se nel procedere notate delle incongruenze con quanto esposto utilizzate metodi alternativi a quello proposto in questo tutorial.
1. Esportare il database remoto
Ci sono diversi modi per ottenere una copia del database remoto; possiamo sfruttare il backup del server ed estrarlo da lì oppure procedere manualmente, direttamente dal phpMyAdmin come descritto di seguito.
Questa operazione molto semplice nota anche come "dump" del database consiste nell'esportare l'intera struttura del database del sito remoto in un file .sql che utilizzeremo successivamente per ricreare il database in locale.
Come prima cosa dobbiamo accedere al phpMyAdmin dal pannello di controllo del server.
Sotto possiamo vedere i link di riferimento al phpMyAdmin da un pannello cPanel e da un DirectAdmin.
il pannellino di phpMyAdmin potrebbe avere aspetti diversi a seconda della versione o del tema selezionato ma comunque le operazioni da fare sono sostanzialmente sempre le stesse: selezionare il database ed esportarlo.
Vediamo i vari passaggi in due comuni versioni di phpMyAdmin, la classica e la moderna
Al termine delle operazioni ci troveremo nel nostro computer locale un file .sql che è la copia del database remoto e che ci servirà nel passaggio successivo.
2. Importare il database remoto
In questa fase vedremo come importare il database del sito remoto in un nuovo database che useremo in locale. Premetto che il database locale non deve necessariamente avere lo stesso nome di quello remoto. In questo tutorial creeremo un database locale denominato db_local e qui importeremo il database remoto.
Avviamo MAMP o XAMPP e lanciamo phpMyAdmin
Andiamo al pannello per la creazione di un nuovo database, inseriamo nella finestrella: db_local e poi clic su Crea.
Ora clic su Importa e da Sfoglia selezioniamo il file .sql che abbiamo scaricato da remoto (al passaggio 1), poi Esegui.
Un messaggio in campo verde ci avviserà della corretta importazione di tutte le tabelle.
A questo punto avremo creato in locale il database db_local che è la copia esatta (tranne per il nome) di quello remoto.
3. Trasferire i file del sito remoto in locale
Il database è stato creato (e popolato), ora ci mancano i file.
Tutti i file che compongono il nostro sito sono nella root remota (di solito denominata public_html, htdocs, httdocs...) non dobbiamo fare altro che copiarli e trasferirli in una cartella in locale. Probabilmente dal pannello di controllo del server sarà disponibile una funzione per creare un backup zippato e da qui potremo facilmente estrarre tutti i file della root e copiarli in locale. Diversamente potremo anche scaricarli via FTP anche se ciò richiederà più tempo.
Se decidessimo per questa opzione, sarà sufficiente un qualsiasi programma per l'FTP come ad esempio FileZilla che è disponibile sia per Mac che per Windows.
a) creiamo una cartella sul desktop con un nome che ci ricordi il sito remoto, in questo tutorial useremo joomlalocal.
b) colleghiamoci via FTP alla root del nostro sito remoto (quella che contiene i file di Joomla) e scarichiamo tutti i file lì presenti nella cartella locale joomlalocal
c) spostiamo la cartella joomlalocal nella cartella htdocs di MAMP o XAMPP
4. modificare il file configuration.php
A questo punto dovremo modificare alcuni valori del file configuration.php per consentire "l'aggancio" al database locale (db_local) e correggere il percorso alle cartelle logs e tmp che in locale è diverso da quello remoto.
Per maggiore chiarezza distinguiamo le procedure da seguire a seconda si usino Mac & MAMP o Windows & XAMPP.
Mac & MAMP - variazioni al configuration.php
$host diventa localhost (probabilmente era già così anche a remoto)
$user diventa root (il nome standard dell'utente amministratore in MAMP)
$password diventa root (la password pre-impostata per l'utente root)
$db diventa db_local (il nome che abbiamo dato noi al database locale)
$log_path diventa /Applications/MAMP/htdocs/joomlalocal/logs (il percorso predefinito alla cartella joomlalocal/logs)
$tmp_path diventa /Applications/MAMP/htdocs/joomlalocal/tmp (il percorso predefinito alla cartella joomlalocal/tmp)
Windows & XAMPP - variazioni al configuration.php
$host diventa localhost (probabilmente era già così anche a remoto)
$user diventa root (il nome standard dell'utente amministratore in XAMPP)
$password va lasciato il campo vuoto tra gli apici '' (l'utente root di default non ha password)
$db diventa db_local (il nome che abbiamo dato noi al database locale)
$log_path diventa C:\\xampp\\htdocs\\joomlalocal/logs (il percorso predefinito alla cartella joomlalocal/logs. Attenzione alle \ e /)
$tmp_path diventa C:\\xampp\\htdocs\\joomlalocal/tmp (il percorso predefinito alla cartella joomlalocal/tmp. Attenzione alle \ e /)
Controllo e verifica
Possiamo ora verificare il corretto funzionamento del nostro sito locale, gemello di quello remoto, digitando nel nostro browser:
localhost:8888/joomlalocal se usiamo Mac & MAMP
localhost/joomlalocal se usiamo Windows & XAMPP
Vi consiglio di non utilizzare le stesse username e password nel sito remoto ed in quello locale. Mantenendole diverse eviterete di entrare inavvertitamente nel sito locale pensando di essere a remoto, e viceversa, con le ovvie implicazioni del caso.