• UserDir
~
, Apache интерпретирует его имя как имя пользователя и старается найти файл в рабочем каталоге соответствующего пользователя. Директива UserDir
указывает имя подкаталога, в котором следует искать файл. Предположим, что для данной директивы задано значение public_html
и удаленный пользователь ввел в поле адреса броузера URL http://www.threeroomco.compilation/~abrown/photos.html
. Тогда Apache попытается вернуть пользователю файл photos.html
, расположенный в подкаталоге public_html
рабочего каталога пользователя abrown
. Если задано значение disabled
данной директивы, обращение к файлам, находящимся в рабочих каталогах пользователей, запрещено. Если вы хотите запретить доступ лишь к части пользовательских каталогов, вам надо после ключевого слова disabled
указать имена пользователей, рабочие каталоги которых закрыты для обращения. Данная директива часто помещается в состав директивы
, которая проверяет, загружен ли модуль Apache, предназначенный для поддержки пользовательских каталогов. (Модули Apache будут рассматриваться в следующем разделе.)• DirectoryIndex
DirectoryIndex
. В большинстве случаев по умолчанию принимается имя index.html
, установленное в качестве значения данной опции при инсталляции сервера. При необходимости вы можете задать другое имя файла. Если пользователь введет URL http://www.threeroomco.com/public/
, Apache вернет файл index.html
, находящийся в подкаталоге public каталога, указанного с помощью директивы DocumentRoot
. Если вы укажете несколько файлов индекса, Apache станет поочередно искать все файлы.Во многих дистрибутивных пакетах при установке Apache задаются каталоги, которые вполне можно использовать в процессе работы сервера. Вам надо лишь просмотреть конфигурационный файл, выяснить имена этих каталогов и поместить в них файлы, которые Web-сервер должен предоставлять пользователям. Если вы предпочитаете размещать свои файлы в других каталогах, вам надо внести соответствующие изменения в состав конфигурационного файла. Возможно, вам потребуется изменить файл индекса. Необходимость в этом возникает в основном тогда, когда вы устанавливаете Apache взамен другого сервера, в котором использовалось другое имя файла индекса.
Загрузка модулей Apache
Одно из преимуществ Apache состоит в том, что этот Web-сервер является расширяемым. Программист может написать новый модуль, реализующий дополнительные возможности, при этом исходный код Apache остается неизменным. Более того, для использования нового модуля не нужно даже перекомпилировать сервер. Посредством модулей реализуются управление доступом, разбор дополнительной информации, передаваемой клиентами, и многие другие функции. Основная часть стандартных функций Apache также реализована в виде модулей.
Просмотрев содержимое конфигурационного файла httpd.conf
LoadModule
. Пример подобной ссылки приведен ниже.LoadModule mime_module lib/apache/mod_mime.so
В качестве значения данной директивы задается внутреннее имя модуля (в данном примере mime_module
lib/apache/mod_mime.so
). В данном случае имя файла указывается относительно каталога, заданного посредством директивы ServerRoot
, но при желании вы можете указать полный путь.Модули, которые используются часто, можно непосредственно встраивать в двоичные файлы Apache. Чтобы определить, какие модули уже содержатся в исполняемых файлах, надо задать команду httpd -l
apache -l
). В некоторых случаях модули, встроенные в состав Apache или загруженные посредством LoadModule
, необходимо активизировать, включив для этого в конфигурационный файл директиву AddModule
.AddModule mod_mime.с
В качестве значения директивы AddModule
LoadModule
, так и директива AddModule
.