Supporto volontario e collaborativo per Joomla!® in italiano

Trasferire manualmente Joomla tra provider diversi.

Valutazione attuale: 5 / 5

Stella attivaStella attivaStella attivaStella attivaStella attiva
 
Trasferire manualmente Joomla

Molti diranno che ci sono procedure comode, tools esterni o altro.

La mia esperienza mi dice che è molto frequente avere delle situzioni in cui questi tool sono inutilizzabili.
Il tool che non si installa correttamente, il sito che volete trasferire per correggerlo dopo con il back-end inaccessibile, o semplicemente il tool che non funziona nel vostro caso.
Il database di arrivo che ha già un suo nome mentre voi partite con un nome diverso, magari avete l'intenzione di cambiare nome alla directory principale ecc.


Considerato che il trasferimento 'manuale' non è così complesso, diventa anche l'occasione per avere un backup del proprio sito in locale e per fare un po di pulizia.
Comunque assicuratevi di avere il backup di tutto prima di partire lato server.

Srumenti occorrenti, ovviamente l'FTP per accedere al sito (FileZilla o altro), l'accesso alle console di gestione del vecchio e del nuovo sito.
PhpMyAdmin sul vecchio e sul nuovo sito.
Un editor in grado di leggere file Linux ad esempio l'ottimo Notepad++.

Fondamentalmente scaricheremo i files, ne cancelleremo alcuni, faremo un backup (DUMP) del database, daremo un occhiata ed un eventuale correzione allo script generato.
Andremo nella console amministrativa del nuovo sito a preparare il database su cui spostare il tutto.
Caricheremo i files sul nuovo sito, faremo il restore del database, correggeremo configuration.php.

Bene, cominciamo con i files, con FileZilla prendiamo la directory radice del nostro sito e la spostiamo da noi (fa tutto lui ma per siti molto grandi può richiedere da qualche ora a giorni). In ogni caso meglio farlo alla sera e lasciarlo lavorare tutta la notte. Al termine dell'operazione verifichiamo non vengano evidenziati alcuni fine non trasferiti.
Poi è il momento di fare un po di 'pulizia', se anzichè cancellarla avevate rinominato la cartella installation cogliete l'occasione per cancellarla.
Poi andate a cancellare il contenuto delle cartelle cache, logs, tmp lasciando solo il file 'Index' e cancellate i file con . davanti, da Linux per vederli occorre mostrare i file nascosti.
Se nella directory principale del vostro sito trovate dei files .htaccess .404 o roba simile rimuovetela così anche eventuali index.html o index.htm NON index.php!.

Se avete intenzione di rinominare la cartella principale potete farlo in questo momento.
Bene, i vostri files sono pronti a essere caricati sul nuovo provider.

Qui bisogna capire come il sito viene trasferito.

Primo caso, stiamo trasferendo sul sito nuovo, il dominio verrà forse trasferito in seguito.
Se il trasferimento avverrà più avanti, una volta che tutte le operazioni di trasferimento saranno state completate, potreste mettere nel 'vecchio sito' un index.htm/html che faccia un redirect sul nuovo. Alcuni provider permettono di fare la cosa anche dalla console amministrativa.

Trascinate la cartella principale nella www del nuovo provider (anche qui consiglio di cominciare di sera ci può mettere tanto tanto tempo).
Quando magari in seguito sposterete il dominio vi chiederà il nome di directory che volete associarci (la creerà lui), e qui ci metterete quello della vostra cartella.
Tenete conto che se per qualche motivo dovete spostare da una cartella all'altra 'lato server' sconsiglio l'uso di FileZilla, molto più rapido andare nella console del provider a cercare un file-manager webbizzato.
Spostare un sito in un altra cartella così come cancellarlo con Filezilla può richiedere ore nell'altro caso secondi.

Secondo caso il dominio è già trasferito e attivo con pagina vuota, ed avete davanti la cartella che se lo aspetta.
Se avete un gran afflusso di utenti non è una gran cosa che accedano durante la copia con risultati imprevisti.
Create un file index.htm/html con 'lavori in corso' che di solito è prioritario rispetto a index.php, e lo lasciate fino a che vedete che tutto funziona.
Quindi copiate sul server il contenuto della vostra cartella (attenti ai tempi lunghi, meglio alla sera/notte).

Se non volete creare il file index allora meglio trasferire il file index.php solo alla fine quando avrete completato tutto, ma se i 'test' danno problemi qualcuno potrebbe vederlo.

Ok ora i files sono tutti lì pensiamo al DB.

Andiamo ad aprire con l'editor il nostro configuration.php.
In $db trovate il database che vi interessa.
Entrate in phpmyadmin sul vecchio sito a cercare quel database.

In $dbprefix di configuration.php trovate il prefisso delle tabelle che state usando ad esempio xyz_ è importante perchè con vari aggiornamenti o altro potreste averne altri di backup ecc. A voi interessano in questo caso quelli xyz_.

Quindi cancellate tutte le tabelle con prefisso che non vi serve (attenzione a non sbagliarvi).
In pratica selezionare la tabella andare in 'Operazioni' e fare un rimuovitabella 'Elimina la tabella (DROP)'.

Può essere un lavoro alienante, per via delle relazioni le tabelle vanno cancellate in un certo ordine.
Se vi desse un errore legato ai 'constraint' cancellatene una diversa quella la farete dopo.

