Ce mémo a été publié le 8 août 2015 et peut contenir des informations qui peuvent être incomplètes, non mises à jour voir erronées du fait de son ancienneté. N'hésitez pas à compléter votre recherche sur des articles plus récents.

Avertissement

Je rappel que les tutoriels présentés doivent permettre de créer une infrastructure web dans un environnement de test, le plus proche possible d’un serveur de production se rapprochant d’un serveur mutualisé chez un hébergeur comme 1&1.

Cette infrastructure présente les bases de la configuration et ne possède aucun moyen de défense contre d’éventuelles intrusions.

Par conséquent, vous êtes seul responsable si vous vous contentez de suivre ce tutoriel pour une mise en ligne d’un serveur web sur internet avec un accès public.

Vous voilà averti, passons aux choses sérieuses.

Introduction

Ce tuto fait parti d’un ensemble qui conduit à créer une infrastructure de serveurs web avec différents rôles en utilisant VirtualBox : “[Tuto – Infrastructure Web – Debian 8] – Présentation et objectifs”.
L’objectif est de mettre en place dans votre vlan un serveur virtuel avec Apache.
Vous devez avoir suivi le « [Tuto – Infrastructure Web – Debian 8] – Le serveur proxy et reverse proxy » pour y intégrer cette VM.
MySQL sera hébergé sur un autre serveur et donc ne sera pas installé sur cette VM.

Cloner la machine gabarit

Dans ce tutoriel, je vais la nommer « jbnet-web01 » et lui attribuer une ip 192.168.2.10.
Lors de la création du proxy, nous avions utilisé l’ip 192.168.2.1 pour la carte eth1.
Cette ip sera utilisée comme passerelle (gateway) dans la configuration de la carte eth0 du serveur web.

Il vous faut tout d’abord cloner et configurer la machine gabarit préparée dans “[Tuto – Infrastructure Web – Debian 8] – La machine gabarit” puis dans “[Tuto – Infrastructure Web – Debian 8] – Cloner et préparer la machine gabarit“.

Pour mémo, voici le fichier /etc/network/interface.d/eth0.conf

La ligne dns-nameservers est paramétrée avec les DNS de chez SFR, mon FAI.
Vous pouvez changer ces valeurs par les vôtres.

Configuration de la VM

Avant de démarrer la VM « jbnet-web01 », il faut faire quelques ajustements dans sa configuration.

Pour la mémoire, 1024 Mo suffisent largement pour commencer.
Si possible, modifier le nombre de processeurs à 2.
Vous pourrez ajuster en fonction des besoins.
Dans « Réseau », vous devez avoir le mode d’accès réseau de la carte 1 positionnée sur « Réseau interne ».

Connexion SSH

Étant donné que la VM n’est pas sur le même réseau que vous, vous devrez d’abord vous connecter en SSH sur le proxy.
Puis, à partir du proxy, vous pourrez vous connecter à la VM « jbnet-web01 »

Commande pour se connecter en SSH à partir de la VM proxy :

A la première connexion, vous devrez confirmer

 

Il ne vous reste plus qu’à vous connecter avec root avec la commande « su -« .

Pour fermer la session, utilisez la combinaison de touche « Ctrl+D », plusieurs fois si nécessaire.

Installer le serveur Web

L’installation d’Apache est identique à l’installation décrite sur le « [Tuto – Infrastructure Web – Debian 8] – Un serveur LAMP« .
A quelques exceptions prés…

Apache

Utilisons Apache, un serveur web très répandu bien que Nginx commence à bien faire parler de lui.
Je vais installer Apache MPM ITK, une variante d’Apache qui est multi-thread et surtout permet d’utiliser des UID et GID différents pour plus de sécurité.

Une fois l’installation terminée, vous pouvez tester votre serveur.
Editez votre fichier hosts et ajoutez (ou modifiez) cette ligne :

Ouvrez un navigateur web, et utilisez cette adresse : http://test.jbnet.lan.
Puisque aucun site web du nom de test.jbnet.lan n’est déclaré sur notre tout nouveau serveur Apache, c’est donc le site par défaut qui est renvoyé.

Apache2 Debian Default Page: It works - Mozilla Firefox_005

Quelques modules à activer :

PHP

Nous allons utiliser PHP5-FPM qui permet d’exécuter des threads php indépendant d’un site web à l’autre avec des utilisateurs différents.

Pour pouvoir utiliser cette version de php, il faut ajouter le module Apache fatcgi :

Puis installons PHP5-FPM avec déjà des modules utiles pour la plupart des sites web :

PHP5-FPM fonctionne avec des fichiers pool qui contiennent la configuration de PHP5-FPM pour un site donné.
Il faut un pool par site web.
Par défaut, le pool www.conf est créé dans le répertoire /etc/php5/fpm/pool.d.

Créez un fichier /var/www/html/phpinfo.php :

Pour le moment, Apache n’a pas encore les directives pour transférer les fichiers php à PHP5-FPM qui les interprétera.
Donc si vous appelez le fichier dans votre navigateur vous aurez une page vide.

Éditez le fichier /etc/apache2/sites-enabled/000-default.conf et ajoutez ces lignes après « DocumentRoot »

Relancez Apache et PHP5-FPM :

Rafraichissez votre navigateur :

phpinfo() - Mozilla Firefox_006

PHP5-FPM fonctionne et qu’il est exécuté à partir du serveur jbnet-web01.

vsFTPd

vsFTPd permet d’avoir accès à votre serveur web par FTP.
Son installation est strictement identique à celle décrite dans le « [Tuto – Infrastructure Web – Debian 8] – Un serveur LAMP« .

Créer un hébergement web

Pour la création d’un hébergement web, je vous renvoies sur le paragraphe « Créer un hébergement web » du chapitre « [Tuto – Infrastructure Web – Debian 8] – Un serveur LAMP« .

N’hésitez pas à également jeter un œil sur les bonus.