Chargement...

Installer nginx et PHP5 FPM sur debian / ubuntu

Nous avons vu dans le chapitre précent comment installer apache et PHP. Il faut savoir qu'il existe d'autres serveurs web tout aussi intéressants. Si vous désirez installer un serveur web moins connu mais qui gagne à l'être lisez ce tutoriel.

nginx c'est quoi?

Nginx (prononcez "Engine X") est un serveur web gratuit et open source qui a été à la base crée en 2002 pour un site russe à fort traffic. C'est vraiment depuis sa traduction en 2006 que nginx est devenu populaire. La particularité de nginx c'est qu'il est à la fois léger et très performant. De plus il consomme beaucoup moins de ressource que son principal concurrent: Apache. Nginx excelle dans le partage de données statique, mais combiné à PHP5 FPM il devient également très intéressant pour la partage de données dynamiques.

PHP5 FPM c'est quoi?

PHP FPM est une interface qui permet une communication entre un serveur web et PHP. FPM signifie FastCGI Process Manager. Contrairement au couple Apache/PHP qui reste très dépendant l'un de l'autre, nginx / PHP-FPM font chacun leur boulot de leur coté.

Installer nginx

sudo aptitude install nginx

Installer PHP5 FPM

sudo aptitude install php5-fpm

Editons le fichier de configuration par défaut de nginx mais avant n'oubliez pas de faire une copie:

cp /etc/nginx/sites-available/default /etc/nginx/sites-available/default.bak

Ouvrez le fihcier de configuration par défaut:

sudo nano /etc/nginx/sites-available/default

Indiquez le chemin racine de votre projet:

[...] server { #listen 80; ## listen for ipv4; this line is default and implied #listen [::]:80 default_server ipv6only=on; ## listen for ipv6 root /var/www/; index index.html index.htm; [...]

et décommentez le partie du code consacrée à PHP:

[...] # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 # location ~ \.php$ { fastcgi_split_path_info ^(.+\.php)(/.+)$; # NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini # With php5-cgi alone: # fastcgi_pass 127.0.0.1:9000; # With php5-fpm: fastcgi_pass unix:/var/run/php5-fpm.sock; fastcgi_index index.php; include fastcgi_params; } [...]

Créons un fichier test pour voir si tout fonctionne bien:

mkdir /var/www
nano /var/www/info.php

Demandons d'afficher les informations PHP:

<?php phpinfo(); ?>

Rédémarrez xginx:

sudo service nginx restart

Consulter la page /test.php sur votre navigateur, vous devirez voir ceci:

Voir les logs d'erreurs

Il est possible de voir les erreurs que rencontre votre serveur web avec la commande suivante:

tail -f /var/log/nginx/error.log

Ne pas écrire les logs d'erreurs

Si vous travaillez sur un projet mal construit comme cela arrive souvent et que le serveur apache reçoit mille erreurs non bloquante à la seconde, il peut être judicieux de désactiver au niveau de PHP les logs d'erreurs.

Editons le fichier de configuration de php-fpm

nano /etc/php5/fpm/php.ini

Modifions cette ligne

error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT

en

error_reporting = off

Puis redémarrons le service nginx:

service php5-fpm restart

MySQL

Si vous utilisez MySQL, n'oubliez pas d'installer le packet php5-mysql:

aptitude install php5-mysql




UNE QUESTION SUR L'ARTICLE?


CSSW Apprendre à créer son site web CSSW