Page 1
REPUBLIQUE DU SENEGAL
Un peuple-Un But-Une Foi
Institut Supérieur d’Informatique
Rapport d’installaton de
LEMP sur CentOS 7 & Debian 8
Professeur : Mr LO
Présentés par
Mr Mame Cheikh Ibra NIANG
Mamadou Lamine DIAO
Latifa BARRY
Master 1 Réseaux et Systèmes Informatiques
Année académique : 2015-2016
Page 2
INSTALLATION ET CONFIGURATION DE LEMP SUR CENTOS 7 & DEBIAN 8
Master 1 Réseaux et Systèmes Informatiques Professeur : Mr Lo
Introduction
Dans cette présentation, nous allons déployer le serveur LEMP(Linux EngineX MariaDB
PHP)pour ce faire nous allons commencer par définir les concepts avant de faire
l’implémentation
Linux
1. Définition
GNU/Linux est le nom parfois donné à un système d'exploitation associant des éléments
essentiels du projet GNU et d'un noyau Linux. C'est une terminologie créée par le
projet Debian et reprise notamment par Richard Stallman (« rms »), à l'origine du projet
de travail collaboratif GNU, lequel manquait encore d'un noyau de système
d'exploitation pour en faire un système d'exploitation complet lors de la création
du noyau Linux, en 1991. Des systèmes complets prêts à l'emploi, réunissant les deux
pièces, sont alors apparus, comme la distribution Debian.Dans le langage courant on
trouve souvent l'emploi du terme « Linux » seul pour désigner une distribution du
système d'exploitation GNU/Linux, ce qui peut porter à confusion étant donné qu'il
existe quelques systèmes fondés sur Linux mais pas sur GNU (par exemple : Android,
cela lui permettant d'éviter certaines clauses de la licence GNU).
2. Information
Le 27 septembre 1983, Richard Stallman dévoile dans la pure tradition hacker son
projet de développer un système d’exploitation compatible UNIX appelé GNU1, en
invitant la communauté hacker à le rejoindre et participer à son développement. Cette
annonce succède à la « guerre » déclarée par Symbolics au laboratoire d’intelligence
artificielle du MIT et à la disparition de la communauté hackerLisp2. Il annonce que le
système pourra être utilisé et partagé librement par tous comme ce fut le cas
avec Emacs3. Concrètement il relate l’effort à accomplir, dont on distingue déjà
en 1985 certaines pièces maîtresses : le compilateur GCC finalisé dès juin 19843, une
version emacs compatible UNIX, etc. L’effort sera opiniâtrement poursuivi, et au début
des années 1990, le projet GNU possède une version utilisable de tous les éléments
nécessaires à la construction d’un système d’exploitation (outre ceux cités
précédemment : unshell, des bibliothèques, les composants de base, les outils de
développement…) à l’exception du plus central : le noyau.
Page 3
INSTALLATION ET CONFIGURATION DE LEMP SUR CENTOS 7 & DEBIAN 8
Master 1 Réseaux et Systèmes Informatiques Professeur : Mr Lo
Engine X
1. Définition
Nginx [engine x] est un logiciel libre de serveur Web (ou HTTP) ainsi qu'un proxy
inverse écrit par Igor Sysoev, dont le développement a débuté en 2002 pour les besoins d'un
site russe à très fort trafic (Rambler). Une partie de la documentation a été traduite du russe
vers l'anglais.
2. Information
Nginx est un serveur asynchrone par opposition aux serveurs synchrones où chaque
requête est traitée par un processus dédié. Au lieu d'exploiter une architecture parallèle
et un multiplexage temporel des tâches par le système d'exploitation, Nginx utilise les
changements d'état pour gérer plusieurs connexions en même temps ; le traitement de
chaque requête est découpé en de nombreuses mini-tâches et permet ainsi de réaliser un
multiplexage efficace entre les connexions. Afin de tirer parti des ordinateurs
multiprocesseurs, plusieurs processus peuvent être démarrés. Ce choix d'architecture se
traduit par des performances très élevées, mais également par une charge et une
consommation de mémoire particulièrement faibles comparativement aux serveurs
HTTP classiques, tels qu'Apache.
Nginx est très modulaire : un noyau minimal et des modules, nombreux, venant
compléter les fonctions de base. Chaque module peut agir comme un filtre sur le
contenu en entrée, en sortie ou intermédiaire (proxy) par le biais de
nombreuses callbacks. Ainsi, à titre d'exemple, un contenu dynamique peut être
compressé à la volée par le module « gzip » avant envoi.
Ces modules sont liés au serveur lors de la compilation. Nginx ne supporte pas les
bibliothèques dynamiques partagées. Tengine, le fork de nginx de Taobao a ajouté
cette fonctionnalité, qui n'a pas été reportée sur nginx
Page 4
INSTALLATION ET CONFIGURATION DE LEMP SUR CENTOS 7 & DEBIAN 8
Master 1 Réseaux et Systèmes Informatiques Professeur : Mr Lo
MariaDB
1. Définition
MariaDB est un système de gestion de base de données édité sous licence GPL. Il
s'agit d'un fork communautaire de MySQL : la gouvernance du projet est assurée par
la fondation MariaDB3, et sa maintenance par la société Monty Program AB, créateur
du projet4. Cette gouvernance confère au logiciel l’assurance de rester libre.
2. Information
En 2009, à la suite du rachat de MySQL par Sun Microsystems et des annonces du
rachat de Sun Microsystems par Oracle Corporation, Michael Widenius, fondateur
de MySQL, quitte cette société5 pour lancer le projet MariaDB, dans une démarche
visant à remplacer MySQL tout en assurant l’interopérabilité. Le nom vient de
la 2e fille de Monty Widenius, Maria (la première s'appelant My)6.
L’encyclopédie libre Wikipédia annonce, fin 2012, la migration de MySQL à
MariaDB7. Les distributions Linux, comme Fedora ou OpenSuse, abandonnent elles
aussi MySQL. En septembre 2013 Google annonce l'adoption de MariaDB en lieu et
place de MySQL. Dans la foulée un des ingénieurs de Google est affecté à
la Fondation MariaDB8.
Un consortium baptisé « Open Database Alliance » a par ailleurs été créé pour assurer
le développement du logiciel (comparable à la fondation Linux avec le noyau Linux).
PHP
1. Définition
PHP: Hypertext Preprocessor5, plus connu sous son sigle PHP (acronyme récursif), est
un langage de programmation libre6, principalement utilisé pour produire des pages
Web dynamiques via un serveur HTTP5, mais pouvant également fonctionner comme
n'importe quel langage interprété de façon locale. PHP est un langage impératif orienté
objet.PHP a permis de créer un grand nombre de sites web célèbres,
comme Facebook, Wikipédia, etc.7 Il est considéré comme la base de la création des
sites Internet dits dynamiques.
2. Information
Le langage PHP fut créé en 1994 par Rasmus Lerdorf pour son site web. C'était à
l'origine une bibliothèque logicielle en C8 dont il se servait pour conserver une trace
des visiteurs qui venaient consulter son CV. Au fur et à mesure qu'il ajoutait de
nouvelles fonctionnalités, Rasmus a transformé la bibliothèque en une
Page 5
INSTALLATION ET CONFIGURATION DE LEMP SUR CENTOS 7 & DEBIAN 8
Master 1 Réseaux et Systèmes Informatiques Professeur : Mr Lo
implémentation capable de communiquer avec des bases de données et de créer des
applications dynamiques et simples pour le Web. Rasmus décida alors en 1995 de
publier son code, pour que tout le monde puisse l'utiliser et en profiter9. PHP
s'appelait alors PHP/FI (pour Personal Home Page Tools/Form Interpreter). En 1997,
deux étudiants, Andi Gutmans et Zeev Suraski, redéveloppèrent le cœur de PHP/FI.
Ce travail aboutit un an plus tard à la version 3 de PHP, devenu alors PHP: Hypertext
Preprocessor. Peu de temps après, Andi Gutmans et Zeev Suraski commencèrent la
réécriture du moteur interne de PHP. Ce fut ce nouveau moteur, appelé Zend Engine -
le mot Zend est la contraction de ZEev et aNDi - qui servit de base à la version 4 de
PHP.
Implémentation :
Installation et Configuration de NGINX sur CentOS
Le service de base est le DNS, donc nous allons tester si notre DNS est fonctionnel :
Notre DNS est fonctionnel donc on peut passer à l’installation de NGINX
Nous allons installer les paquets à travers EPEL
Page 6
INSTALLATION ET CONFIGURATION DE LEMP SUR CENTOS 7 & DEBIAN 8
Master 1 Réseaux et Systèmes Informatiques Professeur : Mr Lo
Une fois l’installation terminée, on peut passer à la configuration du serveur NGINX
Pour ce faire on édite le fichier /etc/nginx/nginx.conf
Modifier la ligne 38 en y mettant le nom du serveur, c’est-à-dire le domaine
Ensuite on redemarre et active NGINX
A ce stade nous pouvons aller sur une machine cliente pour tester si notre serveur web est
fonctionnel
On tape le domaine et le serveur nous renvoit cette page
Vu que notre serveur est fonctionnel, nous allons le sécuriser.
Sécurisation du serveur Web NGINX
Création du certificat
Il faudra créer un certificat pour sécuriser nore serveur web
Page 7
INSTALLATION ET CONFIGURATION DE LEMP SUR CENTOS 7 & DEBIAN 8
Master 1 Réseaux et Systèmes Informatiques Professeur : Mr Lo
Une fois le certificat créé, il faut éditer le fichier de configuration /etc/nginx/nginx.conf
Il faut ajouter les lignes 40 ; 41 et 42 à la section server
Ensuite redemarrer le service
Nous voyons que maintenant notre serveur fonctionne en HTTPS
NB : avec nginx, il faut mettre les pages web dans /usr/share/nginx/html
Installation et Configuration de MariaDB sur CentOS
Il faudra installer les paquets
Une fois les paquets installés, nous allns executer l’outil myql_secure_installation pour
parametrer le serveur selon nos besoins
Page 8
INSTALLATION ET CONFIGURATION DE LEMP SUR CENTOS 7 & DEBIAN 8
Master 1 Réseaux et Systèmes Informatiques Professeur : Mr Lo
Connexion
Pour se connecter , il faut tapper la commande suivante
On nous demande le mot de passe. Le mot de passe est celui qui a été spécifié lors de la
configuration de mariadb avec mysql_secure_installation. Si on avait pas mis de mot de
passe on valide directement.
En ce moment nous pouvons faire toutes nos opérations sur la base de données avec des
requêtes SQL
Nous allons créer une base de données qui va nous permettre de faire des insertions
ultérieureement à partir d’une formulaire et de traitements en PHP
Nous allons passer à la configuration de PHP
Page 9
INSTALLATION ET CONFIGURATION DE LEMP SUR CENTOS 7 & DEBIAN 8
Master 1 Réseaux et Systèmes Informatiques Professeur : Mr Lo
Installation et Configuration de PHP sur CentOS
Pour que notre serveur puisse interpreter les scripts php, nous allons installer les paquets
necessaires
Tous les paqutes et dépendances seront installés
Ensuite on peut passer à la configuration de NGINX pour l’utilisation des scripts PHP
Configuration de NGINX pour utilisation des scripts PHP
Il faudra éditer le fichier suivant
Modifier la ligne 39 et 41 (user nginx, grop nginx)
Ensuite redemarrer php-fpm et l’activer
Page 10
INSTALLATION ET CONFIGURATION DE LEMP SUR CENTOS 7 & DEBIAN 8
Master 1 Réseaux et Systèmes Informatiques Professeur : Mr Lo
Après cela il faudra modifier le fichier de configuration de nginx. Il faudra ajouter ces lignes à
la section server.
Ensuite nous créons une petite page php dans /usr/share/nginx/html pour tester
Donc on crée le fichier info.php
On y met le code suivant
Ensuite on redemarre le serveur nginx et on teste
Pour tester notre script, on tape https://www.lemp.com/info.php et on a
Notre serveur interprète bien les scripts PHP
Page 11
INSTALLATION ET CONFIGURATION DE LEMP SUR CENTOS 7 & DEBIAN 8
Master 1 Réseaux et Systèmes Informatiques Professeur : Mr Lo
Nous avons configuré le serveur Web NGINX, le SGBD MariaDB et PHP, à present nous
allons déployer un formulaire pour insérer des données dans la base de données avec un
traitement en PHP.La table etudiant est créé au préalable.
On crée notre formulaire en HTML
Puis on crée la page de traitement ajout.php
Ensuite nous allons faire le test sur notre client
Rappelons que nous avons mis le formulaire sur la page index.html dans
/usr/share/nginx/html donc c’est la page qui va s’ouvrir lorsque acccede au site.
Page 12
INSTALLATION ET CONFIGURATION DE LEMP SUR CENTOS 7 & DEBIAN 8
Master 1 Réseaux et Systèmes Informatiques Professeur : Mr Lo
Voila le formulaire. Nous allons saisir les données et valider
L’insertion a été bien faite
Nous avons aussi ecrit un script liste.php pour afficher tous les etudiants
On fait une requête select sur la console MariaDB
Page 13
INSTALLATION ET CONFIGURATION DE LEMP SUR CENTOS 7 & DEBIAN 8
Master 1 Réseaux et Systèmes Informatiques Professeur : Mr Lo
Installation sur debian 8
Installation et configuration de nginx
Ensuite il faudra redemarrer le service et l’activer
Ensuite on teste et le serveur nous rencoit la page suivante
Le serveur marche nous allons donc passer à sa sécurisation et à la personnalisation de la page
Sécurisation du serveur Web NGINX
Nous avons déjà un certificat et une clé privée donc nous allons indiquer cela au serveur
Décommenter les lignes 22 et 23 ensuite ajouter les lignes 24 et 24. Modifier aussi la ligne 32
Page 14
INSTALLATION ET CONFIGURATION DE LEMP SUR CENTOS 7 & DEBIAN 8
Master 1 Réseaux et Systèmes Informatiques Professeur : Mr Lo
On redemarre à nouveau le serveur
Ensuite on peut tester
Ainsi nous avons sécurisé notre serveur et personnalisé sa page.
Installation et Configuration de PHP sur Debian 8
Il faut installer les paqutes php
Surtout le paquet php5-fpm, il permettra au serveur nginx de pouvoir interpreter nos scripts
PHP.
Ensuite il faut modifier le fichier /etc/nginx/sites-availabes/default
Décommenter les lignes 47, 48, 53 et 54
Page 15
INSTALLATION ET CONFIGURATION DE LEMP SUR CENTOS 7 & DEBIAN 8
Master 1 Réseaux et Systèmes Informatiques Professeur : Mr Lo
Ensuite redemarrer nginx et php5-fpm
Nous allons créer un petit script php qui affiche les infos PHP sur une page web
On y met le code suivant
Ensuite on accède à la page et on aura le resultat
Installation et Configuration de MariaDB sur Debian 8
Il faut installer les paquets
Ensuite on configure en passant par mysql_secure_installation selon nos besoins
Page 16
INSTALLATION ET CONFIGURATION DE LEMP SUR CENTOS 7 & DEBIAN 8
Master 1 Réseaux et Systèmes Informatiques Professeur : Mr Lo
Il faudra ensuite redemarrer le serveur
Nous allons à present nous connecter
Nous allons créer une base de données gest_etu
Ensuite il faut créer la table etudiant
Ensuite nous allons ecrire des scripts PHP pour insertion et la liste des etudiants
Page 17
INSTALLATION ET CONFIGURATION DE LEMP SUR CENTOS 7 & DEBIAN 8
Master 1 Réseaux et Systèmes Informatiques Professeur : Mr Lo
On remplie et on fait l’insertion
On peut aussi afficher la liste des etudiants