Installation Nginx · 3 min read · Dec 13, 2025

Installation de Nginx avec PHP5 et support MySQL sur Fedora 13 - Page 2

4 Installer PHP5

Nous pouvons faire fonctionner PHP5 dans nginx via FastCGI. Il n’y a pas de package de démon FastCGI autonome pour Fedora, donc nous utilisons le package FastCGI de lighttpd (lighttpd-fastcgi) et l’installons avec php-cli et quelques modules PHP5 comme php-mysql dont vous avez besoin si vous souhaitez utiliser MySQL depuis vos scripts PHP :

yum install lighttpd-fastcgi 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-tidy

Ensuite, ouvrez /etc/php.ini et ajoutez la ligne cgi.fix_pathinfo = 1 à la fin du fichier :

vi /etc/php.ini

| [...] cgi.fix_pathinfo = 1 |

Le package lighttpd-fastcgi est livré avec l’exécutable /usr/bin/spawn-fcgi que nous pouvons utiliser pour démarrer des processus FastCGI. Jetez un œil à

spawn-fcgi --help

pour en savoir plus à ce sujet.

Pour démarrer un démon PHP FastCGI écoutant sur le port 9000 sur localhost et s’exécutant en tant qu’utilisateur et groupe nginx, nous exécutons la commande suivante :

/usr/bin/spawn-fcgi -a 127.0.0.1 -p 9000 -u nginx -g nginx -f /usr/bin/php-cgi -P /var/run/fastcgi-php.pid

Bien sûr, vous ne voulez pas taper cette commande manuellement chaque fois que vous démarrez le système, donc pour que le système exécute la commande automatiquement au démarrage, ouvrez /etc/rc.local…

vi /etc/rc.local

… et ajoutez la commande à la fin du fichier :

| [...] /usr/bin/spawn-fcgi -a 127.0.0.1 -p 9000 -u nginx -g nginx -f /usr/bin/php-cgi -P /var/run/fastcgi-php.pid |

5 Configurer nginx

La configuration de nginx se trouve dans /etc/nginx/nginx.conf que nous ouvrons maintenant :

vi /etc/nginx/nginx.conf

La configuration est facile à comprendre (vous pouvez en apprendre davantage 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 vers 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; } # interdire l'accès aux fichiers .htaccess, si le document root d'Apache # coïncide avec 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 d’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 en 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 restart

Maintenant, 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 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

Share: X/Twitter LinkedIn

Recevez de nouveaux articles dans votre boîte de réception.

Aucun spam. Désabonnez-vous à tout moment.