Nginx 1.4.x sur les systèmes Unix
Cette documentation couvre l'installation et la configuration de PHP avec PHP-FPM pour le serveur HTTP Nginx 1.4.x.
Ce guide suppose que vous avez compilé Nginx à partir des sources et donc tous les binaires et fichiers de configuration se trouvent dans /usr/local/nginx. Si ce n'est pas le cas et que vous avez obtenu Nginx par d'autres moyens, veuillez vous référer au » Wiki d'Nginx pour adapter ce manuel pour votre configuration.
Ce guide couvre les bases de la configuration du serveur Nginx afin de parvenir à servir une application PHP sur le port 80. Il est recommandé d'étudier les documentations d'Nginx et de PHP-FPM afin d'optimiser votre installation.
Veuillez noter que tout au long de cette documentation, les numéros de version ont été remplacé par un "x" pour assurer que cette dernière reste correcte dans l'avenir. Pensez à les remplacer par votre numéro de version.
-
Il est recommandé de consulter la » documentation de Nginx afin de l'installer sur votre système.
-
Récupérer et décompresser les sources de PHP :
tar zxf php-x.x.x
-
Configurer et compiler PHP. Ce sera le moment où vous pourrez personaliser PHP avec diverses options, comme les extensions à activer. Exécuter ./configure --help pour obtenir une liste des options disponibles. Dans notre exemple, vous effectuerons une configuration simple avec le support PHP-FPM et MySQLi.
cd ../php-x.x.x ./configure --enable-fpm --with-mysqli make sudo make install
-
Récupérer et déplacer les fichiers de configuration dans les bons dossiers
cp php.ini-development /usr/local/php/php.ini cp /usr/local/etc/php-fpm.d/www.conf.default /usr/local/etc/php-fpm.d/www.conf cp sapi/fpm/php-fpm /usr/local/bin
-
Il est important que vous empéchiez Nginx de passer les requêtes au backend PHP-FPM si le fichier n'existe pas, évitant ainsi les failles par injections arbitraires de scripts.
Nous pouvons réaliser cela en définissant la directive de configuration cgi.fix_pathinfo à la valeur 0 dans votre php.ini.
Editer php.ini :
vim /usr/local/php/php.ini
Trouver la directive cgi.fix_pathinfo= et modifier là comme ceci :
cgi.fix_pathinfo=0
-
Le fichier php-fpm.conf doit être modifié pour spécifier que php-fpm doit être exécuté avec l'utilisateur www-data et le groupe www-data avant de démarrer le service :
vim /usr/local/etc/php-fpm.d/www.conf
Trouver et modifier ce qui suit :
; Unix user/group of processes ; Note: The user is mandatory. If the group is not set, the default user's group ; will be used. user = www-data group = www-data
Le service php-fpm peut maintenant être démarré :
/usr/local/bin/php-fpm
Ce guide ne va pas configurer php-fpm plus que cela ; si vous êtes intéressé dans la configuration avancée de php-fpm, veuillez consulter la documentation.
-
Nginx doit maintenant être configuré pour supporter l'analyse des applications PHP :
vim /usr/local/nginx/conf/nginx.conf
Modifier le bloc par défaut afin qu'il puisse servir des fichiers .php :
location / { root html; index index.php index.html index.htm; }
La prochaine étape permet d'assurer que les fichiers .php soient passés au backend PHP-FPM ; Sous le bloc commenté par défaut et entrez :
location ~* \.php$ { fastcgi_index index.php; fastcgi_pass 127.0.0.1:9000; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param SCRIPT_NAME $fastcgi_script_name; }
Redémarrer Nginx.
sudo /usr/local/nginx/sbin/nginx -s stop sudo /usr/local/nginx/sbin/nginx
-
Créez un fichier de test
rm /usr/local/nginx/html/index.html echo "<?php phpinfo(); ?>" >> /usr/local/nginx/html/index.php
Maintenant, naviguez vers http://localhost. Le phpinfo() devrait maintenant être affiché.
En suivant ces différentes étapes, vous devriez exécuter un serveur web Nginx avec le support de PHP comme module FPM SAPI. Bien entendu, il y a beaucoup plus d'options de configuration de disponible pour Nginx et PHP. Pour plus d'informations, tapez ./configure --help dans la source correspondante.
Document créé le 30/01/2003, dernière modification le 26/10/2018
Source du document imprimé : https://www.gaudry.be/php-rf-install.unix.nginx.php.html
L'infobrol est un site personnel dont le contenu n'engage que moi. Le texte est mis à disposition sous licence CreativeCommons(BY-NC-SA). Plus d'info sur les conditions d'utilisation et sur l'auteur.
Références
Ces références et liens indiquent des documents consultés lors de la rédaction de cette page, ou qui peuvent apporter un complément d'information, mais les auteurs de ces sources ne peuvent être tenus responsables du contenu de cette page.
L'auteur de ce site est seul responsable de la manière dont sont présentés ici les différents concepts, et des libertés qui sont prises avec les ouvrages de référence. N'oubliez pas que vous devez croiser les informations de sources multiples afin de diminuer les risques d'erreurs.