Php модуль або cgi mod_php vs cgi, відмінності установки php як модуля apache і fastcgi

PHP, встановлений як модуль Apache (mod_php)

Переваги установки PHP, як модуля для Apache mod_php:

  • Висока продуктивність скриптів, в порівнянні з іншими методами установки: CGI і FastCGI.
  • Підтримка конфігураційних файлів .htaccess, функцій роботи з заголовками і деяких інших особливостей.
  • Загальний конфігураційний файл PHP для всіх скриптів (php.ini).

Недоліки установки PHP, як модуля для Apache:

  • Запуск всіх скриптів з правами користувача HTTP-сервера Apache (для Windows це не є недоліком, так як в будь-якому випадку за замовчуванням всі програми запускаються від одного користувача), що потенційно може загрожувати безпеці сервера в цілому. При використанні спеціалізованих модулів Apache 2.2 або інших рішень, опис яких можна знайти в інтернет, можна налаштувати Apache + mod PHP таким чином, щоб скрипти PHP запускалися від різних користувачів.
  • Ускладнення процесу моніторингу та відповіді на питання: "Хто або що" вантажить "сервер?".
  • Підвищена ресурсомісткість, в порівнянні з CGI і FastCGI.
  • Складність підключення PHP, як модуля HTTP-сервера Апач в Windows. З тим, як легко налаштувати зв'язку PHP + Apache можна ознайомитись в статті: "Налаштування зв'язки PHP (як модуль Apache), Apache і MySQL".

Незважаючи на всі наведені вище недоліки, установка PHP як модуля для Apache (mod_php) є найпопулярнішим способом підключення PHP до Apache.

PHP, встановлений як FastCGI (mod_fastcgi)

Оскільки PHP в режимі FastCGI (використовується модуль Apache: "mod_fastcgi") працює значно швидше, ніж звичайно CGI. і крім відмінностей в швидкості між цими двома режимами інших принципових відмінностей немає (як для користувача або розробника web-додатків), нижче буде розглядатися переваги і недоліки інтеграції Apache і PHP способом FastCGI.

Переваги установки PHP, як FastCGI:

  • Все PHP-скрипти виконуються від імені користувача-власника директорії (важливо тільки для UNIX систем).
  • Індивідуальні настройки PHP для кожного користувача.
  • Споживання ресурсів системи менше, ніж при використанні PHP, в якості модуля.

Недоліки установки PHP, як FastCGI:

  • Відсутність підтримки конфігураційних файлів .htaccess, функцій роботи з заголовками і деяких інших особливостей.
  • Швидкість виконання PHP скриптів нижче, ніж при підключенні PHP до Апач, як модуль.