Respuestas:
Las preguntas son un poco extrañas, no está claro si solo está pidiendo PHP o si su pregunta es más general.
Le daré una breve descripción del lado de PHP.
Primero, los dos protocolos:
Los scripts CGI son una forma de ejecutar un script del lado del servidor cuando llega una solicitud HTTP; esto no tiene nada que ver con PHP
FastCGI es un "mejor CGI": se sabe que CGI es lento, Fast CGI es un enfoque diferente con resultados mucho más rápidos; Esto tampoco tiene nada que ver con PHP.
Ahora las cosas relacionadas con PHP:
mod_php está ejecutando un PHP como módulo de Apache, es decir, la solicitud de PHP se ejecuta bajo el proceso de Apache con todo lo que conlleva: los procesos de Apache están definidos por la configuración de Apache, PHP se ejecuta con el permiso de Apache, etc.
PHP-FPM es la implementación de FastCGI de PHP; PHP-FPM se ejecuta como un servidor FastCGI independiente y Apache se conecta al servidor utilizando el módulo de Apache, generalmente mod_fcgid o mod_fastcgi; Personalmente, creo que esto es mucho mejor que ejecutar como mod_php, pero depende de sus requisitos y también es un poco más complejo; en esta configuración, permiso, procesa cosas relacionadas y todo se ejecuta bajo configuración PHP, usuario PHP, etc. & Apache se conecta a PHP como a un servidor; en esta configuración también es posible tener un grupo de servidores PHP y tener un servidor PHP en una máquina físicamente diferente a Apache. Dicen que esto es casi tan rápido como usar el módulo de Apache y hay beneficios de un mejor control sobre la configuración de PHP.
SuPHP: esto se usó principalmente para abordar algunos problemas de mod_php relacionados con los permisos; con mod_php, los scripts PHP se ejecutan bajo el usuario / grupo Apache; mod_suphp puede ejecutar los scripts en diferentes usuarios; Nunca lo usé, PHP-FPM ahora debería ser una opción mucho mejor
Así que básicamente: