Migrazione di Moodle: differenze tra le versioni
Nessun oggetto della modifica |
|||
(31 versioni intermedie di uno stesso utente non sono mostrate) | |||
Riga 1: | Riga 1: | ||
{{Installazione}} | {{Installazione}} | ||
Ci possono essere momenti in cui è necessario spostare il sito Moodle da un server a un altro. Ad esempio, quando si sposta un sito Moodle dal server condiviso del servizio di hosting a un server dedicato. | Ci possono essere momenti in cui è necessario spostare il sito Moodle da un server a un altro. Ad esempio, quando si sposta un sito Moodle dal server condiviso del servizio di hosting a un server dedicato. | ||
==Metodo consigliato== | ==Metodo consigliato== | ||
Riga 10: | Riga 9: | ||
===Eseguire il backup del database Moodle sul vecchio server=== | ===Eseguire il backup del database Moodle sul vecchio server=== | ||
Il modo corretto per eseguire il backup del database dipende dal sistema di database che si sta utilizzando. Le istruzioni seguenti sono un modo per eseguire il backup di un database MySQL. Un'altra opzione potrebbe essere quella di utilizzare uno strumento come ''phpMyAdmin'' per eseguire manualmente un backup. La documentazione del database sarà più specifica. Ci sono molti modi per fare i backup. | Il modo corretto per eseguire il backup del database dipende dal sistema di database che si sta utilizzando. | ||
Le istruzioni seguenti sono un modo per eseguire il backup di un database MySQL. Un'altra opzione potrebbe essere quella di utilizzare uno strumento come ''phpMyAdmin'' per eseguire manualmente un backup. La documentazione del database sarà più specifica. | |||
Ci sono molti modi per fare i backup. Quello che segue è uno script eseguibile dalla riga di comando su Unix: | |||
<pre> | <pre> | ||
Riga 18: | Riga 21: | ||
</pre> | </pre> | ||
Scriverndo solo ''-p'', la password sarà richiesta. | |||
=== Ripristinare il backup del database sul nuovo server === | === Ripristinare il backup del database sul nuovo server === | ||
Riga 24: | Riga 27: | ||
Copiare i file di backup del database sul nuovo server e ripristinarli nel nuovo server di database. | Copiare i file di backup del database sul nuovo server e ripristinarli nel nuovo server di database. | ||
Una volta creato il nuovo database sul nuovo server: | Una volta creato il nuovo database sul nuovo server digitare: | ||
<pre>mysql -p new_database < moodle-database.sql</pre> | <pre>mysql -p new_database < moodle-database.sql</pre> | ||
Riga 31: | Riga 34: | ||
===Copiare la directory moodledata dal vecchio server al nuovo server=== | ===Copiare la directory moodledata dal vecchio server al nuovo server=== | ||
Copiare il contenuto della directory dei dati (controllare il valore in ''$CFG->dataroot'') sul nuovo server. Potrebbe contenere tantissimi dati, quindi prendere in considerazione | Copiare il contenuto della directory dei dati (controllare il valore in ''$CFG->dataroot'') sul nuovo server. Potrebbe contenere tantissimi dati, quindi prendere in considerazione di utilizzare un buon strumento di copia dei dati come {{en}} [https://rsync.samba.org/ rsync]. Se si utilizza un client FTP, il trasferimento della cartella ''filedir'' deve essere in modalità '''BINARY''' altrimenti i file verranno danneggiati durante il processo. | ||
{{Nota|Non è necessario copiare il contenuto delle directory /moodledata/cache, /moodledata/localcache, /moodledata/sessions, /moodledata/temp o /moodledata/trashdir. Omettere questi file ridurrà sostanzialmente il tempo di trasferimento.}}Controllare i permessi dei file dei file copiati. Il server | {{Nota|Non è necessario copiare il contenuto delle directory ''/moodledata/cache'', ''/moodledata/localcache'', ''/moodledata/sessions'', ''/moodledata/temp'' o ''/moodledata/trashdir''. Omettere questi file ridurrà sostanzialmente il tempo di trasferimento.}}Controllare i permessi dei file dei file copiati. Il web server necessita di accesso in lettura e scrittura. | ||
===Copiare il codice Moodle dal vecchio server al nuovo server=== | ===Copiare il codice Moodle dal vecchio server al nuovo server=== | ||
Copiare il codice Moodle sul nuovo server (è la cartella Moodle che si trova nella cartella ''webroot'', ad esempio ''/var/www'' o ''public_html''). | |||
Controllare i permessi dei file dei file copiati. Il web server necessita di accesso in lettura. | Controllare i permessi dei file dei file copiati. Il web server necessita di accesso in lettura. | ||
Riga 44: | Riga 47: | ||
Se la migrazione sposta Moodle in un nuovo URL, aggiornare ''$CFG->wwwroot'' in ''config.php'' in modo che punti alla nuova posizione. | Se la migrazione sposta Moodle in un nuovo URL, aggiornare ''$CFG->wwwroot'' in ''config.php'' in modo che punti alla nuova posizione. | ||
Controllare anche le altre proprietà | Controllare anche le altre proprietà. Il percorso ''$CFG->moodledata'' è ancora corretto? Le impostazioni di connessione al database devono essere modificate? | ||
===Testare il sito copiato=== | ===Testare il sito copiato=== | ||
Riga 51: | Riga 54: | ||
===Aggiornare i collegamenti contenenti ''wwwroot'' nel database=== | ===Aggiornare i collegamenti contenenti ''wwwroot'' nel database=== | ||
L'unica cosa che non abbiamo risolto sono i collegamenti interni memorizzati nel database. Per risolvere questi problemi utilizzare lo [[Strumento cerca e sostituisci|strumento cerca e sostituisci]] andando su {wwwroot} /admin/tool/replace/index.php. | L'unica cosa che non abbiamo risolto sono i collegamenti interni memorizzati nel database. Per risolvere questi problemi utilizzare lo [[Strumento cerca e sostituisci|strumento cerca e sostituisci]] andando su ''{wwwroot} /admin/tool/replace/index.php''. | ||
Inserire l'url del vecchio server (<nowiki> http://nome.del.vecchio.server.com/ </nowiki>) e il nuovo server (<nowiki> http://nome.del.nuovo.server.com/ </nowiki>) | Inserire l'url del vecchio server (''<nowiki> http://nome.del.vecchio.server.com/ </nowiki>'') e il nuovo server (''<nowiki> http://nome.del.nuovo.server.com/ </nowiki>''); questo correggerà qualsiasi link memorizzato nel database. | ||
===Uscire dalla modalità manutenzione=== | ===Uscire dalla modalità manutenzione=== | ||
Per sicurezza, testare ancora una volta la migrazione. Quando si è soddisfatti, ricordarsi di uscire dalla modalità manutenzione. | |||
==Metodo rapido e hacky== | ==Metodo rapido e hacky== | ||
Riga 65: | Riga 68: | ||
* Mettere il sito Moodle in modalità manutenzione. | * Mettere il sito Moodle in modalità manutenzione. | ||
* Accedere alla shell sul '''vecchio''' server. | * Accedere alla shell sul '''vecchio''' server. | ||
* Utilizzare [https://rsync.samba.org/ rsync] per copiare ''moodledata'' e ''public_html'' o ''moodle'' (o qualunque directory in cui si trova l'installazione di Moodle) sul nuovo server | * Utilizzare {{en}} [https://rsync.samba.org/ rsync] per copiare ''moodledata'' e ''public_html'' o ''moodle'' (o qualunque directory in cui si trova l'installazione di Moodle) sul '''nuovo''' server ed eseguire (sostituendo le parti in maiuscolo con i propri dettagli: SOURCE = la directory che si desidera copiare) per ogni directory: | ||
:: <code> rsync -av -e ssh SOURCE/USERNAME@NEW_SERVER.COM:/PATH/TO/DESTINATION/</code> | :: <code>rsync -av -e ssh SOURCE/USERNAME@NEW_SERVER.COM:/PATH/TO/DESTINATION/</code> | ||
* Fare il dump nel database esistente e spostarlo e importarlo nel database sul nuovo server eseguendo: | * Fare il dump nel database esistente e spostarlo e importarlo nel database sul '''nuovo''' server eseguendo: | ||
:: <code> mysqldump --allow-keywords --opt -uMySQL_USERNAME -pPASSWORD DATABASE|ssh USER @ DOMAIN "mysql -uMySQL_USERNAME -pPASSWORD DATABASE" </code> | :: <code>mysqldump --allow-keywords --opt -uMySQL_USERNAME -pPASSWORD DATABASE|ssh USER @ DOMAIN "mysql -uMySQL_USERNAME -pPASSWORD DATABASE"</code> | ||
* Sostituire eventuali collegamenti nel database che contengono l'intero URL del sito: | * Sostituire eventuali collegamenti nel database che contengono l'intero URL del sito: | ||
:: <code> #sed -e 's/oldserver.com/newserver.com/g' oldmysqldump.sql > newmysqldump.sql </code> | :: <code>#sed -e 's/oldserver.com/newserver.com/g' oldmysqldump.sql > newmysqldump.sql</code> | ||
* Sul '''nuovo''' server, aggiornare ''config.php'' con i dettagli rilevanti | * Sul '''nuovo''' server, dove applicabile aggiornare ''config.php'' con i dettagli rilevanti (ad esempio nome del database e dettagli utente, ''wwwroot'' e ''dataroot''). | ||
* Controllare se la proprietà e le autorizzazioni sono corrette sia sul codice moodle che sulle directory moodledata. | * Controllare se la proprietà e le autorizzazioni sono corrette sia sul codice moodle che sulle directory moodledata. | ||
* Assicurarsi che tutto funzioni. | * Assicurarsi che tutto funzioni. | ||
Riga 77: | Riga 80: | ||
Ci vogliono circa 15 minuti per un piccolo sito. Tuttavia, il trasferimento di diversi GB di dati per un sito più grande può richiedere ore a seconda della connessione di rete e della velocità di lettura/scrittura del disco rigido. | Ci vogliono circa 15 minuti per un piccolo sito. Tuttavia, il trasferimento di diversi GB di dati per un sito più grande può richiedere ore a seconda della connessione di rete e della velocità di lettura/scrittura del disco rigido. | ||
Se tutto è andato bene, impostare i reindirizzamenti | Se tutto è andato bene, impostare i reindirizzamenti, modificare i DNS (se necessario), uscire dalla modalità manutenzione e ''spegnere'' il vecchio sito. | ||
==Altre considerazioni== | {{Nota|Se si sta passando l'indirizzo IP dal vecchio server a quello nuovo, occorrerà spegnere il vecchio server prima di accendere quello nuovo per evitare conflitti di indirizzi IP e confusione.}}==Altre considerazioni== | ||
===Aggiornare Moodle allo stesso tempo?=== | ===Aggiornare Moodle allo stesso tempo?=== | ||
Mentre si esegue il lavoro di migrazione di Moodle, allo stesso tempo si potrebbe voler [[Aggiornamento|aggiornare Moodle]] alla versione più recente. D'altra parte, se lo si fa, e qualcosa si danneggia, non si potrà essere certi di quale cambiamento ha causato il problema. L'approccio più cauto è quello di cambiare una cosa alla volta e testare via via per verificare che tutto vada bene. | |||
Mentre si esegue il lavoro di migrazione di Moodle, allo stesso tempo si potrebbe voler [[Aggiornamento|aggiornare Moodle]] alla versione più recente. D'altra parte, se lo si fa, e qualcosa si | |||
===DNS e modifiche al masquerading=== | ===DNS e modifiche al masquerading=== | ||
Riga 98: | Riga 97: | ||
===reCAPTCHA=== | ===reCAPTCHA=== | ||
Se si esegue la migrazione a un nuovo dominio e si è | Se si esegue la migrazione a un nuovo dominio e si è impostata la registrazione dell'[[Account via email]], occorre creare nuove API-Key su Google. Consultare [[Account via email]] per ulteriori dettagli. | ||
==Domande?== | ==Domande?== | ||
Riga 104: | Riga 103: | ||
Si prega di pubblicare un post sul forum di aiuto {{en}} [https://moodle.org/mod/forum/view.php?id=28 Installing and upgrading help] su [https://moodle.org Moodle.org]. | Si prega di pubblicare un post sul forum di aiuto {{en}} [https://moodle.org/mod/forum/view.php?id=28 Installing and upgrading help] su [https://moodle.org Moodle.org]. | ||
== | ==Per saperne di più== | ||
* [[Backup del sito]] | * [[Backup del sito]] | ||
* [[Ripristino del sito]] | * [[Ripristino del sito]] |
Versione attuale delle 17:33, 24 nov 2020
Ci possono essere momenti in cui è necessario spostare il sito Moodle da un server a un altro. Ad esempio, quando si sposta un sito Moodle dal server condiviso del servizio di hosting a un server dedicato.
Metodo consigliato
Per la migrazione di Moodle si consiglia di spostare l'intero sito da un server all'altro. Se si sta modificando il dominio/l'indirizzo IP sul nuovo server, occorre seguire i passaggi che seguono.
Attivare la modalità manutenzione
Mettere il sito Moodle in modalità manutenzione da Amministrazione del sito > Server > Manutenzione per impedire ulteriori aggiunte al database Moodle. Non consentire agli Amministratori di accedere durante la migrazione poiché non sono soggetti ai blocchi attivi quando il sistema è in manutenzione.
Eseguire il backup del database Moodle sul vecchio server
Il modo corretto per eseguire il backup del database dipende dal sistema di database che si sta utilizzando.
Le istruzioni seguenti sono un modo per eseguire il backup di un database MySQL. Un'altra opzione potrebbe essere quella di utilizzare uno strumento come phpMyAdmin per eseguire manualmente un backup. La documentazione del database sarà più specifica.
Ci sono molti modi per fare i backup. Quello che segue è uno script eseguibile dalla riga di comando su Unix:
cd /my/backup/directory mv moodle-database.sql.gz moodle-database-old.sql.gz mysqldump -h example.com -u myusername -p'mypassword' -C -Q -e --create-options mydatabasename > moodle-database.sql
Scriverndo solo -p, la password sarà richiesta.
Ripristinare il backup del database sul nuovo server
Copiare i file di backup del database sul nuovo server e ripristinarli nel nuovo server di database.
Una volta creato il nuovo database sul nuovo server digitare:
mysql -p new_database < moodle-database.sql
Per altri database, seguire le istruzioni per ripristinare un backup.
Copiare la directory moodledata dal vecchio server al nuovo server
Copiare il contenuto della directory dei dati (controllare il valore in $CFG->dataroot) sul nuovo server. Potrebbe contenere tantissimi dati, quindi prendere in considerazione di utilizzare un buon strumento di copia dei dati come (EN) rsync. Se si utilizza un client FTP, il trasferimento della cartella filedir deve essere in modalità BINARY altrimenti i file verranno danneggiati durante il processo.
Nota: Non è necessario copiare il contenuto delle directory /moodledata/cache, /moodledata/localcache, /moodledata/sessions, /moodledata/temp o /moodledata/trashdir. Omettere questi file ridurrà sostanzialmente il tempo di trasferimento. |
Controllare i permessi dei file dei file copiati. Il web server necessita di accesso in lettura e scrittura.
Copiare il codice Moodle dal vecchio server al nuovo server
Copiare il codice Moodle sul nuovo server (è la cartella Moodle che si trova nella cartella webroot, ad esempio /var/www o public_html).
Controllare i permessi dei file dei file copiati. Il web server necessita di accesso in lettura.
Aggiornare config.php con l'URL del nuovo server
Se la migrazione sposta Moodle in un nuovo URL, aggiornare $CFG->wwwroot in config.php in modo che punti alla nuova posizione.
Controllare anche le altre proprietà. Il percorso $CFG->moodledata è ancora corretto? Le impostazioni di connessione al database devono essere modificate?
Testare il sito copiato
Ora si dovrebbe poter accedere al nuovo sito come Amministratore e verificare che la maggior parte delle cose funzioni.
Aggiornare i collegamenti contenenti wwwroot nel database
L'unica cosa che non abbiamo risolto sono i collegamenti interni memorizzati nel database. Per risolvere questi problemi utilizzare lo strumento cerca e sostituisci andando su {wwwroot} /admin/tool/replace/index.php.
Inserire l'url del vecchio server ( http://nome.del.vecchio.server.com/ ) e il nuovo server ( http://nome.del.nuovo.server.com/ ); questo correggerà qualsiasi link memorizzato nel database.
Uscire dalla modalità manutenzione
Per sicurezza, testare ancora una volta la migrazione. Quando si è soddisfatti, ricordarsi di uscire dalla modalità manutenzione.
Metodo rapido e hacky
Se si dispone dell'accesso alla shell su entrambi i server, di seguito un rapido metodo basato sulla riga di comando.
- Configurare un nuovo database vuoto sul nuovo server.
- Mettere il sito Moodle in modalità manutenzione.
- Accedere alla shell sul vecchio server.
- Utilizzare (EN) rsync per copiare moodledata e public_html o moodle (o qualunque directory in cui si trova l'installazione di Moodle) sul nuovo server ed eseguire (sostituendo le parti in maiuscolo con i propri dettagli: SOURCE = la directory che si desidera copiare) per ogni directory:
rsync -av -e ssh SOURCE/USERNAME@NEW_SERVER.COM:/PATH/TO/DESTINATION/
- Fare il dump nel database esistente e spostarlo e importarlo nel database sul nuovo server eseguendo:
mysqldump --allow-keywords --opt -uMySQL_USERNAME -pPASSWORD DATABASE|ssh USER @ DOMAIN "mysql -uMySQL_USERNAME -pPASSWORD DATABASE"
- Sostituire eventuali collegamenti nel database che contengono l'intero URL del sito:
#sed -e 's/oldserver.com/newserver.com/g' oldmysqldump.sql > newmysqldump.sql
- Sul nuovo server, dove applicabile aggiornare config.php con i dettagli rilevanti (ad esempio nome del database e dettagli utente, wwwroot e dataroot).
- Controllare se la proprietà e le autorizzazioni sono corrette sia sul codice moodle che sulle directory moodledata.
- Assicurarsi che tutto funzioni.
Ci vogliono circa 15 minuti per un piccolo sito. Tuttavia, il trasferimento di diversi GB di dati per un sito più grande può richiedere ore a seconda della connessione di rete e della velocità di lettura/scrittura del disco rigido.
Se tutto è andato bene, impostare i reindirizzamenti, modificare i DNS (se necessario), uscire dalla modalità manutenzione e spegnere il vecchio sito.
Nota: Se si sta passando l'indirizzo IP dal vecchio server a quello nuovo, occorrerà spegnere il vecchio server prima di accendere quello nuovo per evitare conflitti di indirizzi IP e confusione. |
Altre considerazioni
Aggiornare Moodle allo stesso tempo?
Mentre si esegue il lavoro di migrazione di Moodle, allo stesso tempo si potrebbe voler aggiornare Moodle alla versione più recente. D'altra parte, se lo si fa, e qualcosa si danneggia, non si potrà essere certi di quale cambiamento ha causato il problema. L'approccio più cauto è quello di cambiare una cosa alla volta e testare via via per verificare che tutto vada bene.
DNS e modifiche al masquerading
Potrebbe essere stato necessario modificare le voci DNS per il nuovo sito Moodle. Se lo si è fatto, ci vorrà del tempo prima che le modifiche si replichino, quindi occorre essere pazienti. Se il server si trova dietro un firewall, si potrebbe anche dover modificare le regole del firewall per consentire l'accesso al nuovo server. Consultare la documentazione di Masquerading.
Accesso interno ed esterno
Se si dispone di una configurazione in cui è possibile accedere al sito Moodle via rete e via Internet, assicurarsi di controllare che il nuovo sito sia accessibile internamente ed esternamente.
reCAPTCHA
Se si esegue la migrazione a un nuovo dominio e si è impostata la registrazione dell'Account via email, occorre creare nuove API-Key su Google. Consultare Account via email per ulteriori dettagli.
Domande?
Si prega di pubblicare un post sul forum di aiuto (EN) Installing and upgrading help su Moodle.org.