Ma se volete fare prima ecco una tecnica più furba premete su SQL e ci scrivete

SELECT CONCAT( 'DROP TABLE ', GROUP_CONCAT(table_name) , ';' ) AS statement FROM information_schema.tables WHERE table_schema = 'NOMEVOSTRODB' AND table_name LIKE 'PREFISSO_%';

Avendo cura di sostituire NOMEVOSTRODB con il db che avete ritrovato in $db e come PREFISSO il prefisso da cancellare, se vi sbagliate e ci mettete ad esempio jos fate fuori tutto.
Copiatela e incollatela nel blocco note vi servirà nuovamente.
Lanciando il comando in basso sotto statement ottenete il comando che cancellerebbe tutte le tabelle. Facendo Opzioni testi completi vedete la stringa completa.
Copiate anche questa.
Tornate nel 'Comando SQL' incollate ed eseguite.
Se darà errori di constraint ignorateli, qualche tabella è stata cancellata.

Ritornate a eseguire la select generando il comando successivo, vedrete che ripetendo la sequenza tre o quattro volte cancellerete tutto.
Quando non darà più errore vedrete dopo qualche secondo che sulla sinistra le cartelle con il prefisso incriminato saranno sparite.

E' il momento di salvarci in locale il database.
Selezionate sulla sinistra il vostro database.
Selezionate Esporta controllando ci sia scritto 'Esportazione tabelle dal database ...
Formato SQL.
Metodo Rapido.
Non cancellate nulla fino ad aver verificato che tutto è andato liscio.

Entrate nel PhpMyAdmin del nuovo sito.
In questo caso potreste avere due situazioni.

Il database non è presente e potete generalo da codice o da console Web.
Create il database, assegnate un utente, dategli una password e dite che quell'utente può aprire quel database.

Entrare in PhpMyAdmin Impostazione.
' fate caso alle credenziali di accesso, segnatevi nome del server (spesso ma non sempre localhost) e nome dell'utente se usate sempre lo stesso.

Se vi trovate un database già pronto con nome e utente ecc. spesso lo script di importazione va corretto.
Aprite il file .sql salvato, lo aprite con Notepad++ o un altro editor (se non lo avete scaricatelo è Open Source). Non usate Notepad che non lo leggerebbe correttamente.

Il nome del vostro database vecchio lo trovate in

-- Database: `NOMEDBVECCHIO`

Fate un trova e sostituisci con il nome del nuovo database. (non obbligatorio in questo caso è solo un commento).
Poi aggiungete in alto

use NOMEDBNUOVO;

così indicherete allo script in che db caricare il tutto (questo invece è indispensabile).
Attenzione che alcuni gestori in phpmyadmin fanno vedere solo una parte del nome.

Ad esempio se sono l'utente PIPPO magari il mio DB è PIPPO_NOMEDB.
Salvate e chiudete.
Andate nella console PhpMyAdmin del nuovo sito
Importa scegli file esegui.
Se tutto va lisco il DB viene caricato altrimenti avete sbagliato qualcosa.

Ora ci siamo quasi, abbiamo il DB e abbiamo i files, dobbiamo collegare i files nuovi al nuovo DB.
Andiamo a modificare il file configuration.php nella home del nostro sito

Impostiamo
var $log_path = './logs';
var $tmp_path = './tmp';

mettere le credenziali del database in
$users e quelle del nome del datbase in  $db
e la password in $password
$host di solito resta localhost, ma alcuni provider puntano invece ad un host diverso (quello del login in phpmyadmin)

Un minimo errore sulle credenziali e non si connette.
Salvate e mettete in linea configuration.php.

Se non avevate anbcora spostato Index.php spostatelo ora.

Provate il sito, magari con www.nuovoserver.com/cartellasito/index.php
E il gioco è fatto!

commentaCommenta questo articolo sul forum

Ho scritto e condiviso questo articolo su Joomla.it, fallo anche tu. Invia ora un nuovo articolo!
Paolo Holzl
Alcune informazioni su di me:
Analisi, sviluppo, formazione.


Ho anche scritto:
         ✔ diventa autore su Joomla.it

Ultima versione di Joomla!®

downloadVer. 3.6.2 Stabile Italiana
Data di rilascio:4 Agosto 2016
(leggi la notizia Demo online

Le migliori estensioni gratuite

Un elenco aggiornato con i link a più di 100 estensioni fra componenti, moduli e plugin gratuiti per Joomla! 3

Manuale in italiano

Manuale in italianoPer conoscere meglio Joomla!, le sue caratteristiche ed il metodo di utilizzo leggi il manuale tradotto in italiano.

Molto utili anche le risposte alle domande più frequenti: FAQ

Sicurezza del proprio sito Joomla!Leggi anche: Nozioni sulla sicurezza del proprio sito

Autori di articoli recenti

Invia un articolo!Scrivi un articolo su Joomla.it e ricevi i ricavi dalle pubblicità di Google Adsense!
Segui queste istruzioni, condividi e collabora con la community. L'elenco degli autori attivi sul sito.

Libri consigliati

Torna su

Joomla.it sui Social Network

JoomlaDay Italia

JoomlaDay

Newsletter

Inserisci qui la tua e.mail: