Migrazione di Moodle: differenze tra le versioni
Riga 58: | Riga 58: | ||
Testare ancora una volta la migrazione, quindi quando si è soddisfatti, ricordarsi di uscire dalla modalità manutenzione. | Testare ancora una volta la migrazione, quindi 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 [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 - 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: | ||
::<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: | ||
::<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 ove applicabile (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à di manutenzione e ''spegnere'' il vecchio sito. | |||
* | * 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. | ||
==Other considerations== | ==Other considerations== |
Versione delle 10:25, 19 dic 2018
Attenzione: Pagina in costruzione |
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
Comporta lo spostamento di un 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. Ecco uno schema di un piccolo script che è possibile eseguire dalla riga di comando su Unix per eseguire il backup del database:
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
Se si scrive solo -p, la password verrà 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:
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 l'utilizzo di 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 server web necessita di accesso in lettura e scrittura.
Copiare il codice Moodle dal vecchio server al nuovo server
Bisognerà copiare il codice Moodle stesso sul nuovo server (questa è 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à lì. 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/ ) e correggerà qualsiasi link memorizzato nel database.
Uscire dalla modalità manutenzione
Testare ancora una volta la migrazione, quindi 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 rsync per copiare moodledata e public_html o moodle (o qualunque directory in cui si trova l'installazione di Moodle) sul nuovo server - 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, aggiornare config.php con i dettagli rilevanti ove applicabile (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à di manutenzione e spegnere il vecchio sito.
- 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.
Other considerations
Upgrade Moodle at the same time?
While doing the work of migrating Moodle, you might want to upgrade Moodle to the latest version at the same time. On the other hand, if you do that, and something breaks, you won't be sure which change caused the problem, so the more cautious approach is to change one thing at a time, and test in between to verify that all is well.
DNS & masquerading changes
You may have had to change the DNS entries for the new Moodle site. If you have done so, it will take some time for the changes to replicate, so be patient. If your server is located behind a firewall, you may also have to change your firewall rules to allow access to the new server. See the masquerading docs.
Internal and external access
If you have a set up where your Moodle site can be accessed via a network and via the internet, ensure you check that the new site can be accessed internally and externally.
reCAPTCHA
If you migrate to a new domain and have setup Email-based_self-registration, you need to create new API-Keys at google. You will find the explanation and links to google in Email-based_self-registration.
Vedere anche
Any questions?
Please post in the Installing and upgrading help forum on moodle.org