Installer une pile LEMP (Linux, Nginx, MySQL, PHP) sur Ubuntu 18.04 est une procédure détaillée qui nécessite plusieurs étapes. La pile LEMP est une configuration couramment utilisée pour héberger des sites web dynamiques. Suivez attentivement les étapes ci-dessous pour mettre en place cette pile sur votre système Ubuntu 18.04.
-
Mise à jour du système :
Avant d’installer quoi que ce soit, assurez-vous que votre système est à jour en exécutant les commandes suivantes dans le terminal :« Link To Share » est votre plateforme de marketing tout-en-un, idéale pour guider votre audience vers tout ce que vous offrez, de manière simple et professionnelle. • Des pages de profil (Bio) modernes et personnalisables • Raccourcissez vos liens grâce à des analyses avancées • Générez des codes QR interactifs à l’image de votre marque • Hébergez des sites statiques et gérez votre code • Des outils web variés pour stimuler votre activité bashsudo apt update sudo apt upgrade
-
Installation de Nginx :
Nginx est un serveur web léger et performant. Pour l’installer, utilisez la commande suivante :bashsudo apt install nginx
Une fois l’installation terminée, démarrez le service Nginx et activez-le pour qu’il démarre automatiquement au démarrage :
bashsudo systemctl start nginx sudo systemctl enable nginx
-
Configuration du pare-feu (firewall) :
Si le pare-feu est activé sur votre système, vous devez autoriser le trafic HTTP et HTTPS. Utilisez les commandes suivantes :bashsudo ufw allow 'Nginx Full'
-
Installation de MySQL :
MySQL est un système de gestion de base de données relationnelle. Installez MySQL en utilisant la commande suivante :bashsudo apt install mysql-server
Pendant l’installation, vous serez invité à définir un mot de passe pour l’utilisateur root de MySQL. Assurez-vous de choisir un mot de passe sécurisé.
Après l’installation, démarrez le service MySQL et activez-le pour qu’il démarre automatiquement :
bashsudo systemctl start mysql sudo systemctl enable mysql
Vous pouvez également sécuriser votre installation MySQL en utilisant la commande suivante :
bashsudo mysql_secure_installation
-
Installation de PHP :
PHP est un langage de script côté serveur. Installez PHP ainsi que quelques modules nécessaires en utilisant la commande suivante :bashsudo apt install php-fpm php-mysql
Après l’installation, modifiez le fichier de configuration de PHP-FPM pour activer le support de Nginx :
bashsudo nano /etc/php/7.2/fpm/php.ini
Recherchez la ligne
cgi.fix_pathinfo
et décommentez-la (enlevez le point-virgule au début) et réglez-la sur0
.Enregistrez et fermez le fichier. Ensuite, redémarrez PHP-FPM pour appliquer les modifications :
bashsudo systemctl restart php7.2-fpm
-
Configuration de Nginx pour PHP :
Créez un fichier de configuration Nginx pour votre site web PHP dans le répertoire des sites disponibles :bashsudo nano /etc/nginx/sites-available/votre-site
Ajoutez le contenu suivant en remplaçant les chemins et les noms de domaine par les vôtres :
nginxserver { listen 80; server_name votre-domaine.com www.votre-domaine.com; root /var/www/votre-site; index index.php index.html index.htm; location / { try_files $uri $uri/ =404; } location ~ \.php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/var/run/php/php7.2-fpm.sock; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } location ~ /\.ht { deny all; } }
Enregistrez et fermez le fichier. Ensuite, créez un lien symbolique vers le répertoire des sites activés :
bashsudo ln -s /etc/nginx/sites-available/votre-site /etc/nginx/sites-enabled
Testez la configuration Nginx pour vous assurer qu’il n’y a pas d’erreurs :
bashsudo nginx -t
Si tout est OK, redémarrez Nginx pour appliquer les changements :
bashsudo systemctl restart nginx
Vous avez maintenant une pile LEMP opérationnelle sur votre serveur Ubuntu 18.04, prête à héberger des sites web dynamiques. Assurez-vous de transférer vos fichiers web dans le répertoire spécifié dans la configuration Nginx pour votre site.
Plus de connaissances
Au-delà des étapes d’installation de la pile LEMP sur Ubuntu 18.04, il est essentiel de comprendre certains concepts et configurations avancées pour optimiser et sécuriser votre environnement web. Explorons quelques éléments supplémentaires pour une gestion avancée de votre pile LEMP :
Gestion de Nginx :
-
Configuration des blocs de serveurs virtuels (Virtual Hosts) :
-
Vous pouvez configurer plusieurs sites web sur un seul serveur en utilisant des blocs de serveurs virtuels dans Nginx. Chaque bloc de serveurs virtuels doit être défini dans un fichier de configuration séparé situé dans
/etc/nginx/sites-available/
. -
Utilisez la commande
sudo nano /etc/nginx/sites-available/nouveau-site
pour créer un nouveau fichier de configuration. Assurez-vous de créer un lien symbolique danssites-enabled
et de redémarrer Nginx après chaque modification.
-
-
Configurer HTTPS avec Let’s Encrypt :
- Sécurisez vos sites web en activant le support HTTPS. Let’s Encrypt propose un service gratuit de certificats SSL. Installez le client Certbot avec la commande :
bash
sudo apt install certbot
- Obtenez un certificat SSL pour votre domaine en utilisant :
bash
sudo certbot --nginx -d votre-domaine.com -d www.votre-domaine.com
- Suivez les instructions pour configurer la redirection automatique vers HTTPS.
- Sécurisez vos sites web en activant le support HTTPS. Let’s Encrypt propose un service gratuit de certificats SSL. Installez le client Certbot avec la commande :
Administration MySQL :
-
Création de bases de données et d’utilisateurs :
- Utilisez l’interface MySQL pour créer des bases de données et des utilisateurs, et attribuer des privilèges. Accédez à MySQL en tant qu’utilisateur root :
bash
mysql -u root -p
- Exécutez des commandes telles que :
sql
CREATE DATABASE nom_de_la_base; CREATE USER 'utilisateur'@'localhost' IDENTIFIED BY 'mot_de_passe'; GRANT ALL PRIVILEGES ON nom_de_la_base.* TO 'utilisateur'@'localhost'; FLUSH PRIVILEGES;
- Utilisez l’interface MySQL pour créer des bases de données et des utilisateurs, et attribuer des privilèges. Accédez à MySQL en tant qu’utilisateur root :
-
Optimisation des paramètres MySQL :
- Modifiez les paramètres de configuration MySQL dans
/etc/mysql/mysql.conf.d/mysqld.cnf
pour optimiser les performances. Des ajustements peuvent être nécessaires en fonction des besoins spécifiques de votre application.
- Modifiez les paramètres de configuration MySQL dans
Configuration de PHP :
-
Gestion des versions PHP :
- Selon vos besoins, vous pouvez installer plusieurs versions de PHP sur votre serveur. Utilisez
ondrej/php
pour obtenir des versions plus récentes. Par exemple, pour PHP 7.4 :bashsudo add-apt-repository ppa:ondrej/php sudo apt-get update sudo apt-get install php7.4-fpm
- Selon vos besoins, vous pouvez installer plusieurs versions de PHP sur votre serveur. Utilisez
-
Modules PHP supplémentaires :
- Installez des modules PHP supplémentaires en fonction des exigences de votre application. Par exemple, pour un support JSON amélioré :
bash
sudo apt-get install php7.2-json
- Installez des modules PHP supplémentaires en fonction des exigences de votre application. Par exemple, pour un support JSON amélioré :
Sécurisation de l’environnement :
-
Fail2Ban pour Nginx :
- Protégez votre serveur contre les attaques par force brute en installant Fail2Ban. Configurez-le pour surveiller les journaux Nginx et bannir les adresses IP suspectes.
-
Sécurisation du serveur MySQL :
- Assurez-vous de ne pas utiliser l’utilisateur root MySQL pour les opérations quotidiennes. Créez des utilisateurs spécifiques avec les privilèges appropriés.
-
Firewall UFW :
- Utilisez le pare-feu UFW pour limiter les connexions à votre serveur. Par exemple, autorisez uniquement le trafic nécessaire sur les ports 80, 443 et 22 :
bash
sudo ufw allow 80 sudo ufw allow 443 sudo ufw allow 22 sudo ufw enable
- Utilisez le pare-feu UFW pour limiter les connexions à votre serveur. Par exemple, autorisez uniquement le trafic nécessaire sur les ports 80, 443 et 22 :
Gestion des performances :
-
Caching avec FastCGI :
- Configurez FastCGI pour gérer le caching. Cela peut considérablement améliorer les performances en réduisant le temps de chargement des pages.
-
Optimisation des requêtes MySQL :
- Utilisez des index, optimisez les requêtes SQL et examinez les performances MySQL pour identifier et résoudre les goulots d’étranglement.
-
Utilisation d’un système de mise en cache comme Redis ou Memcached :
- Intégrez un système de mise en cache pour stocker temporairement des données en mémoire, améliorant ainsi les temps de réponse pour les requêtes répétitives.
En adoptant ces bonnes pratiques et en comprenant ces configurations avancées, vous serez en mesure de maintenir un environnement LEMP robuste, performant et sécurisé pour héberger vos applications web sur Ubuntu 18.04. N’oubliez pas de documenter chaque modification apportée à la configuration pour une gestion efficace à long terme.