Как работают mod_php, mod_python, mod_Language - PullRequest
1 голос
/ 15 ноября 2011

Некоторые модули Apache связаны с языками программирования, такими как mod_php и mod_python.Описание в основном «включает использование php в apache» или «включает использование python в apache».Я пытаюсь понять, как работают эти "языковые" модули.

Ответы [ 2 ]

4 голосов
/ 15 ноября 2011

Это относительно просто; Когда веб-сервер запускается, он регистрирует модули в своем ядре. Модули интерпретатора языка, такие как mod_php, зарегистрируют ловушку в обработчике запроса страницы.

Это означает, что когда пользователь запрашивает страницу, веб-сервер передает запрос модулю, который проверяет, является ли запрошенный файл типом, зарегистрированным для выполнения анализатором за модулем. В случае с PHP вы, скорее всего, добавляете «AddType application / x-httpd-php .php» или аналог файла httpd.conf, который mod_php будет учитывать при разборе таких запросов.

Теперь PHP контролирует запрос, который читает файл, анализирует, компилирует и выполняет его, а затем возвращает его в буфер запроса, который веб-сервер будет выполнять в качестве содержимого.

То же самое относится и к другим модулям, хотя их обработка запроса отличается, они все делают то же самое.

1 голос
/ 15 ноября 2011

По сути, если вы установите и сконфигурируете правильные значения mod_php, будет запущен php-файл внутри директории apache DirectoryRoot.Mod_python работает аналогично.

Если вы устанавливаете apache без mod_php и у вас есть foo.php в корне вашей папки htdocs, тогда http://yourdomain/foo.php будет обрабатывать документ как обычный текстовый файл.Установка и настройка mod_php приведет к тому, что скрипт будет проанализирован как скрипт php, а вывод будет отправлен в браузер, а не как необработанный текст.

Джастин

...