nyroBlog
Bannière NyroBlog, par Nyro
Image par Nyro - ?

Catégorie : Internet


Howto: Transfer a website

When I wrote this post in French, I just transfered 2 of my website.

Before I started to do it, I looked for an howto like this one to be sure to forget nothing. As I didn't find it, I'm writing it for the others!

Introduction

To be sure everybody understand what we're talking about here, let me explain the problem.
When we want publish a website, we need 2 things: a domain name and a server. The server contains all the websites files (HTML, PHP, Images, etc...)

The domain name is the URL you use to access to our website; nyrodev.info for mu blog for example. This domain name should redirect your visitor to your server to access the files. Your server is reachable through an IP address. The link between your domain name et the IP address is done with the DNS. DNS are online computers which everybody can ask to know the IP address related to a domain name.

The server is here to stock your files. It's basically a computer with some special softwares. A server can contains multiple websites. That mean more than 1 domain name can point to the same server. The choice of the right files in the server will be done via many softwares well parametered for each website. I won't speak about this part here. Most of time the dedicated server provided administration tools to configure automatically every software during the website creation.

My goal is to change the server. I have to transfer the files (images, pages html, etc...), the eventual database and more. At the end, we'll change the IP address where point the domain name to use the new server.

Next you'll see some actions to do that in the good order to don't have problems, by loosing at least at visitors during the transfer time.

In the next of this post:
  • domain.com: The domain name to transfer
  • Server A: old server, where the website is at the beginning
  • Server B: new server

1. Prepare the Basics

The first step of this transfer is to prepare the server B to receive the new website. Create in your administration to get some disk space to receive your files. You can give him directly domain.com to save time. Don't forget to set the mail parameters, FTP, etc... It doesn't cause any troubles[1] as domain.com still points on the old server.

Then you can create the email and email alias that you have on the server A to don't lose any email. Regarding the databases, create them without the tables. This will be done in an other part.

2. File Transfer

For now we can transfer the static files. Don't transfer now the uploaded or dynamic files because the current website is still available in the old server, and some upload can still occurs.

If you have a SSH access on the server A, why don't create a tar.gz archive to group all the files in one compressed, to gain some time?
Go to the directory containing your files, and to create the archive:
tar cvzf DIRECTORY.tar.gz DIRECTORY
Retrieve the file by FTP and send it to the server B, where you should also have a SSH access. In the directory where you uploaded this archive, decompress the file:
tar xvzf DIRECTORY.tar.gz
These files will probably contains some database configurations, .htaccess files with absolute path, etc... Many configurations which will be probably different in the new server. Edit them now.

If you don't have a SSH access, simply retrieve normally your files by FTP. You can make the change in the configurations files before transfer them..

Moreover don't forget about the chmod of the directories where your script has to write some files.

Right now, your website should be ready to use in the new server by simply adding the database content.

3. Temporary Website Closure

To be sure to loose nothing during the transfer, we'll disable the whole website in the server A, just before transferring the database and the dynamic files.

We'll start by closing the whole website by simply using one .htaccess file, denying everything and redirecting to a single text page to explain about the moving. The .htaccess is:
Deny from all

    Allow from all

ErrorDocument 403 http://www.domain.com/transfer.php
And you can create the file transfer.php to explain it's temporary and won't during more than 24 hours.

4. Transfer the Last Elements

Once the website is close, we can transfer the dynamic files. You're sure they won't be new in the old server. You can use the same technique used in the 2nd step.

Now the Database transfer.

If you don't have a SSH access, simply use phpMyAdmin to export your database from the server A to import it in the server B.

If you have a SSH access, it could be better to proceed differently for 2 reasons: the phpMyAdmin export is sometimes buggy, and if your database is too big, phpMyAdmin will give you some timeout errors.

We need only 2 command lines. The first to export the database in a text file in the server A:
mysqldump --host=localhost --user=USER --password=PASS --add-drop-table DATABASENAME > base.sql
Then transfer this base.sql file to the server B and execute this command:
mysql -h localhost -u USER --password=PASS DATABASENAME < base.sql
Your website should be now totally ready in the server B. If you can test it to be sure everything is OK before the final transfer.

5. Edit the DNS

Finally you can do the modification in your domain name to point it to the server B, by editing the IP address in your DNS. And wait for testing. If you want test quicker if everything is good, I strongly recomand to use the DNS server from Open DNS on your computer —why not keep them later?. The gain with Open DNS is they are very fast to update, and you can force it to refresh the cache. Do it for your domain name 15 to 20 minutes later your change.

If they're going to the new IP, refresh your DNS on your computer. For Windows: Start > Execute > cmd. Then type:
ipconfig /flushdns

And finally test on your favorite bowser after clearing your cache too. It should be OK.

During the next few days, you have to retrieve your emails in the both server as some DNS will not be up to date everywhere.


Voilà, I hope this howto will be usefull for you. For sure you have different solution for every step. I simply showed which I used and they worked perfectly for me.
If you have any suggestions, remarks, feedback, don't hesitate to comment here!

Thanks to Niko who advised me during my transfers.

[1] : The only problem you can have —and I experienced— is: If in the server B you have some website or anything else which want send email to domain.com. Actually the server B thought domain.com is hosted by itself. That mean it don't search for the IP where to send the email because it is itself! It's not really a problem if you know that. As you'll finally retrieve your emails in the server B, you'll finally get these emails. Use simply the webmail to check during the transfer.

Version Française de ce billet

Chips, Twix et Mix

