Installation Nginx · 4 min read · Feb 04, 2026
Installation de Nginx avec PHP5 (et PHP-FPM) et support MySQL sur Fedora 14 - Page 2
4 Installation de PHP5
Nous pouvons faire fonctionner PHP5 dans nginx via PHP-FPM (PHP-FPM (FastCGI Process Manager) est une implémentation PHP FastCGI alternative avec des fonctionnalités supplémentaires utiles pour des sites de toute taille, en particulier les sites plus fréquentés). Il n’y a pas de paquet php-fpm dans les dépôts officiels de Fedora 14, mais heureusement le dépôt Remi fournit un tel paquet.
Pour activer le dépôt Remi, exécutez :
rpm -ivh http://rpms.famillecollet.com/remi-release-14.rpmEnsuite, ouvrez /etc/yum.repos.d/remi.repo…
vi /etc/yum.repos.d/remi.repo… et changez enabled à 1 et gpgcheck à 0 dans la section [remi] (ne pas activer la section [remi-test] !) :
| [remi] name=Les RPM de remi pour Fedora $releasever - $basearch #baseurl=http://rpms.famillecollet.com/fedora/$releasever/remi/$basearch/ mirrorlist=http://rpms.famillecollet.com/fedora/$releasever/remi/mirror enabled=1 gpgcheck=0 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-remi failovermethod=priority [remi-test] name=Les RPM de remi en test pour Fedora $releasever - $basearch #baseurl=http://rpms.famillecollet.com/fedora/$releasever/test/$basearch/ mirrorlist=http://rpms.famillecollet.com/fedora/$releasever/test/mirror enabled=0 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-remi failovermethod=priority |
Maintenant, nous pouvons installer php-fpm avec php-cli et certains modules PHP5 comme php-mysql dont vous avez besoin si vous souhaitez utiliser MySQL depuis vos scripts PHP :
yum install php-fpm php-cli php-mysql php-gd php-imap php-ldap php-odbc php-pear php-xml php-xmlrpc php-eaccelerator php-magickwand php-magpierss php-mbstring php-mcrypt php-mssql php-shout php-snmp php-soap php-tidyEnsuite, ouvrez /etc/php.ini et décommentez la ligne cgi.fix_pathinfo=1 :
vi /etc/php.ini| [...] ; cgi.fix_pathinfo fournit un support *réel* pour PATH_INFO/PATH_TRANSLATED pour CGI. Le comportement précédent de PHP était de définir PATH_TRANSLATED à SCRIPT_FILENAME, et de ne pas comprendre ce qu'est PATH_INFO. Pour plus d'informations sur PATH_INFO, voir les spécifications cgi. Le fait de définir cela à 1 fera en sorte que PHP CGI corrige ses chemins pour se conformer à la spécification. Un réglage à zéro fait que PHP se comporte comme auparavant. La valeur par défaut est 1. Vous devriez corriger vos scripts pour utiliser SCRIPT_FILENAME plutôt que PATH_TRANSLATED. ; http://www.php.net/manual/en/ini.core.php#ini.cgi.fix-pathinfo cgi.fix_pathinfo=1 [...] |
Ensuite, créez les liens de démarrage système pour php-fpm et démarrez-le :
chkconfig --levels 235 php-fpm on
/etc/init.d/php-fpm startPHP-FPM est un processus daemon (avec le script d’initialisation /etc/init.d/php-fpm) qui exécute un serveur FastCGI sur le port 9000.
5 Configuration de nginx
La configuration de nginx se trouve dans /etc/nginx/nginx.conf que nous ouvrons maintenant :
vi /etc/nginx/nginx.confLa configuration est facile à comprendre (vous pouvez en apprendre plus ici : http://wiki.codemongers.com/NginxFullExample et ici : http://wiki.codemongers.com/NginxFullExample2)
Tout d’abord (c’est optionnel), vous pouvez augmenter le nombre de processus de travail et définir le keepalive_timeout à une valeur raisonnable :
| [...] worker_processes 5; [...] keepalive_timeout 2; [...] |
Les hôtes virtuels sont définis dans des conteneurs server {}. Modifions le vhost par défaut comme suit :
| [...] server { listen 80; server_name _; #charset koi8-r; #access_log logs/host.access.log main; location / { root /usr/share/nginx/html; index index.php index.html index.htm; } error_page 404 /404.html; location = /404.html { root /usr/share/nginx/html; } # rediriger les pages d'erreur du serveur vers la page statique /50x.html # error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/html; } # proxy les scripts PHP à Apache écoutant sur 127.0.0.1:80 # #location ~ \.php$ { # proxy_pass http://127.0.0.1; #} # passer les scripts PHP au serveur FastCGI écoutant sur 127.0.0.1:9000 # location ~ \.php$ { root /usr/share/nginx/html; try_files $uri =404; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /usr/share/nginx/html$fastcgi_script_name; include fastcgi_params; } # refuser l'accès aux fichiers .htaccess, si le document root d'Apache # correspond à celui de nginx # location ~ /\.ht { deny all; } } [...] |
servername ; fait de ceci un vhost par défaut qui attrape tout (bien sûr, vous pouvez également spécifier un nom d’hôte ici comme www.example.com).
Dans la partie location /, j’ai ajouté index.php à la ligne index. root /usr/share/nginx/html; signifie que le document root est le répertoire /usr/share/nginx/html.
La partie importante pour PHP est le bloc location ~ .php$ {}. Décommentez-le pour l’activer. Changez la ligne root pour le document root du site web (par exemple, root /usr/share/nginx/html;). Veuillez vous assurer que vous changez la ligne fastcgi_param en fastcgi_param SCRIPT_FILENAME /usr/share/nginx/html$fastcgi_script_name; car sinon l’interpréteur PHP ne trouvera pas le script PHP que vous appelez dans votre navigateur.
Maintenant, enregistrez le fichier et redémarrez nginx :
/etc/init.d/nginx restartMaintenant, créez le fichier PHP suivant dans le document root /usr/share/nginx/html…
vi /usr/share/nginx/html/info.php| |
Maintenant, nous appelons ce fichier dans un navigateur (par exemple, http://192.168.0.100/info.php) :

Comme vous le voyez, PHP5 fonctionne, et il fonctionne via FPM/FastCGI, comme indiqué dans la ligne Server API. Si vous faites défiler plus bas, vous verrez tous les modules qui sont déjà activés dans PHP5, y compris le module MySQL :

6 Liens
- nginx: http://nginx.net/
- Wiki nginx: http://wiki.codemongers.com/Main
- PHP: http://www.php.net/
- PHP-FPM: http://php-fpm.org/
- MySQL: http://www.mysql.com/
- Fedora: http://fedoraproject.org/
À propos de l’auteur
Falko Timme est le propriétaire de Timme Hosting (hébergement web nginx ultra-rapide). Il est le responsable principal de HowtoForge (depuis 2005) et l’un des développeurs principaux d’ISPConfig (depuis 2000). Il a également contribué au livre O’Reilly “Administration système Linux”.
Recevez de nouveaux articles dans votre boîte de réception.
Aucun spam. Désabonnez-vous à tout moment.