rapport d'installation de linux engine x mariadb php5

17
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

Upload: mame-cheikh-ibra-niang

Post on 12-Apr-2017

99 views

Category:

Technology


1 download

TRANSCRIPT

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

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.

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

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

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

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

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

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

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

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

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.

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

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

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

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

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

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