Table des matières
Remplacer apache par nginx sans coupure sur debian
Publié le 28 janvier 2020 par Le Libre Au Quotidien (site injoignable)
Pré-requis
-
Une machine sous debian
-
Avoir suffisamment d’espace disque disponible
-
Avoir les droits root sur votre machine
Première étape : Installation de nginx et de php-fpm
-
Installer nginx :
USER@MACHINE:~$ sudo apt install nginx
A la fin de l’installation de nginx, un message d’erreur signale qu'il ne peut pas démarrer ; c’est normal,nous verrons comment résoudre ce problème plus tard.
-
Installer l’implémentation FastCGI de PHP compatible nginx :
USER@MACHINE:~$ sudo apt install {,php-fpm}
Autres étapes
-
Configuration provisoire de nginx : éditer avec les droits d'administration le fichier /etc/nginx/sites-available/default pour le modifier comme ceci :
-
Remplacer 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 juste après index
- /etc/nginx/sites-available/default
location ~ \.php$ { 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; }
-
Démarrer le service nginx :
USER@MACHINE:~$ sudo systemctl start nginx
Création d’un vhost : créer un vhost pour votre site, par exemple :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; } }
Basculement apache – nginx quasiment sans coupure :-
Remettre le port d’écoute 800 → 80
-
Stopper le service apache :
USER@MACHINE:~$ sudo systemctl stop apache2
-
Redémarrer le service nginx (et appliquer la modification de port) :
USER@MACHINE:~$ sudo systemctl restart nginx
-
supprimer apache de votre système (les vhosts seront conservés dans /etc/apache2) :
USER@MACHINE:~$ sudo apt purge apache2
Conclusion
Problèmes connus
Voir aussi
-