Чаще других в файле 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 и обратимся к некоторым из основных инструкций настройки.