Guida basata su interventi documentati. Trasferimento via SSH con chiavi autorizzate e import di quattro database completati, mantenendo separata la verifica dati dal cambio DNS.
Scenario
In una migrazione di hosting, l'obiettivo era spostare i file di diversi siti e i rispettivi database usando accesso SSH root con chiave già autorizzata. Il primo risultato da misurare era la correttezza del trasferimento, non la semplice disponibilità della porta SSH.
Preparazione
Verificare capacità disco, versione PHP e MariaDB, UID/GID dei file, ACL e permessi del DocumentRoot. Un account amministrativo sul server di destinazione deve avere accesso limitato al tempo necessario alla migrazione.
Trasferimento file
# Dal server di destinazione, con una chiave autorizzata
rsync -aHAX --numeric-ids --info=progress2 \n root@SORGENTE:/var/www/SITO/web/ /var/www/SITO/web/
# Verifica senza scrivere
rsync -aHAXn --delete --itemize-changes \n root@SORGENTE:/var/www/SITO/web/ /var/www/SITO/web/
Prestare molta attenzione a --delete: usarlo soltanto in simulazione oppure dopo aver verificato directory sorgente e destinazione.
Import dei database
mysqldump --single-transaction --routines --triggers --events \n -u USER -p NOME_DB > backup.sql
sha256sum backup.sql
mariadb -u USER_DEST -p NOME_DB_DEST < backup.sql
mariadb -u USER_DEST -p -e 'SHOW TABLES FROM NOME_DB_DEST;'
Esito del trasferimento
Nel caso documentato l'accesso SSH con chiave era operativo e i file di tre siti erano stati sincronizzati. Anche quattro import SQL sono terminati correttamente. Le verifiche di compatibilità Joomla e le credenziali applicative di altri siti erano invece ancora da risolvere: non fanno parte del risultato dichiarato.
Check prima del go-live
Provare HTTP con Host header o record hosts temporaneo, controllare applicazione e connessione SQL, confrontare conteggi e checksum, quindi procedere al cutover soltanto dopo test completi e con rollback disponibile.
Articoli correlati
- php hardening session upload progress use strict mode
- apache balancer manager senza password require all granted
Usare segnaposto e verificare l'ambiente prima di eseguire i comandi. Nessuna credenziale o identificativo infrastrutturale reale è riportato.