PHP-FPM et LIGHTTPD
+
Par Remi le mardi 28 septembre 2010, 18:43 - HowTo - Lien permanent
Depuis PHP 5.3.3, le moteur PHP-FPM est intégré. Le paquet php-fpm est disponible dans le dépôt remi est sera bientôt aussi dans rawhide.
Cet article montre comment l'utiliser avec le serveur lighttpd.
L'objectif est de faire fonctionner un serveur Web pour des applications locales et pour des applications livrées en RPM, je prendrais phpMyAdmin comme exemple.
1. Installation :
yum --enablerepo=remi install php-fpm phpMyAdmin lighttpd-fastcgi
Cette commande va aussi installer le serveur apache, qui écoute sur le port 80. Nous ne l'utiliserons pas mais configurerons lighttpd pour écouter sur le port 81.
2. Création de mon site web
Avec lighttpd, les pages sont, par défaut dans /var/www/lighttpd
Ce site sera vraiment minimum
echo '<?php phpinfo(); ?>' >/var/www/lighttpd/lhinfo.php
3. Configuration de lighttpd
Je suis loin d'être un expert sur ce serveur, mais à l'aide de la documentation (plutôt correcte), j'ai trouvé une solution qui marche :
Modification du fichier : /etc/lighttpd/lighttpd.conf
Port d'écoute (dé-commenter et modifier le ligne) :
server.port = 81
Activation des modules nécessaires au fonctionnement (dé-commenter les lignes) :
"mod_alias",
"mod_fastcgi",
Configuration du module fastcgi (ajouter les lignes)
fastcgi.server = ( ".php" =>
((
"host" => "127.0.0.1",
"port" => 9000
))
)
Configuration de l'alias pour phpMyAdmin, création d'un fichier /etc/lighttpd/conf.d/phpMyAdmin.conf
alias.url += ( "/phpMyAdmin" => "/usr/share/phpMyAdmin/" )
4. Lancement des services
service php-fpm start
service lighttpd start
5. URL de test
- http://localhost:81/ page d'accueil fournie par défaut avec lighttpd
- http://localhost:81/lhinfo.php notre superbe application
- http://localhost:81/phpMyAdmin/ une application RPM
6. Conclusion
Ça marche !
Commentaires
salut,
Quel est l'avantage de déclarer la configuration de fastcgi comme tu le fais avec une adresse ip et un port par rapport à la façon dont c'est fait dans la documenttation de fedora-fr (comme ci-dessous) ?
server.modules += ( "mod_fastcgi" )
fastcgi.server = ( ".php" =>
(( "socket" => "/tmp/php-fastcgi.socket",
"bin-path" => "/usr/bin/php-cgi"
))
)
Sinon, ça marche.
Merci.
php-fpm (FastCGI Process Manager) fournit un ensemble de serveurs qui restent chargés en mémoire, cela doit sensiblement améliorer les performances de PHP dans cette configuration. Le lancement d'un nouveau processus qui coute "cher". Il faudrait pouvoir exécuter un test de performance pour mesurer précisément les gains obtenus.
+