Come spostare un sito su altro server

La necessità di trasferire un sito su un altro server è piuttosto comune.

La necessità di trasferire un sito su un altro server è piuttosto comune. Spostare il sito altrove può rendersi necessario sulla base molteplici motivazioni:

1) il provider scelto non soddisfa le proprie aspettative o, peggio, non garantisce la costante raggiungibilità del sito web oppure prestazioni/affidabilità
2) si vuole passare da un servizio di hosting tradizionale ad un server dedicato o ad un server cloud
3) si vuole semplicemente cambiare provider per motivi economici

In ogni caso, la procedura di trasferimento di un sito su un altro server o presso un provider diverso è delicata, soprattutto se si vuole fare in modo che il proprio sito web resti sempre raggiungibile.
Con le opportune precauzioni, si può spostare un sito web altrove senza difficoltà e senza intoppi: è sufficiente avere ben chiari i passaggi da effettuare prima di procedere.

Il trasferimento di un sito web su altro server (dello stesso provider – nel caso in cui si passasse da hosting tradizionale a server dedicati o cloud – oppure di altri provider) si concretizza in alcuni passi:

1) acquisto del servizio di hosting / server dedicato / server cloud presso lo stesso provider od un altro provider
2) configurazione del server dedicato o del server cloud (non vale nel caso dell’hosting tradizionale)
3) trasferimento dei file dal vecchio al nuovo server (tipicamente via FTP)
4) trasferimento del database MySQL, SQL Server,… dal vecchio al nuovo server
5) verifica dei permessi sul file system (cartelle contenenti i file del sito web)
6) configurazione dei permessi per l’accesso al database (solo per server dedicati e cloud)
7) eventuale configurazione del firewall nel caso di server dedicati e cloud
8) test della perfetta funzionalità del server web e del sito aiutandosi con la configurazione del file HOSTS
9) modifica dei record DNS (compresi record MX per la gestione della posta elettronica)
10) verifica sulla corretta propagazione dei nuovi record DNS

La scelta tra hosting tradizionale, server dedicato e server cloud segue una logica semplice: se il proprio sito web è semplice, non genera molto traffico e non presuppone particolari requisiti un normale hosting va benissimo. Anche ben noti CMS come WordPress e Joomla sono generalmente compatibili con i servizi di hosting di tipo tradizionale perché tutti i provider, ad esempio, offrono un web server capace di caricare ed elaborare script PHP e la possibilità di usare database MySQL, sullo stesso server o su altri server connessi alla medesima rete.
Nel caso dell’hosting semplice, però, le risorse a disposizione per il proprio sito sono condivise con centinaia se non migliaia di clienti che fanno uso del medesimo server web.

Trasferire il sito web su un altro server via FTP

Una volta acquistato il servizio di hosting, il server dedicato od il server cloud, si potrà iniziare a spostare il sito web dal vecchio al nuovo provider o comunque dal vecchio al nuovo server.

Nel caso dell’hosting tradizionale, è tipicamente necessario scaricare tutti i file via FTP dal server del vecchio provider quindi ricaricarli, sempre via FTP (è possibile utilizzare un client come FileZilla) sul nuovo server.

Nell’articolo Come configurare server cloud Aruba, abbiamo visto come impostare un server cloud (procedura che non differisce molto rispetto alla configurazione di una macchina dedicata).
Nel caso in cui si fosse acquistato un server dedicato oppure un server cloud, soprattutto se i file da prelevare via FTP dal vecchio hosting sono molti e piuttosto pesanti, si può evitare di effettuare in proprio la procedura di download dal vecchio server ed upload su quello nuovo.
La procedura di upload, se effettuata utilizzando una comune ADSL, infatti, può richiedere anche diverse ore per poter essere portata a completamento, specie se i file sono tanti e, complessivamente, occupano molto spazio: Come aumentare la velocità di upload in ottica cloud.

Si può quindi pensare di richiedere al server dedicato o cloud il download via FTP dei file dal server del vecchio provider.

Sui server Linux, dopo aver instaurato la connessione via SSH, si può ad esempio utilizzare il comando che segue per scaricare i propri file dal vecchio server via FTP:

wget -m -nH –ftp-user=NOME_UTENTE --ftp-password=PASSWORD_FTP ftp://IP_SERVER nomecartella/

