Aller au contenu principal
Gaprod

Installer Nginx sur VPS

Installez et configurez la stack LEMP (Linux, Nginx, MySQL, PHP) sur votre VPS Gaprod pour héberger vos sites web.

Mis à jour le 10 janvier 2026

La stack LEMP

LEMP est l'acronyme de Linux, Nginx (prononcé "Engine-X"), MySQL et PHP. C'est une des configurations les plus populaires pour héberger des applications web modernes, dont WordPress.

Nginx est particulièrement apprécié pour :

  • Sa performance : gère des milliers de connexions simultanées avec peu de ressources
  • Sa faible empreinte mémoire : idéal pour les VPS avec peu de RAM
  • Sa flexibilité : proxy inverse, équilibreur de charge, serveur de cache

Prérequis

  • Un VPS sous Ubuntu 22.04 ou 24.04 (ce guide est adapté pour Ubuntu)
  • Accès SSH avec un utilisateur sudo
  • Pare-feu UFW configuré

1. Installer Nginx

  1. Mettre à jour les paquets

    sudo apt update && sudo apt upgrade -y
    
  2. Installer Nginx

    sudo apt install nginx -y
    
  3. Démarrer et activer Nginx

    sudo systemctl start nginx
    sudo systemctl enable nginx
    

    Nginx démarre automatiquement à chaque démarrage du serveur.

  4. Configurer le pare-feu

    Autorisez HTTP et HTTPS dans UFW :

    sudo ufw allow 'Nginx Full'
    

    Cette commande autorise à la fois les ports 80 (HTTP) et 443 (HTTPS).

  5. Vérifier l'installation

    Dans votre navigateur, accédez à http://votre-ip-vps. Vous devriez voir la page par défaut Nginx "Welcome to nginx!".

    En ligne de commande :

    sudo nginx -v
    sudo systemctl status nginx
    

2. Installer MySQL

  1. Installer MySQL Server

    sudo apt install mysql-server -y
    
  2. Sécuriser l'installation MySQL

    sudo mysql_secure_installation
    

    Ce script interactif vous demande de :

    • Configurer le plugin VALIDATE PASSWORD (recommandé)
    • Définir un mot de passe root MySQL
    • Supprimer les utilisateurs anonymes (répondez Y)
    • Désactiver la connexion root à distance (répondez Y)
    • Supprimer la base de données de test (répondez Y)
    • Recharger les tables de privilèges (répondez Y)
  3. Créer une base de données pour votre application

    Connectez-vous à MySQL :

    sudo mysql -u root -p
    

    Créez une base de données et un utilisateur dédié (remplacez les valeurs) :

    CREATE DATABASE monsite_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
    CREATE USER 'monsite_user'@'localhost' IDENTIFIED BY 'MotDePasseSecurise123!';
    GRANT ALL PRIVILEGES ON monsite_db.* TO 'monsite_user'@'localhost';
    FLUSH PRIVILEGES;
    EXIT;
    

3. Installer PHP-FPM

Nginx ne traite pas nativement le PHP. PHP-FPM (FastCGI Process Manager) assure l'interface entre Nginx et PHP.

sudo apt install php-fpm php-mysql php-cli php-curl php-gd php-mbstring php-xml php-xmlrpc php-soap php-intl php-zip -y

Vérifiez la version installée et démarrez le service :

php -v
sudo systemctl enable php8.3-fpm
sudo systemctl start php8.3-fpm

(Remplacez 8.3 par la version PHP installée sur votre système.)

4. Configurer un Virtual Host Nginx

Un virtual host (bloc serveur) définit la configuration Nginx pour un domaine spécifique.

  1. Créer le répertoire du site

    sudo mkdir -p /var/www/votredomaine.fr/public
    sudo chown -R www-data:www-data /var/www/votredomaine.fr
    sudo chmod -R 755 /var/www/votredomaine.fr
    
  2. Créer une page de test

    sudo nano /var/www/votredomaine.fr/public/index.html
    

    Contenu :

    <!DOCTYPE html>
    <html lang="fr">
    <head><meta charset="UTF-8"><title>Mon Site</title></head>
    <body><h1>Bienvenue sur votredomaine.fr</h1></body>
    </html>
    
  3. Créer le bloc serveur Nginx

    sudo nano /etc/nginx/sites-available/votredomaine.fr
    

    Contenu du fichier de configuration :

    server {
        listen 80;
        listen [::]:80;
    
        server_name votredomaine.fr www.votredomaine.fr;
        root /var/www/votredomaine.fr/public;
    
        index index.php index.html index.htm;
    
        location / {
            try_files $uri $uri/ /index.php?$args;
        }
    
        location ~ \.php$ {
            include snippets/fastcgi-php.conf;
            fastcgi_pass unix:/var/run/php/php8.3-fpm.sock;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
            include fastcgi_params;
        }
    
        location ~ /\.ht {
            deny all;
        }
    }
    
  4. Activer le site et tester la configuration

    sudo ln -s /etc/nginx/sites-available/votredomaine.fr /etc/nginx/sites-enabled/
    
    # Tester la syntaxe Nginx
    sudo nginx -t
    
    # Recharger Nginx
    sudo systemctl reload nginx
    

5. Installer un certificat SSL avec Certbot

  1. Installer Certbot

    sudo apt install certbot python3-certbot-nginx -y
    
  2. Obtenir le certificat SSL

    sudo certbot --nginx -d votredomaine.fr -d www.votredomaine.fr
    

    Certbot configure automatiquement Nginx pour HTTPS et met en place le renouvellement automatique.

  3. Vérifier le renouvellement automatique

    sudo certbot renew --dry-run
    

Optimiser Nginx pour la production

Éditez /etc/nginx/nginx.conf pour optimiser les performances :

worker_processes auto;
worker_connections 1024;

gzip on;
gzip_types text/plain text/css application/json application/javascript text/xml application/xml;
gzip_min_length 1000;

client_max_body_size 50M;
keepalive_timeout 65;

Étapes suivantes

  • Installer WordPress sur votre stack LEMP
  • Configurer les sauvegardes VPS avec rsync
  • Mettre en place la surveillance du serveur avec des outils comme Netdata ou Prometheus

Besoin d'aide supplémentaire ?

Notre support technique est disponible du lundi au vendredi pour répondre à vos questions.