Configurer PHPFPM avec Apache + mod_FastCGI

J’ai récemment repris un serveur Web qui exécute PHP et Apache. PHP utilise actuellement PHPFPM via le mod_fastcgi d’Apache. Tout se passe bien, mais lors de mes recherches pour vérifier que je comprenais les tenants et les aboutissants de l’implémentation, j’ai rencontré une configuration déconcertante. Sur le serveur Web Apache, les éléments suivants sont utilisés:

ScriptAlias /php-cgi "/usr/local/bin/php-cgi" AddHandler php-fastcgi .php Action php-fastcgi /php-cgi FastCGIExternalServer /usr/local/bin/php-cgi -socket /tmp/php-fpm.sock -idle-timeout 60 -pass-header Authorization 

Maintenant, comme mentionné avant que la configuration ci-dessus fonctionne correctement. Mais il semblerait que cette configuration utilise deux solutions: la solution PHP-CGI et la solution PHP-FPM. À partir de mes lectures et de ma compréhension, PHP-FPM offre un remplacement pour PHP-CGI, pas quelque chose qui court le long de celui-ci. Par conséquent, je pense que la configuration suivante est supposée être en place:

 ScriptAlias /php-cgi "/usr/local/sbin/php-fpm" AddHandler php-fastcgi .php Action php-fastcgi /php-cgi FastCGIExternalServer /usr/local/sbin/php-fpm -socket /tmp/php-fpm.sock -idle-timeout 60 -pass-header Authorization 

La deuxième configuration (utilisant PHP-FPM) fonctionne également. Je n’ai rien remarqué entre les deux, mais cela m’inquiète que l’un ou l’autre soit effectivement faux.

Quelqu’un voudrait-il partager ses pensées, ses découvertes ou répondre à la configuration qui est supposée être en place? Je n’aime pas l’idée de lancer php-cgi alors que je devrais exécuter php-fpm.

Merci d’avance, Jason

Vous regardez le mauvais paramètre. FastCGI utilise le socket pour communiquer avec PHP-FPM dans ce cas. Vous verrez que le socket est configuré dans la configuration PHP-FPM.

Donc ce n’est pas le premier paramètre de FastCGIExternalServer qui est important, mais plutôt le second. Le premier est juste là pour tromper Apache.

Donc, ce qui se passe avec les gestionnaires, c’est qu’un Handler est créé pour PHP, une Action est créée pour ce Handler, ce chemin est en alias. Lorsque cela est fait, FastCGI peut pointer ce chemin vers un socket.

Ce sera mieux avec Apache 2.4 avec mod_proxy_fcgi à la place.

Bravo, Josef