Чаще других в файле Solaris httpd.conf встречаются инструкции LoadModule и AddModule. В общей сложности они занимают более 60 из 160 строк файла httpd.conf.
И все 60 строк выполняют настройку модулей динамических разделяемых объектов (Dynamic Shared Object, DSO), задействованных в работе сервера Apache.
Apache состоит из многочисленных программных модулей. Подобно модулям ядра, модули DSO могут встраиваться в исполняемый файл Apache, либо загружаться во время работы сервера. Ключ -1 командной строки httpd позволяет получить список всех модулей, встроенных в Apache. Следующий пример взят с системы Solaris 8:
$ /usr/apache/bin/httpd -1 Compiled-in modules: http_core.c mod_so.с
В некоторых системах число модулей, встроенных в демон Apache, может быть достаточно большим. В системах Solaris и Red Hat по умолчанию таких модулей всего два:
http_core.c - Главный модуль. Он всегда связывается с ядром Apache статически и предоставляет базовую функциональность, необходимую каждому веб-серверу Apache. Данный модуль является обязательным, состав прочих может меняться.
modso.c - Данный модуль предоставляет поддержку времени выполнения для модулей динамических разделяемых объектов. Он требуется, если вы намереваетесь динамически подключать другие модули во время работы сервера. Если модули загружаются посредством инструкций в файле httpd.conf, наличие данного модуля обязательно. По этой причине он часто встраивается в ядро Apache.
Помимо двух этих встроенных модулей, в Solaris используется большое число динамически загружаемых модулей. Для загрузки объектов DSO в файле httpd.conf применяются инструкции LoadModule и AddModule. Прежде всего, каждый модуль должен быть указан в инструкции LoadModule. Например, следующая строка из файла Solaris httpd.conf определяет модуль, отслеживающий пользователей посредством cookie-квитанций:
LoadModule usertrackjnodule /usr/apache/libexec/mod_usertrack.so
Инструкция LoadModule содержит имя модуля и путь к файлу разделяемого объекта.
Прежде чем модуль можно будет использовать, его следует добавить в список модулей, доступных серверу Apache. Первый шаг на пути к новому списку модулей - очистка старого списка. Она выполняется посредством инструкции ClearModuleList. У инструкции ClearModuleList нет аргументов или параметров. Она фигурирует в файле httpd.conf за последней инструкцией LoadModule и до первой инструкции AddModule.
Инструкция AddModule добавляет имя модуля в список модулей. Список модулей должен содержать все необязательные модули, как встроенные в сервер, так и загружаемые динамически. Для нашей тестовой системы Solaris это означает, что инструкций AddModule в файле httpd.conf на одну больше, чем инструкций LoadModule. Дополнительная инструкция AddModule относится к модулю mod_so.c, который на нашей тестовой системе является единственным встроенным из необязательных модулей. Однако инструкции LoadModule и AddModule по большей части встречаются парами: одна инструкция AddModule на каждую инструкцию LoadModule. Например, следующая инструкция AddModule в файле Solaris httpd.conf добавляет модуль usertrack_module, определенный инструкцией LoadModule, которую мы ранее уже встречали, в список модулей:
AddModul e mod_usertrack.c
Инструкция AddModule требует указания имени исходного файла загружаемого модуля. Обратите внимание - это имя исходного файла, компиляция которого привела к получению объектного модуля, а не имя модуля из инструкции LoadModule. Это имя, если не считать расширения, полностью совпадает с именем объектного файла. В инструкции LoadModule, которая использует расширение разделяемых объектов .so, именем объектного файла является mod._usertrack.so. Инструкция AddModule работает с расширением файлов исходного текста - .с, поэтому в ней фигурирует имя modjusertrack.c.
В табл. 11.1 перечислены все модули, упомянутые в инструкциях AddModule файла httpd.conf системы Solaris 8.
Таблица 11.1. Модули DSO, загружаемые при настройке сервера в Solaris
Модуль | Назначение |
mod_access | Реализует управление доступом |
mod_actions | Позволяет использовать специальные обработчики для отдельных типов MIME или методов доступа |
mod_alias | Позволяет ссылаться на документы и сценарии, существующие за пределами корневого каталога документа |
mod_asis | Определяет типы файлов, передаваемых без заголовков |
mod_auth | Реализует аутентификацию пользователей |
mod_auth_arxon | Реализует анонимный доступ |
mod_auth_dbm | Реализует работу с файлом данных аутентификации в формате DBM |
mod_autoindex | Реализует автоматическое создание указателя |
mod_cern_meta | Реализует совместимость со старыми веб-серверами CERN |
mod_cgi | Реализует исполнение программ CGI |
moddigest | Реализует аутентификацию по алгоритму MD5 |
mod_dir | Управляет форматом перечней файлов в каталогах |
mod_env | Разрешает сценариям CGI и серверным инструкциям SSI (server-side includes) наследовать все переменные среды интерпретатора |
mod_expires | Позволяет указывать дату для заголовка Expires: |
mod_headers | Реализует настраиваемые заголовки ответов |
mod_imap | Реализует обработку сенсорных карт |
mod_include | Реализует обработку SSI-файлов |
mod_info | Позволяет использовать информацию о сервере |
Модуль | Назначение |
mod_log_config | Позволяет настраивать формат записей журнала |
mod_mime | Реализует поддержку файлов MIME |
mod_mime_magic | Позволяет определять MIME-тип файла по его содержимому |
mod_negotiation | Реализует согласование MIME-содержимого |
mod_perl | Реализует поддержку языка Perl |
mod_proxy | Позволяет использовать вео-кэширование |
mod_re write | Позволяет использовать отображения URI в имена файлов |
mod_setenvif | Позволяет выполнять настройку переменных среды на основе сведений, полученных от клиента |
mod_so | Обеспечивает поддержку динамических разделяемых объектов (DSO) во время работы сервера |
mod_speling | Автоматически исправляет мелкие ошибки орфографии |
mod_status | Обеспечивает веб-доступ к отчет}- серверной информации |
mod_uriique_id | Позволяет генерировать уникальный идентификатор для каждого запроса |
moduserdir | Определяет каталог, в котором пользователи могут создавать свои веб-страницы |
mod_usertrack | Позволяет отслеживать пользователей при помощи уникальных идентификаторов, известных как coookie-квитанции |
mоd_ vhоst_alias | Реализует поддержку для именованных виртуальных узлов |
Добавляя модули в настройки сервера, будьте очень осторожны. Порядок следования инструкций LoadModule и AddModule в файле httpd.conf невероятно важен. Не изменяйте настройки, если не уверены в своих действиях. Прежде чем устанавливать новый модуль, прочтите документацию к нему, а также документацию по модулям, хранимую в каталоге manual/mod дистрибутива Apache. Более подробные рекомендации по установке новых модулей приводятся в книге «Linux Apache Web Server Administration», упомянутой выше.
Когда загружены модули DSO, их инструкции можно использовать в файле настройки. Продолжим изучение файла httpd.conf для Solaris и обратимся к некоторым из основных инструкций настройки.