Documentation du Dr FRAPPE

Ce wiki regroupe les résultats de mes expériences en informatique accumulés au cours de mes recherches sur le net.

Dans la mesure du possible, j'ai cité mes sources ; il en manque certainement… :-)

Remplacer apache par nginx sans coupure sur debian

Publié le 28 janvier 2020 par Le Libre Au Quotidien (site injoignable)

Pré-requis

  1. Une machine sous debian
  2. Avoir suffisamment d’espace disque disponible
  3. Avoir les droits root sur votre machine

Première étape : Installation de nginx et de php-fpm

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

  2. Installer l’implémentation FastCGI de PHP compatible nginx :

    USER@MACHINE:~$ sudo apt install {,php-fpm}

Autres étapes

  1. Configuration provisoire de nginx : éditer avec les droits d'administration le fichier /etc/nginx/sites-available/default pour le modifier comme ceci :
    1. Remplacer le port d’écoute 80 par le port 800 (en début de fichier)
    2. Modfiez le paramètre root pour définir le même rootdir que celui d’apache
    3. Ajoutez index.php à la directive index
    4. 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;
      }
    5. Démarrer le service nginx :

      USER@MACHINE:~$ sudo systemctl start nginx

  2. 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;
      }
    }
  3. Basculement apache – nginx quasiment sans coupure :
    1. Remettre le port d’écoute 800 → 80
    2. Stopper le service apache :

      USER@MACHINE:~$ sudo systemctl stop apache2

    3. Redémarrer le service nginx (et appliquer la modification de port) :

      USER@MACHINE:~$ sudo systemctl restart nginx

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


Basé sur « Article » par Auteur.

QR Code
QR Code Remplacer apache par nginx sans coupure sur debian (generated for current page)