J'essaye d'installer php avec fpm sur macports. J'ai lu quelque part que fpm signifie gestionnaire de processus FastCGI. Est-ce que cela signifie que fastcgi et fpm sont identiques? Si elles sont identiques, pourquoi avons-nous deux variantes macports différentes pour php, à savoir "php5 + fastcgi" et "php5 + fpm"
Réponses
Trop de publicités?FPM est un gestionnaire de processus pour gérer le FastCGI SAPI (Server API) en PHP.
Fondamentalement, il remplace le besoin de quelque chose comme SpawnFCGI. Il génère le FastCGI enfants de manière adaptative (le sens de la lance de plus si le courant de charge nécessite).
Sinon, il n'y a pas beaucoup d'exploitation de différence entre elle et FastCGI (Le pipeline de demande depuis le début de la demande à la fin est la même). Il est juste là pour faire de la mise en œuvre plus facile.
Ce que Anthony dit est tout à fait exact, mais je tiens à ajouter que votre expérience sera probablement montrer beaucoup de meilleures performances et de l'efficacité (en raison de ne pas fpm-vs-fcgi, mais plus à la mise en œuvre de votre httpd).
Par exemple, j'avais un quad-core de la machine exécutant lighttpd + fcgi chantonner tout bien. J'ai mis à jour à 16-core de la machine pour faire face à la croissance, et de deux choses l'explided: l'utilisation de la RAM, et de segmentation. J'ai trouvé moi-même en redémarrant lighttpd toutes les 30 minutes pour maintenir le site.
Je suis passé à php-fpm et nginx, et l'utilisation de la RAM a chuté de plus de 20 GO à 2 go. Segmentation a disparu. Après avoir fait quelques recherches, j'ai appris que lighttpd et fcgi ne pas obtenir le long bien sur le multi-core machines à sous charge, et ont aussi des problèmes de fuite de mémoire dans certains cas.
Est-ce dû à php-fpm être mieux que fcgi? Pas entièrement, mais comment vous crochet dans php-fpm semble être un ensemble de heckuva beaucoup plus efficace que la façon dont vous servir via fcgi.