As perguntas são um pouco estranhas, não está claro se você está pedindo apenas PHP ou sua pergunta é mais geral.
Vou dar uma breve visão geral do lado do PHP.
Primeiro, os dois protocolos:
-
Os scripts CGI são uma maneira de executar um script do lado do servidor quando uma solicitação HTTP vem; isso não tem nada a ver com o PHP
-
O FastCGI é um "melhor CGI" - o CGI é conhecido por ser lento, o Fast CGI é uma abordagem diferente com resultados muito mais rápidos; isso também não tem nada a ver com o PHP.
Agora as coisas relacionadas ao PHP:
-
mod_php está executando um PHP como módulo do Apache - que é PHP request é executado sob o processo Apache com tudo que o acompanha - os processos do Apache são definidos pela configuração do Apache, o PHP é executado com permissão do Apache, etc.
-
O PHP-FPM é a implementação FastCGI do PHP; O PHP-FPM é executado como um servidor FastCGI autônomo e o Apache se conecta ao servidor usando o módulo do Apache, geralmente mod_fcgid ou mod_fastcgi; Eu pessoalmente acho que isso é muito melhor do que rodar como mod_php, mas depende das suas necessidades e também é um pouco mais complexo; nesta configuração, permissão, processa coisas relacionadas & tudo é executado sob configuração PHP, usuário PHP, etc. & O Apache se conecta ao PHP como a um servidor; nesta configuração também é possível ter um conjunto de servidores PHP e ter um servidor PHP em uma máquina fisicamente diferente do Apache. Eles dizem que isso é quase tão rápido quanto usar o módulo do Apache e há benefícios de um melhor controle sobre a configuração do PHP.
-
SuPHP - isso foi usado principalmente para resolver alguns problemas de mod_php relacionados a permissões; com scripts PHP mod_php são executados sob o usuário / grupo do Apache; mod_suphp pode executar os scripts no usuário diferente; Eu nunca usei, o PHP-FPM agora deve ser uma escolha muito melhor
Então, basicamente:
- CGI, Fast-CGI são protocolos; O CGI é lento, o Fast-CGI é muito mais rápido
- mod_php (com sublinhado) e PHP-FPM são duas maneiras básicas de executar o PHP
- mod_SuPHP é semelhante a mod_php, mas pode alterar o usuário / grupo que o processo executa em