LEMP¶
Dans cet article
Attention
LEMP est une pile de technologies de développement web open-source qui comprend le système d'exploitation Linux, le serveur web NGINX (prononcé "engine-x"), la base de données MySQL et le langage de script PHP.
- Linux fournit l'hébergement et la gestion du serveur.
- NGINX agit en tant que serveur web haute performance et serveur proxy.
- MySQL est une base de données relationnelle pour le stockage et le traitement des données.
- PHP est un langage de programmation utilisé pour créer des applications web dynamiques.
Fonctionnalités principales de LEMP¶
- Solution conteneurisée : La pile LEMP est disponible à la fois en déploiement classique et en tant que solution conteneurisée. Un conteneur Docker fournit une isolation des composants et de leurs dépendances, créant un environnement identique pour le développement et la production.
- Haute performance : L'architecture événementielle de NGINX lui permet de gérer efficacement des milliers de connexions simultanées. L'exécution PHP optimisée via FastCGI assure un traitement rapide du contenu dynamique, et la mise en cache avancée des fichiers statiques réduit la charge du serveur.
- Configuration flexible : LEMP offre la possibilité de configurer chaque composant. NGINX prend en charge des schémas de routage complexes, l'équilibrage de charge et la mise en cache. MySQL permet d'ajuster finement les paramètres de performance et de sécurité. PHP peut être configuré pour répondre aux besoins spécifiques de l'application, avec la possibilité d'inclure les extensions nécessaires et d'optimiser l'utilisation de la mémoire.
- Polyvalence : PHP 8.3 est livré avec un ensemble de fonctionnalités pour le développement web moderne. Il prend en charge le travail avec divers formats de données, le chiffrement et les protocoles réseau. MySQL fournit un stockage de données fiable avec prise en charge des transactions, des requêtes complexes et de la réplication. NGINX offre des capacités avancées pour le routage des requêtes, la terminaison SSL et la gestion du contenu multimédia.
- Sécurité : LEMP inclut un système de sécurité multicouche. NGINX protège contre les attaques DDoS et autres menaces web. MySQL fournit une gestion flexible des permissions utilisateur et le chiffrement des données. PHP est configuré en tenant compte des exigences de sécurité modernes. La conteneurisation fournit un niveau d'isolation supplémentaire, empêchant les vulnérabilités d'un composant d'affecter les autres.
- Évolutivité : L'architecture LEMP permet une mise à l'échelle efficace des applications. NGINX prend en charge la distribution de charge sur plusieurs serveurs. MySQL fournit la réplication et le partitionnement des données pour les grands ensembles de données. PHP-FPM permet un contrôle précis du nombre de processus travailleurs. La conteneurisation simplifie le déploiement d'instances d'application supplémentaires à mesure que la charge augmente.
- Facilité de mise à jour : Les composants LEMP peuvent être mis à jour indépendamment. NGINX et PHP prennent en charge les mises à jour sans interrompre le fonctionnement du service. MySQL fournit des outils pour des mises à jour de base de données sûres. Avec les conteneurs, il est possible de tester les mises à jour dans un environnement isolé avant de les appliquer en production.
Fonctionnalités de déploiement¶
| ID | Nom du logiciel | Système d'exploitation compatible | VM | BM | VGPU | GPU | Min CPU (Cœurs) | Min RAM (GB) | Min HDD/SSD (GB) | Domaine personnalisé | Actif |
|---|---|---|---|---|---|---|---|---|---|---|---|
| 21 | LEMP | Ubuntu 22.04 | + | + | + | + | 1 | 1 | - | Non | COMMANDER |
La pile est déployée dans un conteneur Docker en utilisant l'image adhocore/lemp:8.3. Les répertoires suivants sont utilisés pour le stockage des données :
- /root/data pour les fichiers de la base de données ;
- /root/webroot pour les fichiers du site web.
Remarque
Pour travailler avec MySQL, vous devez vous connecter via le conteneur Docker, car le client MySQL n'est pas installé sur le système hôte. Utilisez la commande suivante :
Remarque
Sauf indication contraire, nous installons par défaut la dernière version de release du logiciel depuis le site du développeur ou les dépôts du système d'exploitation.
Information
La description automatiquement générée du processus de déploiement du serveur est disponible ici
Premiers pas après le déploiement de LEMP¶
Une fois votre commande payée, vous recevrez une notification par e-mail à l'adresse fournie lors de l'inscription, vous informant que votre serveur est prêt à l'emploi. Cet e-mail inclura l'adresse IP de votre VPS, ainsi que le nom d'utilisateur et le mot de passe pour la connexion.
Nos clients gèrent leur équipement via le panneau de contrôle des serveurs et l'API — Invapi. Vous pouvez trouver l'adresse IP du serveur dans l'onglet Network. Un guide détaillé sur la gestion des paramètres réseau est disponible ici.
-
Login et Password pour se connecter au serveur via SSH : fournis dans la notification e-mail envoyée à votre adresse e-mail enregistrée une fois le serveur prêt après le déploiement du logiciel. Le mot de passe pour se connecter à la base de données est le même que le mot de passe de connexion au serveur SSH.
-
NGINX :
- Le serveur web est accessible sur le port 88
- Le contenu web est placé dans le répertoire
/root/webroot. Pour héberger un site web, copiez vos fichiers dans ce répertoire. - Pour tester le fonctionnement du serveur, créez un fichier de test :
- Accès :
http://<votre_IP_serveur>:88/test.html

-
MySQL :
- La base de données est accessible sur le port 3306
- Les données sont stockées dans
/root/data - Le mot de passe root correspond au mot de passe d'accès SSH du serveur.
- Pour vous connecter, utilisez :
Important : Connexion à la base de données depuis PHP
Lors de la configuration d'applications web (WordPress, Laravel, etc.), utilisez comme hôte de base de données :
127.0.0.1au lieu delocalhostExemple pour WordPress dans wp-config.php :
L'utilisation de
localhostentraîne l'erreur :Fatal error: Uncaught mysqli_sql_exception: No such file or directory
Raison : PHP tente de se connecter via un socket Unix, qui n'est pas disponible au chemin par défaut dans le conteneur. -
PHP 8.3 :
- Installé dans le conteneur avec toutes les extensions nécessaires
- Fonctionne via FastCGI pour des performances accrues.
- Pour vérifier le fonctionnement de PHP, créez un fichier info.php dans le répertoire
/root/webroot:

-
Ports :
- 88 : Web (NGINX)
- 3306 : MySQL
- 5432 : PostgreSQL
Remarque
Toutes les commandes pour travailler avec la base de données doivent être exécutées via le conteneur Docker en utilisant la commande docker exec. Le conteneur fonctionne dans un réseau dédié, lemp-net, pour améliorer l'isolation et la sécurité.
Remarque
Des informations détaillées sur le travail avec la base de données peuvent être trouvées dans la documentation du développeur.