Serveur WEB (LAMP)

Objectif et environnement

Objectif

L’installation et configuration d’un serveur LAMP.

Environnement

Matériels :

  • Dell PowerEdge r240 avec Proxmox 7.1-7

Adressage des VMS :

  • Réseaux : 172.16.0.0/16

  • Serveur CT-DEB-WEB : 172.28.1.208/16

Documentation

Un serveur LAMP c’est quoi ?

_images/image549.png

C’est une pile logicielle comprenant le système d’exploitation, un serveur HTTP, un système de gestion de bases de données et un langage de programmation interprété, et qui permet de mettre en place un serveur web.

Fonctionnement de l’arborescence d’apache

_images/image550.png

Il y a deux arborescences à prendre en compte :

  • /var/www/

De préférence, il est recommandé de placer les sites internet à cet endroit. Celui par défaut d’apache est le dossier html, c’est le fichier index.html qui est visé et afficher lorsque je tape l’adresse du serveur.

  • /etc/apache2 :

C’est là que ce trouve les fichiers conf qui constitue le service web.

Le fichier chuck-norris.conf est représenté car il est utilisé dans le cadre du TP pour montrer la mise en place d’un site (cf.).

Indication

Pour le TP j’ai rajouté un second dossier avec les fichiers nécessaire pour un site internet.

Eléments a prendre en compte dans /etc/apache2

_images/image551.png

Il y a dans apache une notion de fichier « disponible » et « actif », les fichiers conf dit disponible doivent être activé pour être consultable sur le navigateur internet (sans avoir a tapé l’URL).

Par exemple dans le cas du fichier 000-default.conf qui est disponible et activé, tout changement édité sur le fichier dans un des deux dossiers sera effectué sur son homologue.

Processus

Installation d’Apache 2

J’installe apache avec un module qui permet de gérer PHP.

apt install apache2 libapache2-mod-php

Je vérifier le bon fonctionnement du serveur web qui normalement renvoie la page d’accueil de apache2 (version Debian).

_images/image552.png

Je configure le service apache2 pour qu’il démarre automatiquement au démarrage du centenaire.

systemctl enable apache2

J’active des modules apaches :

a2enmod rewrite  
a2enmod deflate  
a2enmod headers

Puis je recharge la configuration avec la commande suivante :

systemctl reload apache2

Cette commande permet de recharger la configuration d’apache sans pour autant avoir besoin de relancer entièrement le service.

Pour voir la liste des modules activé je vais dans /etc/apache2/modes enabled

_images/image553.png

Comme on peut le voir avant et après l’activation de certains modules, le contenu du dossier a changé.

Installation de Php

J’installe les packages de Php ainsi que les modules php les plus courants :

apt install php php-cli  
apt install php-{curl,gd,intl,memcache,xml,zip,mbstring,json}

Pour interagir avec SQL :

apt install php-mysql

Pour tester le bon fonctionnement de Php je crée un fichier test.php

echo "\<?php phpinfo(); ?\>" \> /var/www/html/test.php
_images/image554.png

Dans la barre de recherche d’un navigateur je tape l’adresse de mon serveur web suivant de test.php, soit :

http://172.28.1.206/test.php

_images/image555.png

Il s’agit de la page récapitulant la configuration de php (version 7.4.30).

Je peux éditer les options de PHP via le fichier /etc/php/7.4/apache2/php.ini ou créer un fichier personnalisé dans /etc/php/7.4/apache2/conf.d.

Mais je n’ai pas l’utilité de changer les options, je laisse donc php en configuration par défaut.

Installation de MariaDB (optionnel)

Je choisis d’installer et utiliser MariaDB pour la base de données du serveur LAMP.

MariaDB étant le fork1 de mySQL, le fonctionnement de MariaDB fonctionnement est similaire a mySQL.

1 Un fork (terme anglais signifiant « fourche », « bifurcation », « embranchement ») désigne dans le jargon informatique, un nouveau logiciel créé à partir du code source d’un logiciel existant.

J’installe le package :

apt install mariadb-server

Je démarre l’installation :

mysql_secure_installation

Change the root password? [Y/n] Y
New password: __________
Re-enter new password: __________
Password updated successfully!
Remove anonymous users? [Y/n] Y
Disallow root login remotely? [Y/n] Y
Remove test database and access to it? [Y/n] Y
Reload privilege tables now? [Y/n] Y

Pour entrer dans la base de données :

_images/image556.png

Création d’un utilisateur admin.

_images/image557.png

J’active mariaDB au démarrage :

systemctl enable mariadb

Rendre disponible une page web

Je dois créer un fichier conf contenant le virtualhosts du site chuck-norris à mettre en place.

Exemple avec le fichier 000-default.conf :

_images/image559.png

nano /etc/apache2/sites-available/chuck-norris.conf

Fichier chuck-norris.conf créer :

_images/image560.png

En suite avec la commande suivante j’active le site :

a2ensite chuck-norris
a2dissite pour le désactivé

Puis je recharge apache 2 :

systemctl reload apache2

Vérification de l’activation du site

Note

Apache par défaut cherche automatiquement un fichier index.html à afficher.

Ceci est propre à la configuration du réseau de production sur lequel je suis, cependant il faut bien renseigner le DNS pour rendre accessible le site sans avoir a tapé l’adresse IP.

_images/image561.png

Le CNAME est www car il est renseigné ainsi dans le virtualhost du fichier chuck-norris.conf :

Note

Je n’aborderai pas dans cette documentation la possibilité du faire du multisites sur ce service web.

Je renseigne l’adresse du site et vérifie sa disponibilité.

_images/image563.png

La page est bien chargée et affichée, il ne s’agit que d’une page html basique afin de vérifier le bon fonctionnement du service web délivré par serveur LAMP sous conteneur.

Intégrer le serveur WEB dans Active Directory

_images/image148.png

NB : le procédé d’intégration est expliqué dans le chapitre Active Directory.

Conclusion

Le serveur LAMP est installé et configuré. Actuellement le serveur web n’utilise pas de base de données, mail elle est installé en mesure d’être configuré pour une utilisation ultérieure.

  Pierre & Zoltan v: 0.1
Sur Pierre & Zoltan
Home
Sur GitHub
View
Search
Hosted by GitHub ·