Réponses:
Les questions sont un peu étranges, il n'est pas clair si vous ne demandez que PHP ou si votre question est plus générale.
Je vais vous donner un bref aperçu du côté de PHP.
Tout d'abord, les deux protocoles:
Les scripts CGI permettent d'exécuter un script côté serveur lorsqu'une requête HTTP est reçue. cela n'a rien à voir avec PHP
FastCGI est un "meilleur CGI" - on sait que CGI est lent, Fast CGI est une approche différente avec des résultats beaucoup plus rapides; cela n'a rien à voir avec PHP.
Maintenant, les choses liées PHP:
mod_php exécute un PHP en tant que module Apache - la requête PHP est exécutée sous un processus Apache avec tout ce qui va avec - les processus Apache sont définis par la configuration Apache, PHP est exécuté avec l'autorisation Apache, etc.
PHP-FPM est l'implémentation FastCGI de PHP; PHP-FPM fonctionne en tant que serveur FastCGI autonome et Apache se connecte au serveur à l'aide du module Apache, généralement mod_fcgid ou mod_fastcgi; Personnellement, je pense que cela est bien mieux que d’exécuter en tant que mod_php, mais cela dépend de vos besoins et est aussi un peu plus complexe; dans cette configuration, les autorisations, les processus liés aux tâches et tout est exécuté sous configuration PHP, utilisateur PHP, etc. & Apache se connecte à PHP comme à un serveur; Dans cette configuration, il est également possible d'avoir un pool de serveurs PHP et d'avoir un serveur PHP sur une machine physiquement différente d'Apache. Ils disent que c'est presque aussi rapide que d'utiliser le module d'Apache et qu'il y a des avantages à un meilleur contrôle de la configuration de PHP.
SuPHP - cela a été principalement utilisé pour résoudre certains problèmes de mod_php liés aux permissions; with mod_php Les scripts PHP sont exécutés sous l'utilisateur / groupe Apache; mod_suphp peut exécuter les scripts dans différents utilisateurs; Je ne l'ai jamais utilisé, PHP-FPM devrait maintenant être un meilleur choix
Donc en gros: