Créer un serveur web hébergé à la maison

Mars 2013

Normalement, les sites internent sont hébergés sur des serveurs appartenant à un datacenter, géré par un hébergeur comme OVH.

Pour autant, rien n'empêche d'utiliser son ordinateur personnel comme serveur web, cela peut être très pratique pour par exemple faire tester une version bêta d'un site à un petit nombre d'utilisateurs, qui peuvent ainsi accéder à la version développement du site.

Je considère que vous avez déjà un serveur web en local pour développer, auquel vous accédez via http://localhost/, style EasyPHP ou WAMP. L'objet de ce tutoriel, c'est de vous montrer comment rendre ce serveur accessible à tout le monde via internet.

Configurer Apache pour être accessible au public

Pour transformer son ordinateur en serveur, il faut que le serveur web (généralement Apache) soit configuré pour pouvoir répondre aux requêtes HTTP provenant de l'extérieur, c'est-à-dire internet, et pas seulement depuis l'IP locale (127.0.0.1).

Allez dans le fichier de configuration d'apache : httpd.conf (ex: C:\EasyPHP\conf_files\httpd.conf), puis indiquez à Apache d'écouter toutes les IP sur le port 80 :

Listen 80

On peut aussi écrire :

Listen *:80

Vous pouvez aussi choisir un autre port que 80. Simplement, 80 est le port par défaut pour le protocole HTTP, donc on va rester sur ce port dans ce tutoriel.

Configurer le routeur : redirection du port 80

Il y a de fortes chances pour que votre ordinateur ne soit pas connecté directement à internet. Il l'est par l'intermédiaire d'un routeur (les FAI appellent ça une "box" : Freebox, Livebox, BBox...).

Plusieurs ordinateurs peuvent accéder à internet via ce routeur, du coup il va falloir configurer le routeur pour que celui-ci transmette les requêtes HTTP venant d'internet (IP publique : WAN) au bon ordinateur (IP locale : LAN), celui sur lequel tourne Apache (EasyPHP / WAMP si vous préférez).

Redirection de port

Techniquement, on appelle cela une redirection de port (on parle aussi d'ouverture de port mais c'est un abus de langage, on ne peut ni ouvrir ni fermer un port). Dans le cas présent, on va rediriger le port 80 du routeur vers le port 80 du serveur web.

Pour faire ça, il faut aller sur le site d'administration de votre routeur. En général on y accède via http://192.168.1.1/ ou http://192.168.0.1/, mais ça dépend des constructeurs. Je vous invite à chercher sur Google pour votre box ou votre routeur.

Cette page peut vous intéresser : supprimer toute la ligne dans excel à lire tout de suite !

Une fois le port redirigé, tout le monde pourra accéder à votre serveur web grâce à son IP, exemple: http://86.208.196.193/.

Pour connaître son adresse IP publique, utiliser ce site : http://monip.org/.

Désactiver le firewall

Il se peut qu'un firewall logiciel (comme le pare-feu de windows ou zone alarm) bloque le port 80 entrant, du coup le serveur ne marchera pas, car il ne recevra aucune requête HTTP. Si ça ne fonctionne pas, essayez de désactiver au moins temporairement le firewall pour voir si c'est la cause du problème.

DNS dynamique

L'inconvénient de cette technique est qu'il faut connaître son adresse IP, en plus chez certains FAI comme orange, celle-ci change régulièrement. Pour remédier à ce problème, vous pouvez utiliser un service de DNS dynamique comme DynDNS qui vous fournira un nom de domaine "propre" du style mon-domicile.dyndns.info. La majorité des box et routeur gère ce service et s'occupent de notifier DynDNS des changements d'IP. Votre hébergement maison sera alors accessible via : http://mon-domicile.dyndns.info/.

Quelques conseils

Héberger son site internet chez soi n'est pas spécialement une bonne idée, hormis les utilisations que j'ai citées au début (tester une version développement). Pour avoir un hébergement de qualité, il faut d'abord une bonne connexion internet avec un début d'upload élevé, ce qui n'est le cas qu'avec la fibre optique.

Ensuite, il faut un système stable qui ne redémarre pas souvent, et qui soit allumé en permanence. Un hébergement mutualisé coute une vingtaine d'euros par an et peut déjà accueillir un trafic conséquent.

Encore faim ? allez lire ça : composition gourmande !

8 commentaires :
commentaire n°3033 par a70m
a70m mardi 31 mars 2015, 09:17
Bonjour,

J'ai fait la même chose avec mon Raspberry, et ça fonctionne bien. Mais n'y a-t-il pas une solution pour pouvoir accéder au serveur depuis le DynDNS même quand on est en local ? Un script PHP ou ... ?

Car quand je suis à l'extérieur de mon réseau, je l'attaque avec le DynDNS, mais en local, il aboutit sur l'interface de la Box. Pour l'attaquer en local, je dois obligatoirement l'attaquer avec son IP LAN.

Est-ce possible ?

Cordialement,
a70m
commentaire n°3067 par Galdon
Galdon lundi 4 mai 2015, 21:17
Ça dépend de ton routeur ça, je me souviens que ça fonctionnait avec une livebox pro mais que ça ne fonctionnait pas avec d'autres routeurs.

C'est une fonctionnalité qui s'appelle NAT loopback, ou NAT hairpinning. Tous les routeurs ne le gèrent pas, il faut chercher dans le manuel.
commentaire n°3362 par Mika
Mika jeudi 11 août 2016, 19:10
Bonjour, ton tuto sa concerne une page web vu pour la france (?) mais comment on fait pour qu'elle soit vu dans le monde entier stp
commentaire n°3489 par RAHAJA
RAHAJA samedi 8 avril 2017, 12:02
je voudrais savoir comment configurer un serveur sous windows server 2012.marci
commentaire n°3541 par jude ciz
jude ciz mardi 24 octobre 2017, 17:48
monsieur rahaja, installe d'abord ton système dans la machine et après tu parcours en configurant quelques protocoles de la configuration d'un serveur sous Windows server 2012. je suis pas trop fort en configuration, je cherche aussi comment peut-on s exercer ensemble. est ce que vous pouvez avoir une idée concernant l’hébergement en local?
commentaire n°3540 par ciz
ciz mardi 24 octobre 2017, 17:39
je voulais juste avoir quelques aides comment ce fait l'hebergement d'un site web en local
commentaire n°3542 par jude ciz
jude ciz mardi 24 octobre 2017, 18:00
bonsoir les amis. j'aimerai avoir vos aides
commentaire n°3573 par nazim
nazim samedi 20 janvier 2018, 01:11
Bonjour,

J’ai suivi le tuto, mais impossible d’uploader une photo un tant soit peu volumineuse.
L’erreur dans la console du navigateur est « Nginx 413 Request Entity Too Large ».

Après une brève recherche, la solution est d’éditer de le fichier /etc/nginx/nginx.conf et, dans la section « http », d’ajouter la ligne
client_max_body_size 20M;
(20 Mo pour rester dans logique du tuto)

Cordialement,

Jérôme Lambert.
.<a href="https://9apps.ooo/";>9Apps</a> <a href="https://vidmate.vip/";>VidMate</a> & <a href="https://getmobdro.com/";>Mobdro</a>
facultatif
Facebook Twitter RSS Email
Forum Excel
Venez découvrir le nouveau forum excel question/réponse à la stackoverflow.com !
Forum Excel
hit parade n'en a rien a foutre du W3C Positionnement et Statistiques Gratuites Vincent Paré