In questo modo, il comando wget provvederà a collegarsi al vecchio server e a scaricare tutto il contenuto della cartella del sito web.
Al posto di nomecartella, va specificato il nome della cartella locale all’interno della quale debbono essere salvati i file scaricati via FTP dal server remoto.

Sulle macchine Windows Server, dopo essersi collegati via Desktop Remoto, è sicuramente possibile impiegare l’utilità wget anche se a questo punto si può utilizzare il comodo FileZilla.

Una volta concluso il trasferimento dati è importante controllare i permessi assegnati alle cartelle.
Molti CMS (WordPress, Joomla,…) necessitano dei diritti in scrittura su alcune cartelle: il web server (Apache o IIS) deve essere quindi in grado di scrivere su tali cartelle. Esempio:

Permessi da assegnare alle cartelle di WordPress.

Permessi da assegnare alle cartelle di Joomla. Nel caso di Joomla, dopo aver configurato l’accesso alla base dati MySQL (vedere più avanti) ci si potrà portare all’interno del pannello di amministrazione (/administrator), cliccare sul menu Sito, Informazioni di sistema quindi su Permessi cartella.
Qui si potrà verificare quali cartelle necessitano dei permessi in scrittura.

Come spostare un sito su altro server

Maggiori informazioni sono reperibili in questa pagina.

Trasferire i database utilizzati dal sito web

Un altro importante passaggio consiste nel trasferimento dei database dal vecchio al nuovo server.
Nel caso in cui si fosse scelto un servizio di hosting tradizionale, il provider certamente avrà messo a disposizione delle credenziali personali per l’accesso al server MySQL, SQL Server e così via.
In questo caso, però, il server che accoglierà i database sarà comunque condiviso con molti altri utenti, ugualmente clienti del medesimo provider.

Per fidare su prestazioni più elevate, è possibile installare il server MySQL, SQL Server,… direttamente sulla propria macchina nel caso di server dedicati o cloud.

Nell’articolo Come configurare server cloud Aruba abbiamo spiegato come fare nel caso di MySQL su server Linux ma è possibile fare altrettanto anche su Windows Server (MySQL viene distribuito anche nella versione per sistemi Windows).

L’importante è, in ogni caso, impedire l’accesso root da remoto al server MySQL e, possibilmente, limitare gli utenti che possono amministrare le basi dati in modalità remota.
Se si utilizza un indirizzo IP statico per la connessione a casa o in ufficio (Come ottenere IP statico Telecom), si può ad esempio fare in modo che il server MySQL accetti solamente le connessioni provenienti da tale IP.

Il comando TELNET IP_SERVER 3306 consente ad esempio di verificare da Windows se il server MySQL risponde alle richieste di connessione da remoto (ricordiamo che TELNET non è installato di default nella maggior parte dei sistemi Windows: si dovrà attivarlo manualmente facendo riferimento al Pannello di controllo, sezione Programmi e funzionalità, Attivazione o disattivazione delle funzionalità di Windows, Client Telnet).

Come spostare un sito su altro server

Trasferiti i database sul nuovo server, il consiglio è quello di creare – ad esempio sul server MySQL – un account utente che l’applicazione web (ad esempio il CMS WordPress o Joomla) utilizzerà per accedere alla base dati.

Per configurare rapidamente i database sul server MySQL e gli account utente è possibile installare ed utilizzare l’ottimo phpMyAdmin come spiegato nell’articolo Come configurare server cloud Aruba tenendo presente che è possibile usarlo anche su Windows Server con web server IIS (basta accertarsi che IIS possa elaborare anche gli script PHP: vedere, a tal proposito, queste pagine o valutare l’utilizzo di un pacchetto come Zend Server).
In merito al supporto di PHP in IIS, suggerito di consultare anche questi nostri articoli di approfondimento.

Come spostare un sito su altro server

Come si vede, cliccando sulla voce Utenti in phpMyAdmin, è possibile configurare gli utenti aventi titolo per usare i database MySQL e per configurare il server MySQL. Per ciascun utente è possibile definire i privilegi di comptenza.

Come spostare un sito su altro server

Per l’account utilizzato dal sito web dinamico, suggeriamo di impostare privilegi non troppo ampi ed anzi limitarli a quelli strettamente necessari per il corretto funzionamento dell’applicazione web.

In alternativa, per gestire il server MySQL da remoto o in locale da interfaccia grafica (ad esempio su Windows Server via Desktop Remoto) è possibile installare ed utilizzare l’ottimo MySQL Workbench.

