Исторически PHP работал, используя CGI, Common Gateway Interface.
При каждом запросе веб-сервер:
$_SERVER
попадают из переменных окружения) с характеристиками запросаИменно из CGI PHP унаследовал модель работы Designed To Die.
FastCGI - современная, улучшенная версия CGI, в которой:
Однако некоторые недостатки FastCGI привели к появлению...
Улучшенный FastCGI. Этот способ в основном используется в связке с nginx
mod_php
Классика, самый обычный способ конфигурации PHP с веб-сервером Apache. Кодовая база PHP подключается как модуль веб-сервера и работает "изнутри" веб-сервера. Достоинство этого подхода в простоте настройки и скорости работы. Недостатки же вытекают из достоинств: слабая масштабируемость, зависимость от веб-сервера, меньшая безопасность, отсутствие возможности гибко конфигурировать версии PHP.
Часто используемый для обычных проектов и разработки веб-сервер. PHP обычно неплохо работает с настройками по умолчанию.
Для подключения PHP в настройках где-то (обычно в /etc/apache2/) должна быть следующая строка, или строка, подобная этой:
LoadModule php5_module modules/mod_php.so
Эти же строки добавляют связь между расширением файла и модулем php для обрабоки этих файлов:
<FilesMatch "\.(php|php[57]|phtml)$">
SetHandler application/x-httpd-php
</FilesMatch>
DirectoryIndex
указывают веб-серверу, что кроме index.html
нужно обрабатывать и index.php
:
DirectoryIndex index.php index.phtml
.htaccess