Étudiant BTS SIO SLAM

Web Developer &
Programmer

Crafting Powerful Web Applications.
Développement Web • Systèmes & Réseaux • Solutions numériques.

class Developer {   constructor() {     this.name = "Gaëtan Arnaut";     this.skills = ["HTML", "CSS", "PHP", "SQL"];     this.skills = [Ipv4, Ipv6, "DNS", "SSH"];   } } const portfolio = new Developer();

À propos de moi

Profil & Objectifs

Étudiant en BTS SIO SLAM (2025–2027) à Charles de Foucauld, Brest.
Passionné par le développement web et les systèmes, je suis curieux, ambitieux et déterminé.

Recherche de stage :
5 semaines du 18/05/2026 au 19/06/2026.

Compétences Techniques

HTML5 / CSS3 JavaScript PHP Python SQL / MySQL Docker VirtualBox Linux Git Azure

Featured Work

🌐

Projet Zatovo

Création d'un site web complet pour une association, incluant base de données et gestion dynamique.

🔐

Virtualisation & Sync

Mise en place de machines virtuelles et synchronisation sécurisée avec Syncthing et clés de sécurité.

🐧

Installation d'un LEMP

Guide complet pour comprendre et installer la stack LEMP (Linux, Nginx, MariaDB, PHP).

Projet Zatovo

Contexte : Création d’un site web pour l’association Zatovo.

  • Développement Frontend : HTML5 & CSS3 pour une interface responsive.
  • Backend : Connexion à une base de données SQL pour gérer les contenus.
  • Fonctionnalités : Gestion des données dynamiques (membres, événements).

Aperçu en direct

Virtualisation & Synchronisation

VirtualBox

Objectif : Sécuriser et optimiser les environnements de travail.

  • VirtualBox : Déploiement et configuration de VMs (Debian, Windows Server).
  • Syncthing : Synchronisation P2P sécurisée des fichiers entre postes.
  • Sécurité : Utilisation de clés de sécurité pour l'authentification.

Installation d'un stack LEMP

LEMP Stack

1 – Qu’est ce que LEMP ?

LEMP est l’une des stacks les plus populaires pour faire fonctionner un site internet, possédant de très bonnes performances et des fonctionnalités récentes. C’est un pack d’outils incluant un serveur web, une base de données, et un langage de programmation, le tout fonctionnant nativement avec chaque distribution Linux. Cette stack logicielle peut également fonctionner sous Windows ou Mac.

LEMP est un acronyme signifiant :

  • L : Linux – les serveurs fonctionnent nativement sous une distribution Linux
  • E : EngineX, souvent appelé Nginx – serveur web qui recevra les requêtes de vos visiteurs et les redirigera vers le dossier hébergeant votre site
  • M : MariaDB or Mysql – base de données qui stockera toutes les données (contenus, utilisateurs, configuration, médias..) dont vous aurez besoin sur votre site
  • P : PHP – langage de programmation que vous utiliserez pour développer votre site

2 – Pourquoi auto-héberger votre serveur web ?

Héberger son propre serveur web est généralement une bonne idée pour les sociétés, les administrateurs systèmes, et les développeurs web. Cela apporte certains avantages par rapport à une solution d’hébergement mutualisée qui possède certaines limites :

  • Vous pouvez installer n’importe quel composant, sans être restreint par une liste autorisée
  • Vous pouvez totalement optimiser votre service et changer les configurations systèmes selon vos besoins
  • Vous pouvez contrôler les versions et mises à jour de vos logiciels et composants
  • Vous ne partagez pas les performances et la bande passante avec d’autres clients

Bien sur, cela requiert quelques compétences techniques. Il vous faudra installer, configurer, et maintenir vos serveurs, cela demande plus de travail et de temps qu’une solution d’hébergement mutualisée. Néanmoins, cela est fortement recommandé pour les personnes qui sont prêtes à investir un peu de temps et qui ont (ou souhaitent acquérir) des compétence en administration système.