Nella figura, MySQL Workbench è in esecuzione su una macchina Windows Server:

Come spostare un sito su altro server

Cliccando su Users and privileges è possibile gestire utenti MySQL e corrispondenti privilegi.
Le schede Account limits e Administrative roles consentono, rispettivamente, di porre delle limitazioni per la connessione da remoto (il %, ad esempio, consente il collegamento da qualunque IP) e di assegnare o revocare i permessi.

Modificare le credenziali usate dall’applicazione web

Prima di provare il funzionamento del sito web sul nuovo server, bisognerà però aver cura di modificare le credenziali d’accesso utilizzate dall’applicazione web, sia essa un CMS come WordPress o Joomla oppure un sito dinamico sviluppato in proprio.

Nel caso di WordPress e Joomla, per esempio, si dovranno modificare, rispettivamente, i file \wp-config.php e \wp-configuration.php.
Entrambi i file contengono le informazioni utilizzate dall’applicazione web per l’accesso al database MySQL.

Per WordPress sono importantissime le variabili DB_NAME, DB_USER, DB_PASSWORD, DB_HOST: qui dovrà essere specificato il nome del nuovo database da usare, nome utente e password, l’IP del server database (localhost se è in esecuzione sulla stessa macchina)

Come spostare un sito su altro server

Analogamente, nel caso di Joomla, le variabili sulle quali intervenire sono $host, $user, $password, $db.

Come spostare un sito su altro server

Anche qui, bisognerà indicare localhost se il server database è in esecuzione in locale, sulla stessa macchina.

Per spostare un spostare sito WordPress da locale a remoto si debbono seguire gli stessi passaggi, così come nel caso di un’installazione locale di Joomla (vedere anche Come installare WordPress in locale senza fatica).

Provare il sito sul nuovo server

A questo punto, accertandosi che il server web sia correttamente configurato per rispondere alle richieste HTTP, suggeriamo di modificare il file HOSTS di Windows (\windows\system32\drivers\etc) utilizzando un normale editor di testo aperto con i diritti di amministratore.

In calce al file HOSTS di Windows, come ultima riga, si potrà aggiungere:

INDIRIZZO_IP www.nomedelsito.it

Al posto di INDIRIZZO_IP si dovrà indicare l’IP del nuovo server.
Dopo aver salvato il contenuto del file HOSTS così modificato, digitando nel browser web l’indirizzo www.nomedelsito.it, non risponderà più il vecchio server ma la richiesta di caricamento del sito indicato sarà presa in caricato dal web server installato sulla nuova macchina.
Così facendo, si potrà verificare la perfetta funzionalità del sito web spostato sul nuovo server prima di disporre il cambiamento del DNS.

Cambio del DNS e propagazione dei nuovi record

L’ultimo passaggio, previa verifica che tutto sia perfettamente funzionante, consiste nella modifica dei record DNS associati al nome a dominio.
In questo modo, trascorse alcune ore (al massimo 24-48 ore anche se oggi la procedura di propagazione dei DNS spesso si dimostra in avanzato stato di completamento già nel giro di alcune ore…), tutti coloro che digiteranno l’indirizzo mnemonico del sito (www.nomedelsito.it), saranno indirizzati sul nuovo server anziché su quello vecchio.

Il cambio del DNS si concretizza accedendo al pannello di amministrazione del provider che ha in capo la gestione del nome a dominio scelto (Nuovi domini di primo livello: cosa sono e come si registrano) e modificando il record A ossia l’associazione fra indirizzi mnemonici (anche di terzo livello, ad esempio) e IP.

Come spostare un sito su altro server

Attenzione anche alla corretta impostazione dei record MX, utilizzati per la gestione della posta elettronica in arrivo (vedere questi articoli).
Solitamente il provider scelto offre la possibilità di utilizzare i propri server email per la gestione della posta elettronica e, di conseguenza, predispone automaticamente la corretta configurazione dei record MX per il nome a dominio.

Il comando nslookup www.nomedelsito.abc 8.8.8.8 consentirà di stabilire, ad esempio, quando i server DNS di Google riceveranno l’aggiornamento ed adegueranno i propri record.
L’IP 8.8.8.8 può essere ovviamente sostituito con quello corrispondente ai DNS di altri provider per seguire da vicino la propagazione dei nuovi record.

Ti consigliamo anche

Link copiato negli appunti