web
Installer Nginx sur Debian 13
Procédure complète : installation de Nginx, mise en place d’un site et couplage avec PHP-FPM.
🏷️ Versions au moment de la rédaction : Nginx
1.26.3et PHP8.4(paquets officiels Debian 13).
📋 Prérequis
- 🖥️ Un serveur Debian 13 à jour, accès
rootousudo - 🌐 Un nom de domaine pointant vers le serveur (optionnel pour les tests)
- 🔓 Ports
80/443ouverts sur le pare-feu
sudo apt update && sudo apt full-upgrade -y
1️⃣ Installation de Nginx
sudo apt install nginx -y
Activation au démarrage et démarrage du service :
sudo systemctl enable --now nginx
sudo systemctl status nginx
✅ Vérification rapide dans le navigateur ou en CLI :
curl -I http://localhost
Vous devez voir HTTP/1.1 200 OK et l’en-tête Server: nginx.
🔥 Pare-feu (si UFW est utilisé)
sudo apt install ufw -y
sudo ufw allow 'Nginx Full'
sudo ufw enable
2️⃣ Structure des fichiers de configuration
Debian organise Nginx ainsi :
| Chemin | Rôle |
|---|---|
/etc/nginx/nginx.conf |
Configuration principale 🧠 |
/etc/nginx/sites-available/ |
Sites définis (brouillons) 📁 |
/etc/nginx/sites-enabled/ |
Sites activés (liens symboliques) 🔗 |
/etc/nginx/conf.d/ |
Snippets globaux additionnels 🧩 |
/var/log/nginx/ |
Logs access/error 📜 |
3️⃣ Créer un site (server block)
sudo mkdir -p /var/www/monsite
sudo chown -R www-data:www-data /var/www/monsite
Créer le fichier /etc/nginx/sites-available/monsite.conf :
server {
listen 80;
listen [::]:80;
server_name www.monsite.fr;
root /var/www/monsite;
index index.php index.html;
access_log /var/log/nginx/monsite.fr-access.log;
error_log /var/log/nginx/monsite.fr-error.log;
location / {
try_files $uri $uri/ =404;
}
}
Activer le site et désactiver le site par défaut :
sudo ln -s /etc/nginx/sites-available/monsite.conf /etc/nginx/sites-enabled/
sudo rm -f /etc/nginx/sites-enabled/default
sudo nginx -t && sudo systemctl reload nginx
🧪 nginx -t teste la syntaxe avant tout rechargement — un réflexe à garder à chaque modification !
4️⃣ Installer et connecter PHP-FPM
sudo apt install php-fpm php-common -y
sudo systemctl enable --now php8.4-fpm
Adapter le server{} du site pour router les .php vers PHP-FPM via socket Unix (plus rapide que TCP) :
server {
listen 80;
listen [::]:80;
server_name www.monsite.fr;
root /var/www/monsite;
index index.php index.html;
access_log /var/log/nginx/monsite.fr-access.log;
error_log /var/log/nginx/monsite.fr-error.log;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php8.4-fpm.sock;
}
location ~ /\.ht {
deny all;
}
}
sudo nginx -t && sudo systemctl reload nginx
📌 Vérifiez le nom exact du socket avec ls /run/php/ — il varie selon la version de PHP installée.
5️⃣ 🔐 Bonus : activer HTTPS avec Certbot
sudo apt install certbot python3-certbot-nginx -y
sudo certbot --nginx -d monsite.fr -d www.monsite.fr
Certbot ajuste automatiquement le server{} et programme le renouvellement 🔁.
6️⃣ ✅ Checklist finale
-
nginx -tsans erreur -
systemctl status nginxetsystemctl status php8.4-fpmactifs - Site accessible en HTTP (et HTTPS si Certbot configuré)
- Logs propres dans
/var/log/nginx/error.log
sudo tail -f /var/log/nginx/error.log
🎉 Nginx est installé, connecté à PHP-FPM, et son cache FastCGI accélère les réponses dynamiques !