Comment héberger son site web statique sur un VPS (OVH)

developpement sept. 19, 2017

La dernière fois, une personne m'a proposé d'écrire un article sur l'installation de Ruby on Rails sur un VPS. J'ai trouvé l'expérience simple, sympa et intéressante !

L'idée est tellement sympa que je me récemment suis dit :

Pourquoi ne pas écrire le même article mais pour héberger un site web statique (HTML+CSS) !

Nous allons donc voir ici comment préparer un VPS pour cela !

Acquisition du VPS

Je n'ai rien changé à cette partie, elle est commune avec l'article sur l'hébergement d'une application Ruby on Rails !

La première étape consiste à acheter un VPS. Pour des tests, le premier prix chez OVH (ou n'importe quel hébergeur, mais j'aime beaucoup OVH qui permet d'avoir 100% de dispo (pour le moment dans mon cas !) et cela suffit largement :
vps ssd cloud
Ensuite, il faut acquérir un nom de domaine, la encore, OVH propose une offre intéressante :
domain

Ce qui nous monte le total de l'opération à 49,668€ TTC pour une année. Sachant qu'il sera possible d'installer plusieurs site sur ce VPS, c'est assez rentable (je trouve) !

Une fois ce processus d'achat terminé (je ne le détaillerais pas, il est relativement simple). Il vous faut configurer le VPS !

Configurer son VPS

Idem ici, rien de nouveau

Un VPS ne mets que quelques minutes à être prêt mais il faut le configuré, il arrive nu et il vous faut choisir (durant la phase d'achat) une distribution. Je vous conseille fortement la distribution linux debian qui est la plus robuste pour faire de l'hébergement web !
Vous devriez arriver sur cet écran :
vps new
Vous avez donc :

  • un nom (modifiable), j'ai laissé Serveur 2
  • une localisation
  • une distribution (je vous conseille debian 9)
  • une clé ssh à configurer (on reviendra sur cette étape cruciale)
  • des options avancées (qui ne nous intéressent pas ici)
  • le type de facturation (à l'heure ou au mois)

Une fois que c'est fait, passons à la génération d'une clé SSH pour se connecter au VPS !
Pour éviter de refaire ce qui est bien fait, je vous propose pour cette étape de suivre le guide OVH sur le sujet, ici.

Il vous faudra donc le logiciel putty pour gérer votre VPS (disponible ici).
La première configuration nous donne quelque chose comme ça :
putty
Il vous faudra rentrer ici l'adresse IP de vos VPS et votre clé privée ici :
putty clé
une fois que vous cliquerez sur Open vous devriez avoir le message suivant :
vps ssg first
Il vous suffit de l'accepter (il vous annonce que vous vous connectez à un nouvel hôte distant et que la clé du serveur sera mise en cache pour les prochaines fois).

La fenêtre de connexion s'ouvre alors et vous demande votre login (il s'agit de debian en minuscule) et enfin vous arrivez sur votre VPS :
vps shell

Premier pas avec le VPS

Idem ici, rien de nouveau

La première chose à faire est de s'assurer que le VPS est à jour en utilisant la commande sudo apt-get update qui va mettre à jour vos dépôts de paquets puis la commande sudo apt-get upgrade qui va mettre à jour les paquets installés sur votre VPS, cela prendre quelques secondes et vous aurez un affichage de ce type en sortie :
update
S'il vous est posée une question, répondez oui (y) !

Vous avez un VPS à jour, mais il n'est pas accessible de l'extérieur. Autre problème, comment y déposer vos fichiers ?

Installation de Apache

Apache est un des serveurs web le plus utilisé dans le monde. Il permet de gérer les requêtes HTTP et leurs réponses (plus d'infos sur la page wikipédia) et in fine d'afficher vos pages HTML de façon lisible aux navigateurs. Ce serveur va également "servir" les pages CSS qui permettrons au navigateur d'effectuer la mise en page ! Bien entendu, les images et autres média seront également servis au navigateur ! Je vous laisse lire plus en détail la littérature sur le sujet !

Pour installer Apache, il suffit, maintenant que nos repositories sont à jours, d’exécuter la commande sudo apt-get install apache2 et d’accepter les diverses dépendances qui vous seront proposées.

Le serveur Apache se lance automatiquement !
On peut maintenant aller sur http://ip_de_notre_vps et admirer la page de configuration d'apache !!

Lancer notre site web

Bon maintenant que l'on a fait tout ça, comment fait-on pour accéder à notre page web ? Enfin plus précisément, comment déposer nos fichiers dans le répertoire /var/www/html qui nous est indiqué par la jolie page par défaut d'Apache ?
defaut apache page

Simple, il faut utiliser filezilla et envoyer nos fichiers dans un répertoire de notre VPS.
Pour cela il faut configurer cet outil (disponible ici, attention l'installeur officiel propose un logiciel secondaire non nécessaire, quand il vous sera demandé, "passez" son installation) comme ceci :
filezilla
Dans le premier cadre bleu, entrez l'ip de votre VPS et dans le second votre clé SSH !

Une fois connecté, vous arriverez ici :
dossiers
Naviguez sur la droite vers le dossier /var/www/html et vous arriverez normalement à un affichage comme celui-ci :
var www filezilla

Maintenant, vous allez me dire que si vous essayez d'envoyer un fichier de l'écran de gauche vers celui de droite, il refuse et vous affiche un message pas top du style Erreur : /var/www/html/home.html: open for write: permission denied et Erreur : Échec du transfert du fichier. On va dire que c'est normal !

Pourquoi ?
Et bien, on a fait l'installation avec la commande sudo qui permet une élévation de privilège, il faut donc retourner sur notre VPS et lancer la commande sudo chown debian /var/www/html. Oui, je sais, c'est sale, mais l'objectif est de se monter un VPS rapidement ! La prochaine étape sera de la sécuriser et de le faire proprement !

Une fois la commande lancée, il ne reste plus qu'à copier les fichiers html de la partie gauche vers la partie droite et c'est partie !

Accéder à notre page

Maintenant que la page est en ligne, comment y accéder ??
Si l'on tape http://ip_de_notre_vps nous arrivons sur la page index.html par défaut d'apache. Si nous avons mis une page nommé index.html et que nous avons écrasé l'ancienne, pas de soucis. Sinon, il faut taper le nom de la page en fin d'adresse : http://ip_de_notre_vps/home.html pour une page s'appelant home.html !
apache html app

Mettre en place le nom de domaine

Idem ici, rien de nouveau

Il ne reste plus qu'une étape !! Lier notre nom de domaine à notre VPS de façon à avoir une jolie adresse du type http://www.monsuperdomain.fr au lieu d'avoir à taper une adresse IP...

Pour cela, il faut se rendre dans le manager OVH et se rendre dans la section WEB puis Domaines et cliquer sur le nom de notre domaine :
ovh domaines

Enfin, il faut se rendre dans la partie Zone DNS et cliquer sur le bouton "Ajouter une entrée" :
entrée dns
Ici il faut choisir une entrée A :
entrée A
Ici il faut entrer le nom que l'on veut (avant le domaine) comme www.monsuperdomaine.fr ou web.monsuperdomaine.fr ou encore dev.monsuperdomaine.fr dans le champ sous-domaine. Ensuite il faut spécifier la cible qui est l'adresse IP du VPS.

Il en reste plus qu'à attendre quelques minutes (généralement) et vous pourrez accéder à votre application via http://www.monsuperdomaine.fr

Voilà, le tour est joué !

Nous verrons dans un prochain article comment sécuriser cette installation avec un outil très connu des développeurs : NGINX ainsi qu'un certificat qui permettra d'avoir une adresse en https://www.monsuperdomaine.fr, ce qui est bien mieux :)