Відповіді:
Питання дещо дивні, незрозуміло, якщо ви запитуєте лише для PHP або ваше питання є більш загальним.
Я дам вам короткий огляд з боку PHP.
По-перше, два протоколи:
CGI-скрипти - це спосіб запустити сценарій на стороні сервера, коли надходить запит HTTP; це не має нічого спільного з PHP
FastCGI - це "кращий CGI" - CGI, як відомо, є повільним, швидкий CGI - це інший підхід із значно швидшими результатами; це також не має нічого спільного з PHP.
Тепер пов'язані з PHP речі:
mod_php запускає PHP як модуль Apache - тобто запит PHP запускається в процесі Apache з усім, що йде з ним - процеси Apache визначаються конфігурацією Apache, PHP запускається з дозволу Apache і т.д.
PHP-FPM - це реалізація FastCGI PHP; PHP-FPM працює як окремий сервер FastCGI, і Apache підключається до сервера за допомогою модуля Apache, як правило, mod_fcgid або mod_fastcgi; Я особисто думаю, що це набагато краще, ніж працювати як mod_php, але це залежить від ваших вимог, а також трохи складніше; у цій конфігурації дозвіл, пов'язані з процесами речі та все працює у конфігурації PHP, користувач PHP тощо. Apache підключається до PHP як до сервера; у цій конфігурації також можливо мати пул серверів PHP та мати PHP-сервер на фізично іншому апараті, ніж Apache. Вони кажуть, що це майже так само швидко, як і використання модуля Apache, і є переваги кращого контролю над конфігурацією PHP.
SuPHP - це здебільшого використовувалося для вирішення деяких проблем mod_php, пов'язаних з дозволами; з PHP-скриптами mod_php запускаються під користувачем / групою Apache; mod_suphp може запускати сценарії у іншого користувача; Я ніколи його не використовував, PHP-FPM зараз повинен бути набагато кращим вибором
Отже, в основному: