DevOps

Optimisation Pile LEMP Ubuntu 18.04

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.

  1. 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 :

    bash
    sudo apt update sudo apt upgrade
  2. Installation de Nginx :
    Nginx est un serveur web léger et performant. Pour l’installer, utilisez la commande suivante :

    bash
    sudo 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 :

    bash
    sudo systemctl start nginx sudo systemctl enable nginx
  3. 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 :

    bash
    sudo ufw allow 'Nginx Full'
  4. Installation de MySQL :
    MySQL est un système de gestion de base de données relationnelle. Installez MySQL en utilisant la commande suivante :

    bash
    sudo 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 :

    bash
    sudo systemctl start mysql sudo systemctl enable mysql

    Vous pouvez également sécuriser votre installation MySQL en utilisant la commande suivante :

    bash
    sudo mysql_secure_installation
  5. 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 :

    bash
    sudo apt install php-fpm php-mysql

    Après l’installation, modifiez le fichier de configuration de PHP-FPM pour activer le support de Nginx :

    bash
    sudo 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 sur 0.

    Enregistrez et fermez le fichier. Ensuite, redémarrez PHP-FPM pour appliquer les modifications :

    bash
    sudo systemctl restart php7.2-fpm
  6. Configuration de Nginx pour PHP :
    Créez un fichier de configuration Nginx pour votre site web PHP dans le répertoire des sites disponibles :

    bash
    sudo 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 :

    nginx
    server { 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 :

    bash
    sudo 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 :

    bash
    sudo nginx -t

    Si tout est OK, redémarrez Nginx pour appliquer les changements :

    bash
    sudo 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 :

  1. 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 dans sites-enabled et de redémarrer Nginx après chaque modification.

  2. 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.

Administration MySQL :

  1. 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;
  2. 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.

Configuration de PHP :

  1. 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 :
      bash
      sudo add-apt-repository ppa:ondrej/php sudo apt-get update sudo apt-get install php7.4-fpm
  2. 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

Sécurisation de l’environnement :

  1. 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.
  2. 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.
  3. 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

Gestion des performances :

  1. 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.
  2. 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.
  3. 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.

Bouton retour en haut de la page