Config rapide Nginx

DNS - DéveloppementVoici un mini-article juste pour présenter les fichiers de config pour installer Nginx et PHP sur une Debian 9.

Comme j’ai un peu galéré pour trouver la bonne config je me suis dis que ça pourrait servir à d’autres…

Cette article va à l’essentiel, je ne détaille pas tout, si vous connaissez un peu Linux et Apache ça devrait pas poser de problème. Sinon il faudra attendre un peu que je redige un article plus détaillé.

La config présentée ici permet de tratier les requêtes avec des urls ‘virtuelles’ comme WordPress par exemple.

En premier lieu Nginx vérifie si le fichier ou dossier existe, dans le cas contraire il envoie le traitement sur index.php.

Etape 1 : Installation

# apt-get install nginx php7.0-fpm

Etape 2 : Configurer Nginx

il faut créer un virtualhost dans /etc/nginx/sites-available

server {
 ## config globale du virtualhost
 listen 8080 ;
 error_log /var/log/test-error.log;
 access_log /var/log/test-acces.log ;
 root /var/www/test;
 server_name localhost;
 index index.php;
 autoindex on;
 
## traite les fichiers existant, sinon route vers index.php
 location / {
   try_files $uri $uri/ index.php$is_args$args; 
 }

 ## transfert les fichier .php a fatcgi fpm
 location ~ \.php$ {
   include /etc/nginx/fastcgi_params;
   fastcgi_pass php7.0-fpm-sock;
   fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name;
 }
}

C’est ce fichier de config qui m’a donné le plus de mal, car j’avais un caractère invisible sur la ligne location / { et cela bloquait le traitement de nginx lorsque l’url n’éxistait pas. Pour trouver le problème j’ai activer le mode debug en modifiant la ligne error_log :

error_log /var/log/test-error.log debug ;

Et dans le log j’ai constaté que la règle location \ n’était pas pris en compte il affichait : test location « / «  et c’est la que j’ai vu q’uil y avait un espace (ou je ne sais quoi) derrière le / !! mon problème était la. Cela doit être du au fait que j’ai fait un copier/coller d’un fichier sur une page web…

Etape 3 : Configurer fastcgi-fpm

Editer le fichier /etc/nginx/conf.d/php7.0-fpm.conf :

upstream php7.0-fpm-sock {
  server unix:/run/php/php7.0-fpm.sock;
}

Ce fichier définit le lien (socket) que va utliser Nginx pour se connecter à Fastcgi et lui envoyer ses requêtes. On retrouve ce paramètre dans le fichier du virtualhost à la ligne : fastcgi_pass php7.0-fpm-sock.

C’est tout pour le moment….

Pas de Commentaire

Qu'en pensez-vous ?

Votre formulaire contient des erreurs, merci de corriger.