Des news d'ici et d'ailleurs :

  • Prism sort en version 0.9
  • Si vous chercher l'extension ultime pour rechercher vos messages dans Thunderbird, Seek est votre ami
  • Firefox sort en beta 4. Encore une beta 5 avant laversion finale. A noter les améliorations de mémoire.
  • IE8 sort en beta
  • Les résultats des navigateurs en beta à l'acid test 3
  • Vous travaillez sur une version mobile d'un site ? Lisez ceci pour connaitre les bonnes pratiques
  • jQuery organise un worldwide sprint ce week-end spécialement pour jQuery UI
  • On parle de plus en plus de Piwik
  • TinyMCE sort en version 3.0.5
  • Netvibes évolue vers le réseau social, sous le nom de Ginger. Ma page est ici, et devrait se remplir ce week-end.
  • Marre de créer vos htaccess à la main ? La solution en ligne.
  • Après l'Air Guitar, Canal Plus lance l'Air Fuck : filmez-vous et gagner un scooter (wahou, un scooter, j'en ai toujours rêver...)
  • Les LoKataires, amis et artistes que j'adore, ont maintenant leur clip, simplement nommé le LoKaclip (Bravo à Pitch pour le montage !)

Chips, Twix et Mix

Des news d'ici et d'ailleurs :

Pas forcément très variés comme info, mais c'est ce qui m'a intéressé ces 2 dernières semaines

PS : J'ai réfléchi longtemps pour le titre (que je n'ai pas encore trouvé en écrivant ça)

Orange/LaPoste, même combat ?

J'étais tranquillement en train de rédiger un rapport pour l'UTBM, que je reçois un mail sur mon compte laposte.net. Une pub indiquant que le webmail a changé, qu'il est super bien, etc...

Comme je suis curieux, je clique bêtement pour arriver sur un site très pauvre en contenu : simplement 3 vidéos, de quoi les partager, et un lien vers un autre site expliquant ce qui est nouveau. Les vidéos sont un temps soit peu rigolotes, mais longues à charger (traverser l'Atlantique n'est pas une chose aisée apparemment).

Après visionnage tant bien que mal des 3 vidéos (oui, je n'ai pas grand chose à faire aujourd'hui), je regarde le site explicatif des nouveautés. Là encore, très peu de contenu : une vidéo présentant rapidement les nouveautés et une FAQ, vraissemblablement reprise du site laposte.net, puisqu'on y retrouve la question : "Comment paramétrer Outlook ?"

Mais dès la 1ère image du webmail, j'ai une sensation de déjà vue. La façon dont sont affiché les listings me rappellent étrangement un autre mail, mais je ne vois pas tout de suite lequel. Et puis à la dernière diapo, celui des préférences, ça me revient : il s'agit du webmail d'Orange.

Ni une ni deux, je me connecte sur les 2 webmails pour faire la comparaison. Aucun doute, il s'agit bel et bien du même webmail.
Préférences du webmail Orange Préférences du webmail Laposte
(Cliquez pour agrandir)

Dans ma lancée, je vais regarder du côté des sources javascript et CSS de laposte, pour en être totalement sûr. Il est tout à fait possible que ce webmail soit une application payante ou bien fourni par un quelconque service. Mais non, voici quelques extraits de ce que j'ai trouvé :

var ORANGE_EMAIL = "LaPoste.Net";
function SmsInbox()
{
 self.location = "http://r.wanadoo.fr/r/WGsmsrecus";
}

Et puis du côté des CSS, j'ai trouvé ceci, tout en tête de la principale feuille de style :

/* Recommandations pour les modifications ATOS en phase d'integration Next
   Indiquer les modifications par :
   ATOS - DEBUT MODIF
   ATOS - FIN MODIF
  + mettre en commentaire l'ancienne ligne */

Et à regarder dans la CSS, on ne trouve que 3 endroits avec ce genre de commentaires. Sans doute la raison pour laquelle les 2 webmails sont si proches.

Mais alors pourquoi tout ça ?

  1. Le coût : La Poste a toujours cherché à promouvoir son outil de messagerie car peu utilisé et donc non rentable. L'installation du webmail Orange par une entreprise tierce est une bonne affaire.
  2. Orange gagne donc de la pub "gratuite". En échange, le webmail affiche de nombreuses pubs pour Orange en haut et à droite.
  3. Les services mobiles. Les options d'alertes SMS et autres fonctionnalités mobiles sont pour l'instant non disponibles. C'est à tous les coups Orange qui va s'occuper de ça et gagner encore quelques sous de plus.

Et au final, je pense que la poste ne gagnera pas grand chose, ni grand monde. Le webmail bien que plus avancé que celui d'avant est selon moins très mauvais d'un point de vue ergonomique. L'affichage des pubs ralentit gravement l'affichage des pages, qui se rechargent d'ailleurs à chaque clique. Pas d'ajax pour recharger les pages ce qui gagnerait du temps. Forcément, il faut bien rafraichir les pubs.

L'email envoyé et leur campagne de pub m'avait l'air sympa et avec un bon budget derrière. Les 2 sites m'ont totalement déçu, avec aucun réel contenu.

De tout façon, quand David Asher arrivera avec la version 3 de Thunderbird et tout un tas de nouvelles idées, adieux les webmails...

Les 8 principes irrésistibles du divertissement

Les 8 principes irrésistibles du divertissement Je suis tombé complètement par hasard sur ce site et j'ai apprécié tout ce qui y est dit, et la façon dont c'est présenter.

Nos amis graphistes apprécieront les transitions et les jeux avec le texte, les couleurs et les contrastes changeant très vite pour mieux relever le sens du propos.

Dommage que la version française soit traduite avec les pieds (ou par un logiciel/site, ce qui revient au même...)

Et faites attention à vos yeux : à la fin de l'animation vous serez redirigé sur une page d'inscription à leur newsletter. Le passage du fond noir au fond blanc peut surprendre...