3 – Alternatives à LEMP

LEMP n’est pas la seule solution possible pour héberger un site web. Il existe de nombreuses stacks, selon votre système d’exploitation et vos composants. Comme LEMP, ils incluent pour la plupart un serveur web, une base de données et un langage de programmation. Voici une liste non exhaustive de solutions existantes :

  • LEMP / WEMP / MEMP : Nginx, Mysql/MariaDB, PHP pour systèmes Linux, Windows ou Mac
  • LAMP / WAMP / MAMP : Apache, Mysql/MariaDB, PHP pour systèmes Linux, Windows ou Mac
  • MEAN : MongoDB, ExpressJs, Angular, NodeJS
  • RAMP : Ruby on rails, Apache, Mysql, Passenger

Afin de choisir celui qui vous correspond le plus, le système d’exploitation et le langage de programmation sont souvent les 2 prérequis à considérer en priorité.

4 – LEMP vs LAMP

LEMP est une déclinaison de LAMP, ce qui signifie que choisir LEMP plutôt que LAMP revient à choisir Nginx à qu’Apache. Les 2 sont fonctionnels, performants et massivement utilisés en tant que serveurs web, il n’y a donc pas de meilleur choix dans l’absolu. Pour un usage classique, cela dépend principalement de vos préférences personnelles.

4.1 – Nginx vs Apache

Comme Lighthttpd avant lui, Nginx est un serveur léger et moderne, offrant de très bonnes performances et implémentant généralement de nouvelles fonctionnalités plus rapidement qu’Apache (comme TLS 1.3).

Il a été conçu dans le but de palier aux principaux défauts d’apache. Il possède une approche asynchrone et non bloquante, au lieu d’un concept basé sur des process et des threads. Cela signifie que Nginx ne créé pas de nouveau process pour chaque requête et obtient donc de meilleures performances (spécialement sous une charge conséquente). Il inclut également les modules lors de sa compilation, et possède un module PHP dans son cœur.

  • Nginx est plus récent et rapide qu’Apache dans leurs versions standards. Il fonctionne plus efficacement sous une charge importante, sans installation de module de cache ou d’optimisations spécifiques
  • Nginx possède moins d’options qu’Apache, mais suffit dans la plupart des cas. Il a été construit avec le philosophie « Faire moins mais mieux »
  • Grace à son design léger, Nginx est plus simple à configurer en tant que serveur statique, mais plus difficile dans un environnement complexe

De mon avis, Nginx est généralement un meilleur choix du à son design et ses performances, sauf si vous possédez de solides connaissances d’Apache, ou avez des besoins très spécifiques.

4.2 – MariaDB vs Mysql

MariaDB et Mysql sont tous deux utilisés dans les stacks LEMP et LAMP. MariaDB est un fork de Mysql, créé par Michal Widenius (également créateur de Mysql), au moment du rachat de Mysql (possédé par Sun) par Oracle. La communauté libre était à l’époque inquiète qu’Oracle puisse changer la licence de Mysql, et a donc créé un fork pour s’assurer que celui ci reste libre et ouvert. MariaDB est sous licence GPLv2 (GNU General Public Licence 2).

MariaDB est entièrement compatible avec Mysql, ce qui signifie qu’il fonctionne exactement de la même manière. Toutes les commandes et options sont identiques (à l’exception des nouvelles fonctionnalités développées par Oracle et réservées à la version commerciale), à la différence qu’elles sont nommées mariadb au lieu de mysql.

5 – Parts de marché de LEMP

  • Nginx est, début 2023, utilisé par plus de 35% des serveurs web dans le monde.
  • Apache est maintenant utilisé par moins de 30% des serveurs.
  • Durant les 5 dernières années, le nombre de serveurs en production utilisant Nginx a augmenté de plus de 20%. Apache lui, est utilisé sur 20% de serveurs en moins.
  • PHP est utilisé par 83% des sites internet dans le monde, augmentant de 6% en 5 ans.
  • PHP8 est sorti en décembre 2020. Son adoption par l'ensemble de la communauté ne cesse de s'accroitre

