Bonjour a tous.
J’ai récemment troqué mon apache2 pour un nginx sur la machine virtuelle qui héberge mon blog.
Sans plus attendre,on commence le topo de la migration :
Prérequis
- Une machine sous debian
- Avoir suffisamment d’espace disque disponible
- Avoir les droits root sur votre machine
1 – Installation de nginx et de php-fpm
Cette étape est la plus simple du tuto,on installe nginx :
sudo apt install nginx
A la fin de l’installation de nginx, il va vous mettre un message d’erreur comme quoi il ne peut pas démarrer,c’est tout à fait normal,nous verrons comment résoudre ce problème plus tard.
Et l’implémentation FastCGI de PHP qui est compatible nginx
sudo apt install php-fpm
(je vous conseille d’utiliser ce dépot sur votre Debian pour installer PHP)
2 – Configuration provisoire de nginx
- Ouvrez le fichier
/etc/nginx/sites-available/default.
- Modifiez le port d’écoute 80 par le port 800 (en début de fichier)
- Modfiez le paramètre root pour définir le même rootdir que celui d’apache
- Ajoutez
index.php
à la directive index - Ajoutez
location ~ \.php$ {
juste après index
try_files $uri =404;
fastcgi_pass unix:/run/php/php7.3-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
Maintenant,vous pouvez allumer le service nginx
sudo systemctl start nginx
2 – Création d’un vhost
Nous allons créer un vhost pour votre site
Le code exemple que j’utilise :
server {
listen 80;
server_name domain.tld;
location '/.well-known/acme-challenge' {
default_type "text/plain";
root /tmp/letsencrypt-auto/;
}
location / {
return 301 https://domain.tld$request_uri;
}
}
Pour une documentation complète et en francais sur la création d’un virtualhost et de sa configuration, je vous renvoie sur ce wiki
3 – Basculement apache – nginx
Une fois que vos virtuals hosts sont bien configurés, il faut effectuer le basculement entre apache et nginx.
Pour un basculement quasiment sans coupure,suivez ces étapes :
- Changer le port d’écoute 800 pour le remettre sur 80
- Lancez
sudo systemctl stop apache2
pour stopper le service apache - Lancez
sudo systemctl restart nginx
pour redémarrer le service nginx (et appliquer la modification de port) - Lancez
sudo apt purge apache2
pour supprimer apache de votre système (les vhosts seront conservés dans /etc/apache2)
4 – Retour d’expérience
Il n’y a pas grand chose à dire de mon coté, mais j’ai été agréablement surpris de la facilité de configuration d’un certificat HTTPS sur nginx par rapport à toutes mes galères avec apache.
Merci d’avoir suivi ce tuto et à bientôt.
Merci a gotronic qui m’a envoyé des composants électroniques pour me soutenir.
Wow, lovely site. Thnx …