Tutoriel sur l’installation de Nginx et PHP.
Introduction sur le serveur web.
Nginx est un serveur HTTP libre, open-source et haute performance ; ainsi qu’un proxy inverse. Ainsi il intègre également du proxy pour l’IMAP et le POP3. Igor Sysoev a commencé le développement de Nginx en 2002, avec une première version publique en 2004. Nginx héberge actuellement près de [(22.8M)] des noms de domaine à travers le monde.
Nginx est reconnu pour ses hautes performances, sa stabilité, son ensemble de fonctionnalités, sa configuration simple ainsi que sa faible consommation de ressources.
Installation à partir d’une distribution Debian Wheezy (Version 7.x).
apt-get update apt-get install nginx
On peut démarrer le serveur en utilisant cette commande :
service nginx start
Insérer l’adresse IP ou votre nom de domaine dans votre navigateur, pour voir par défaut, la page Nginx.
votre_ip_serveur_ou_votre_domaine
Cela permet de vérifier que le serveur Web est installé et fonctionne correctement.
Installation et configuration de PHP
Pour cela , nous allons utiliser PHP-FPM (PHP-FPM (FastCGI Process Manager) est une implémentation alternative de FastCGI de PHP avec quelques fonctionnalités supplémentaires utiles pour les sites de toute taille, que nous installons comme suit:
apt-get install php5-fpm
Pour obtenir le support de MySQL en PHP, nous pouvons installer le paquet php5-mysql. Mais, pour installer d’autres packages PHP5 que vous auriez besoin pour vos applications. Exécuter cette commande pour effectuer la recherche :
apt-cache search php5
Choisissez celles dont vous avez besoin et de les installer comme ceci:
apt-get install php5-mysql php5-curl php5-gd php5-intl php-pear php5-imagick php5-imap php5-mcrypt php5-memcache php5-memcached php5-ming php5-ps php5-pspell php5-recode php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl memcached
APC (pour Alternative PHP Cache) est une extension PECL (PHP Extension Community Library, voir PEAR) libre et gratuite destinée à améliorer les performances des applications écrites en langage PHP en précompilant le code intermédiaire et en le plaçant dans un cache. Il est semblable à d’autres géo-caches, comme eAccelerator et XCache. Il est fortement recommandé d’installé pour accélérer votre page PHP Web.
Le package APC peut être installé de la façon suivante:
apt-get install php-apc
Editer le fichier suivant :
Nano /etc/php5/fpm/php.ini
et modifier cgi.fix_pathinfo=0
et votre fuseau horaire :
[...] cgi.fix_pathinfo=0 [...] date.timezone="Europe/Berlin" [...]
(Vous pouvez trouver tous les fuseaux horaires disponibles dans le répertoire /usr/share/zoneinfo
répertoires et sous-répertoires.)
Redémarrez PHP-FPM:
/etc/init.d/php5-fpm reload
Pour obtenir CGI dans nginx, nous devons installer fcgiwrap. Fcgiwrap est un wrapper CGI qui permet aux scripts CGI complexes et peut être utilisé pour les environnements d’hébergement partagés, car il permet à chaque serveur virtuel à utiliser son propre répertoire cgi-bin.
Installez le package de fcgiwrap:
apt-get install fcgiwrap
Configurer PHP pour Nginx
Commencez par ouvrir le fichier par défaut du serveur Nginx avec les privilèges root:
nano /etc/nginx/sites-available/default
Avec les commentaires supprimés, ce fichier ressemble à ceci:
server { root /usr/share/nginx/www; index index.html index.htm; server_name localhost; location / { try_files $uri $uri/ /index.html; } location /doc/ { alias /usr/share/doc/; autoindex on; allow 127.0.0.1; deny all; } }
Nous modifierons ce de manière significative. Tout d’abord, nous voulons lui dire de écouter sur le port 80. Vous pouvez simplement décommenter cette ligne dans le fichier:
server { listen 80; root /usr/share/nginx/www; index index.html index.htm; . . .
Ensuite, nous avons besoin de fixer l’indexation pour trouver le fichier index de PHP :
server { listen 80; root /usr/share/nginx/www; index index.php index.html index.htm; . . .
Nous devons changer le nom du serveur à partir de localhost
pour le nom de domaine ou l’adresse IP associée à votre serveur. Cela lui permettra de faire correspondre correctement les requêtes Web:
. . . root /usr/share/nginx/www; index index.php index.html index.htm; server_name server_domain_or_IP_address; location / { . . .
Nous pouvons commenter la section de la documentation, car elle est configurée et de n’accepter que les demandes provenant du serveur lui-même. Nous voulons permettre à certaines traitement des erreurs. Ces lignes devraient déjà être dans votre dossier, et vous pouvez tout simplement supprimer les commentaires:
. . . # location /doc/ { # alias /usr/share/doc/; # autoindex on; # allow 127.0.0.1; # deny all; # } error_page 404 /404.html; error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/www; } . . .
Dans la section d’erreur, vous pouvez définir un bloc de localisation qui sera la main hors de nos fichiers PHP à notre processeur. C’est un peu déjà présent dans la section commentaires, mais vous devez prendre soin de le configurer correctement.
En particulier, nous avons une directive try_files
qui va de pair avec notre configuration PHP choix pour jeter fichiers PHP qui ne sont pas des résultats exacts. Nous avons également mis une directive fastcgi_param
de passer le nom du script correct à notre processeur à exécuter.
. . . location ~ \.php$ { try_files $uri =404; fastcgi_pass unix:/var/run/php5-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } . . .
Ci-dessous, nous allons trouver un autre commentaire sur le bloc que nous pouvons supprimer #
. Ceci permet d’ignorer les fichiers htaccess utilisés par Apache pour mettre en œuvre la configuration par répertoire depuis Nginx à ne pas utiliser.
. . . location ~ /\.ht { deny all; } }
Cela devrait vous amener à la fin de votre fichier de configuration. À ce stade, votre fichier devrait ressembler à ceci :
server { listen 80; root /usr/share/nginx/www; index index.php index.html index.htm; server_name server_domain_or_IP_address; location / { try_files $uri $uri/ /index.html; } error_page 404 /404.html; error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/www; } location ~ \.php$ { try_files $uri =404; fastcgi_pass unix:/var/run/php5-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } location ~ /\.ht { deny all; } }
Enregistrez et fermez le fichier. Maintenant, nous devons redémarrer votre serveur Web pour mettre en œuvre votre nouvelle configuration :
service nginx restart
Tester PHP sur votre serveur
Pour commencer, nous allons créer un fichier de test en PHP sur la racine de votre serveur (/usr/share/nginx/www
). Ce fichier contiendra l’ensemble des fonctions PHP qui affiche les informations de votre serveur:
sh -c 'echo "" > /usr/share/nginx/www/info.php'
Maintenant, tester ce fichier dans notre navigateur Web en tapant le nom de domaine ou l’adresse IP suivi par le chemin « /info.php » :
server_domain_or_IP_address
/info.php
Le prochain Tutoriel vous expliqueras comment associer (Compilation) Naxsi et Nginx.