Installer LEMP

Pour installer la stack LEMP, nous allons installer séparément plusieurs serveurs (services), et ensuite les configurer :

  • Nginx
  • PHP8
  • MariaDB

Avant de commencer, assurez vous que votre serveur d'entrainement (CT-NX-SIOXXX) est à jour :

# apt update && apt upgrade

Maintenant que le serveur est "up-to-date" (à jour)... Nous allons en faire une sauvegarde avant de nous lancer définitivement dans l'installation. A cette fin, nous utiliserons le script de Backup fourni sur votre serveur:

# askforBACKUP.sh

TOUT EST PARFAIT... Nous pouvons commencer !

1 – Installer Nginx

Nous utiliserons la version de Nginx provenant des dépôts officiels de votre distribution, puis optimiserons certaines valeurs par défaut dans le fichier principal de configuration :

apt install nginx

Nous allons à présent "tuner" (affiner) quelque peu la configuration de notre Serveur Web.

#nano /etc/nginx/nginx.conf
                        #Nous allons recopier les 6 lignes suivantes dans la section "http"

                        client_body_buffer_size 10K;
                        client_header_buffer_size 1k;
                        client_max_body_size 8m;
                        large_client_header_buffers 4 16k;
                        fastcgi_buffers 16 16k;
                        fastcgi_buffer_size 32k;

Redémarrez maintenant le service pour appliquer les changements :

#service nginx restart

2 – Installer PHP8

PHP 8.x est la version fournie par défaut sous Ubuntu.

#apt install php8.1-fpm php8.1-mysql php8.1-common php8.1-gd php8.1-cli php8.1-curl php8.1-xml php8.1-zip php8.1-mbstring

Une fois installé, changez ces valeurs :

vi /etc/php/8.1/fpm/pool.d/www.conf

                        pm.max_children = 10
                        pm.max_requests = 200
vi /etc/php/8.1/fpm/php.ini

                        date.timezone = Europe/Paris //Indiquez votre timezone
                        upload_max_filesize = 8M
                        max_execution_time = 60
                        max_input_vars = 5000

Redémarrez maintenant le service pour appliquer les changements :

service php8.1-fpm restart

3 – Installer MariaDB

Maintenant, nous allons installer MariaDB. J’ai choisi dans ce tuto d’utiliser MariaDB plutôt que Mysql pour la pérennité de sa licence, mais celle ci étant un fork de la 2ème, les 2 fonctionnent de la même manière, vous devrez juste changer « mariadb-server » par « mysql-server » si vous souhaitez installer Mysql.

apt install mariadb-server

Par défaut, MariaDB n’est pas sécurisé et contient une base de données de test. Le paquet nous fournit un script à exécuter pour y remédier, donc n’oubliez surtout pas de lancer celui-ci après l’installation :

mysql_secure_installation

Suit alors une série de questions pour sécuriser votre installation.

Augmentez la taille du cache et des tampons InnoDB en modifiant ces valeurs :

vi /etc/mysql/mariadb.conf.d/50-server.cnf

                        [mysqld]
                        query_cache_limit       = 2M
                        query_cache_size        = 32M
                        innodb_buffer_pool_instances = 1
                        innodb_buffer_pool_size = 79M
                        [mariadb]
                            aria_pagecache_buffer_size = 2M

Enfin, redémarrez le service :

service mariadb restart

4 - Configurer un site web sous LEMP

"Ultime étape"... Vous allez à présent, en vous appuyant sur votre savoir-faire, configurer votre serveur pour accueillir une solution de CMS Wordpress. Rappelez-vous le premier TP de l'année ;-)

Contactez-moi

Téléphone 06 42 42 90 86
Localisation 58 rue Général de Gaulle, 29400 Landivisiau