Rendre son serveur local disponible

  • warning: array_map(): Argument #2 should be an array in /var/www/titouille.ch/www/modules/system/system.module on line 1050.
  • warning: array_keys() expects parameter 1 to be array, null given in /var/www/titouille.ch/www/includes/theme.inc on line 1845.
  • warning: Invalid argument supplied for foreach() in /var/www/titouille.ch/www/includes/theme.inc on line 1845.
Portrait de titouille

Mon but est tout simple : rendre mon serveur local disponible auprès de mes clients, afin qu'ils puissent voir l'avancement des travaux sans devoir à chaque fois mettre en ligne sur un serveur dédié un clone du site.

Récupération de mon adresse IP publique

Première chose : récupérer mon adresse IP publique. Si je n'ai pas de routeur (la tite boite branchée entre le modem et son ordinateur, qui permet d'en brancher plusieurs sur un seul réseau) je peux aisément récupérer mon adresse publique en allant sur :

Démarrer -> Exécuter

Je tappe "cmd" dans la petite fenêtre qui s'ouvre, et je valide pour ouvrir une "invite en ligne de commande".

Je tappe dans cette invite : "ipconfig" puis je valide, pour obtenir tout un charabia (la configuration de ma carte réseau). Je n'ai plus qu'à identifier la ligne correspondant à mon adresse IP.

Malheureusement, étant possesseur d'un routeur (équipé d'un firewall, waaah) si j'exécute les actions précédentes, je me retrouve avec une adresse du type 192.168.x.x, qui correspond à une adresse ip privée. Pour la petite histoire : une adresse publique est unique pour chaque utilisateur du réseau internet. Une adresse privée, quant à elle, est unique pour chaque utilisateur d'un même réseau interne. C'est le routeur qui détient l'adresse ip publique, et qui distribue les informations aux ordinateurs du réseau via des adresses privées. Ainsi, il n'est pas nécessaire d'avoir autant d'adresse ip publique que de postes, et ça permet de minimiser leur utilisation. (imaginez simplement une entreprise ayant plusieurs milliers d'employés derrières leur ordinateurs, si chacun devait avoir une adresse publique, on aurai vite fait de les épuiser, vu leur forme (xxx.xxx.xxx.xxx)

Bref. Possédant un routeur, je me rends donc sur la page d'administration de ce dernier (en général, 192.168.0.1 ou 192.168.1.1, mais celà peut différer selon les marques), j'insére mes informations de connexion (en général admin/password, admin/admin ou admin/) puis je suis redirigé sur la page d'accueil.

Dans la configuration de base de mon routeur, je trouve mon adresse ip publique : 81.13.xxx.xxx.

Configuration du routeur

Et tant que j'y suis, je vais également configurer mon routeur pour ouvrir l'accès au serveur web. Pour ce faire, je vais sur la page dédiée à cet effet (port forwarding), je sélectionne le service (HTTP, port 80) et j'insère l'adresse ip privée de mon ordinateur (192.168.1.2 d'après la commande ipconfig dans l'invite de commande).

J'insère la nouvelle entrée, je contrôle que c'est bien le port 80 qui est autorisé, puis je peux quitter.

A partir de maintenant, mon serveur est accessible par tous, à partir du moment ou il est lancé. Mais c'est là que les problèmes commencent... Je ne veux pas donner un accès total à tout le monde, j'aimerai restreindre les répertoires accessibles, et surtout les restreindre seulement à certains utilisateurs. Il serait impensable de laisser ma racine web accessible.

Configuration .htaccess

Dans cette optique, ce sont les fichiers .htaccess vers lesquels je me suis tourné.
En 2 mots, un fichier .htaccess est un script placé dans un répertoire, et qui permet d'appliquer des règles d'accès plus ou moins strictes.

Pour ma part, j'ai décidé, d'après la maniabilité de ces fichiers, de bloquer entièrement l'accès de la racine web avec un premier fichier, puis d'autoriser certains répertoires selon l'adresse ip de l'utilisateur qui désire s'y connecter.

Vu que ce ne sont pas des infos que je vais devoir changer tous les jours, je vais rester sur cette optique pour le moment, qui me semble le plus simple. Il est possible de pousser plus loin la technique en créant un fichier .htpasswd, mais je trouve plus contraignant de devoir à chaque fois générer un nom d'utilisateur et un mot de passe que de passer directement par l'adresse ip.

Au final, voici le contenu de mon premier fichier, situé à la racine web :

order deny,allow
deny from all
#
#
#
# autorisation sur l'accès local 
# et mon adresse ip
#
allow from 81.13.xxx.xxx
allow from 127.0.0.1

puis dans n'importe quel répertoire ou je veux une autorisation, je place un fichier .htaccess contenant la ligne suivante :

# adresse ip du/des client(s)
#
allow from xxx.xxx.xxx.xxx

En espérant que ça puisse servir, je pense que je vais surement revenir quelques fois sur cette page Laughing out loud

PS : merci Eric pour tes quelques conseils en la matière Wink




à quoi ça sert qu'on se

à quoi ça sert qu'on se décarcasse à te faire des espaces sur LE serveur alors lol !!!!!!!!

Portrait de titouille

la fête du slip

hahaha Laughing out loud j'attends toujours la fête du slip pour avoir des privilèges de création de base de données sur LE serveur, comme tu dis. Sans ça c'est un peu difficile de mettre en ligne des projets pour les montrer aux clients Tongue Laughing out loud