Эта статья призвана помочь тем, кто уже установил и настроил сервер Apache для платформы Windows 95/98 или NT и хочет узнать больше о его конфигурировании. Текст, приведенный ниже, представляет собой дословный перевод файла httpd.conf, а точнее, комментариев в нем. Думаю, никто не сможет рассказать лучше о цели этого в общем-то непростого перевода, чем его автор – Андрей Любченко:
«Совет перевести на русский язык комментарии в httpd.conf действительно помог почувствовать себя несколько бодрее. Спешу поделиться своим опытом в этой области… Действительно, когда пробегаешь текст [httpd.conf – dk] налегке, многие детали ускользают. …Поскольку мой httpd.conf давно и безнадежно переделан, я занялся переводом httpd.conf.default, хотя, кажется, они в чем-то различаются с исходным httpd.conf.»
Спешу заметить, что настройки (строки вне комментариев) в приведенном ниже файле httpd.conf являются настройками сервера по умолчанию, и поэтому сильно зависят, к примеру, от той директории, в которую вы поставили сервер. Они приведены здесь скорее для примера. В этой связи прошу вас не копировать директивы «один-в-один» в ваш настоящий httpd.conf, особенно если вы еще не до конца осознали, что эти директивы делают.
Часть первая.
# Основан на конфигурационных файлах сервера NSCA,
# написанных by Rob McCool.
#
# Это главный файл конфигурации сервера Apache, содержащий
# директивы,
# управляющие работой сервера. За детальной информацией об
# этих директивах,
# обращайтесь по адресу
# <URL:http://www.apache.org/docs/>
#
# Не стоит читать эти директивы без понимания их роли. Они
# приведены здесь
# лишь в качестве примера одного из возможных вариантов. В
# случае сомнений
# обращайтесь к сопровождающей документации. Считайте, что
# вас предупредили.
#
# После обработки этого файла сервер попробует найти и
# обработать файлы
# C:/Program Files/Apache Group/Apache/conf/srm.conf, а
# затем
# C:/Program Files/Apache Group/Apache/conf/access.conf
# если вы не переопределили эти имена директивами
# ResourceConfig и/или
# AccessConfig.
#
# Директивы конфигурации сгруппированы в три основных
# раздела:
#
# 1. Директивы, управляющие процессом Apache в целом
# (глобальное окружение).
# 2. Директивы, определяющие параметры "главного" сервера,
# или сервера "по
# умолчанию", который отвечает на запросы, которые не
# обрабатываются
# виртуальными хостами. Эти директивы определяют также
# установки по
# умолчанию для всех остальных виртуальных хостов.
# 3. Установки для виртуальных хостов, позволяющие
# обрабатывать запросы Web
# одним-единственным сервером Apache, но направлять по
# раздельным адресам
# IP или именам хостов.
#
# Файлы конфигурации программы и регистрации событий
# (конфиги и логи): Если
# имена файлов, определенных вами для управления сервером,
# начинаются с
# символа "/" (или "диск:/" для Win32), сервер будет
# использовать явно
# указанный в этом имени полный путь. Если же имена НЕ
# начинаются с "/", то
# для определения пути будет использовано значение
# директивы ServerRoot – так,
# "logs/foo.log" при значении ServerRoot равном
# "/usr/local/apache" будет
# интерпретироваться сервером как
# "/usr/local/apache/logs/foo.log".
#
# ВНИМАНИЕ: В определении имен файлов вы ДОЛЖНЫ
# использовать прямые слэши
# вместо обратных (т.е. "c:/apache" вместо "c:\apache").
# Если не указано имя
# диска, по умолчанию будет использован диск, на котором
# размещен Apache.exe;
# тем не менее, во избежание путаницы, рекомендуется,
# чтобы вы всегда явно
# указывали в абсолютных путях имя диска.
#
### Раздел 1: Глобальное окружение
#
# Директивы в этом разделе определяют общие параметры
# Apache, как, например,
# число запросов, которое он может обрабатывать
# одновременно, или где ему
# искать свои файлы конфигурации.
#
#
# Директива ServerType может иметь значения inetd или
# standalone. Режим inetd
# поддерживается только на платформах Unix.
#
ServerType standalone
#
# ServerRoot: вершина дерева каталогов, в которых
# содержатся файлы
# конфигурации, регистрации и отслеживания ошибок.
#
# В конце строки добавлять слэш НЕ СЛЕДУЕТ.
#
ServerRoot "C:/Program Files/Apache Group/Apache"
#
# PidFile: Файл, куда сервер при запуске должен записывать
# свой номер
# идентификации процесса.
#
PidFile logs/httpd.pid
#
# ScoreBoardFile: Учетный файл, используемый для хранения
# внутренней
# информации процесса сервера. Это требуется не всеми
# архитектурами. Если в
# вашей - требуется (об этом можно судить по тому, будет
# ли создан такой файл,
# когда вы запустите Apache), то вы ДОЛЖНЫ обеспечить,
# чтобы никакие два
# экземпляра процесса Apache не использовали бы один и тот
# же учетный файл.
#
ScoreBoardFile logs/apache_status
#
# В стандартной конфигурации сервер обработает при запуске
# файлы httpd.conf,
# srm.conf и access.conf (именно в таком порядке).
# Последние два файла в
# настоящее время поставляются пустыми, поскольку теперь
# рекомендуется
# для простоты, чтобы все директивы держались в одном
# файле (httpd.conf).
# Закомментированные ниже значения встроены в сервер по
# умолчанию. Если вам
# надо указать другие имена файлов, отредактируйте и
# раскомментируйте их. Если
# потребуется, чтобы сервер проигнорировал эти файлы, вы
# можете указать
# значения "/dev/null" (для Unix) или "nul" (для Win32).
#
#ResourceConfig conf/srm.conf
#AccessConfig conf/access.conf
#
# Timeout: Время ожидания в секундах, прежде чем сервер
# примет или отправит
# сообщение о тайм-ауте.
#
Timeout 300
#
# KeepAlive: Позволено или нет устанавливать
# долговременные соединени
# (persistent connections) (т.е. когда обрабатывается
# более одного запроса на
# соединение). Для запрета укажите значение "Off".
#
KeepAlive On
#
# MaxKeepAliveRequests: Максимальное число запросов,
# допустимое в одном
# долговременном соединении. Для снятия ограничений
# укажите значение 0, но для
# максимального быстродействия мы рекомендуем указать
# заведомо большое
# конкретное значение.
#
MaxKeepAliveRequests 100
#
# KeepAliveTimeout: Время ожидания в секундах следующего
# запроса от одного и
# того же клиента в одном подключении.
#
KeepAliveTimeout 15
#
# Для обработки запросов Apache для Win32 всегда порождает
# один дочерний
# процесс. Если он по каким-либо причинам будет
# преждевременно завершен,
# другой дочерний процесс создается автоматически.
# Поступающие запросы внутри
# такого дочернего процесса обрабатываются отдельными
# потоками. Следующие две
# директивы управляют поведением таких потоков и
# процессов.
#
#
# MaxRequestsPerChild: Число запросов, которое позволено
# обрабатывать
# дочернему процессу до переполнения. При переполнении
# дочерний процесс будет
# принудительно завершен, чтобы избежать проблем при
# длительной непрерывной
# работе, если Apache (или используемые им библиотеки),
# допускают утечку
# памяти или других ресурсов. На большинстве систем это не
# требуется, но
# некоторые (например, Solaris) страдают заметными
# утечками в библиотеках.
# Если нет других рекомендаций, для Win32 установите
# значение 0 (без
# ограничений).
#
MaxRequestsPerChild 0
#
# ThreadsPerChild: Число одновременных потоков (т.е.
# запросов), которое
# допускает сервер. Установите это значение в соответствии
# с требуемой
# загрузкой сервера (больше активных запросов одновременно
# означает, что они
# обслуживаются медленнее) и объемом системных ресурсов,
# который вы можете
# предоставить серверу.
#
ThreadsPerChild 50
#
# Listen: Позволяет привязать Apache к конкретному адресу
# IP, и/или порту, в
# дополнение к порту, определенному по умолчанию. См.
# также директиву
# <VirtualHost>.
#
#Listen 3000
#Listen 12.34.56.78:80
#
# BindAddress: Этой опцией вы можете обеспечить поддержку
# виртуальных хостов.
# Данная директива используется для указания серверу
# адреса IP, который
# необходимо отслеживать. Она может содержать "*", адрес
# IP или полное имя
# домена Интернет. См. также директивы <VirtualHost>
# и Listen.
#
#BindAddress *
#
# Поддержка динамически разделяемых объектов (DSO, Dynamic
# Shared Object)
#
# Для того чтобы иметь возможность использовать модуль,
# созданный как
# библиотека DSO, вам следует поместить в этом месте
# соответствующую строку
# 'LoadModule' чтобы он был доступен ПРЕЖДЕ обращения к
# нему. За детальными
# разъяснениями механизмов DSO вы можете обратиться к
# файлу README.DSO в
# дистрибутиве Apache 1.3, а также выполнить команду
# 'apache -l', чтобы
# получить список уже встроенных (статически
# скомпонованных и таким образом
# всегда доступных) модулей сервера Apache.
#
# Внимание: Порядок, в котором загружаются модули, имеет
# большое значение. Не
# меняйте нижеследующий порядок без консультации со
# специалистом.
#
#LoadModule anon_auth_module
#modules/ApacheModuleAuthAnon.dll
#LoadModule cern_meta_module
#modules/ApacheModuleCERNMeta.dll
#LoadModule digest_module modules/ApacheModuleDigest.dll
#LoadModule expires_module modules/ApacheModuleExpires.dll
#LoadModule headers_module modules/ApacheModuleHeaders.dll
#LoadModule proxy_module modules/ApacheModuleProxy.dll
#LoadModule rewrite_module modules/ApacheModuleRewrite.dll
#LoadModule speling_module modules/ApacheModuleSpeling.dll
#LoadModule status_module modules/ApacheModuleStatus.dll
#LoadModule usertrack_module
#modules/ApacheModuleUserTrack.dll
#
# Директива ExtendedStatus определяет, будет ли Apache
# генерировать детальную
# информацию о состоянии (ExtendedStatus On), или только
# общую информацию
# (ExtendedStatus Off), при обращении к функции
# "server-status". Значение по
# умолчанию - Off.
#
#ExtendedStatus On
### Раздел 2: Конфигурация сервера по умолчанию
#
# Директивы этого раздела устанавливают значения,
# используемые "главным
# сервером", который отвечает на запросы, не
# обрабатываемые виртуальными
# хостами. Эти значения обусловливают также установки по
# умолчанию для любых
# контейнеров <VirtualHost>, которые вы будете
# определять далее в этом файле.
#
# Любые из этих директив могут быть включены в контейнер
# <VirtualHost>; в
# таком случае установки по умолчанию будут переопределены
# ими для этого
# виртуального хоста.
#
#
# Если в директиве ServerType (установленной ранее в
# разделе "Глобальное
# окружение") задано значение "inetd", следующие несколько
# директив не имеют
# никакого эффекта, поскольку их значение определено
# конфигурацией inetd.
# Переходите к директиве ServerAdmin.
#
#
# Port: Номер порта, к которому подключен сервер.
#
Port 80
#
# ServerAdmin: Ваш адрес, по которому следует направлять
# сообщения о проблемах
# с сервером. Этот адрес появится на некоторых
# сгенерированных сервером
# страницах, таких, как сообщения об ошибках.
#
ServerAdmin you@your.address
#
# Директива ServerName задать имя хоста, возвращаемое
# клиенту, если это имя
# отличается от того имени, которое получила программа
# (например, используйте
# "www" вместо реального имени хоста).
#
# Внимание: Вы не можете просто выдумывать имена хостов в
# надежде, что это
# сработает. Имя, которое вы определяете здесь, должно
# быть действительным
# именем DNS для вашего хоста. Если вы ничего не поняли,
# справьтесь у
# администратора сети.
# Если ваш хост не имеет зарегистрированного имени DNS, вы
# можете указать
# здесь его адрес IP. В таком случае вам придется
# обращаться к нему по адресу
# (например, http://123.45.67.89/) и это может сильно
# осложнить переадресацию
# ресурсов.
#
#ServerName new.host.name
#
# DocumentRoot: Каталог, в котором будут находиться ваши
# документы (т.е. Web-
# страницы). По умолчанию, все запросы выбираются из этого
# каталога; для
# указания же других мест могут использоваться
# символические ссылки (линки) и
# псевдонимы (алиасы).
#
DocumentRoot "C:/Program Files/Apache Group/Apache/htdocs"
#
# Каждый каталог, к которому Apache имеет доступ, может
# быть сконфигурирован в
# отношении свойств и сервисов, которые могут быть
# разрешены и/или запрещены в
# этом каталоге (и его подкаталогах).
#
# Сначала мы определяем свойства "по умолчанию" как весьма
# ограниченный набор
# разрешений.
#
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
#
# Обратите внимание, что с этого места и далее вы должны
# явным образом
# указывать свойства, которые могут быть разрешены, – так
# что если что-то не
# работает так, как вы ожидаете, сначала убедитесь, что вы
# разрешили это
# свойство ниже.
#
#
# Здесь должен быть указан каталог, который вы установили
# как DocumentRoot.
#
<Directory "C:/Program Files/Apache
Group/Apache/htdocs">
#
# Опции могут иметь значения "None", "All" или любую
# комбинацию из "Indexes",
# "Includes", "FollowSymLinks", "ExecCGI", или
# "MultiViews".
#
# Обратите внимание, что "MultiViews" должен быть указан
# отдельно -
# "Options All" для этого не достаточно.
#
Options Indexes FollowSymLinks MultiViews
#
# Эта директива перечисляет опции, которые могут быть
# переопределены в файлах
# .htaccess. Значением может быть "All", или любая
# комбинация из "Options",
# "FileInfo", "AuthConfig", и "Limit"
#
AllowOverride None
#
# Эти директивы определяют, кто может получать что бы то
# ни было с этого
# сервера.
#
Order allow,deny
Allow from all
</Directory>