HTTP сервер Apache версии 2.0
Этот документ необходим для того, чтобы помочь пользователям
перейти к использованию сервера версии 2.0. Здесь вы найдёте лишь
краткие замечания; более подробную информацию о нововведениях можно
найти либо в документе Новые возможности, либо в файле src/CHANGES
.
autoconf
и
libtool
для конфигурирования процесса сборки.
Использование этой системы похоже на использование
APACI в Apache 1.3, хотя и не является абсолютно тем же самым.prefork
. Другие МП-модули предоставляют
иные директивы, отвечающие за работу процессов сервера и обработку
запросов.<Proxy>
, а не в
<Directory proxy:>, как это было ранее.PATH_INFO
(путевой информации, следующей за
именем запрашиваемого документа) изменилась для некоторых модулей.
Модули, которые раньше были написаны как обработчики (handler), а
теперь выполняют роль фильтров, могут более не принимать запросы,
содержащие PATH_INFO
. Такие фильтры, как INCLUDES или PHP реализованы первыми в базовом
обработчике, таким образом они не могут принимать запросы, содержащие
PATH_INFO
. Вы можете использовать директиву AcceptPathInfo
, чтобы заставить базовый
обработчик принимать подобные запросы, и таким образом восстановить
возможность использования PATH_INFO
в документах,
использующих включения на стороне сервера (SSI).CacheNegotiatedDocs
теперь может принимать аргументы on
и
off
. Уже существующие экземпляры директивы
CacheNegotiatedDocs
должны быть заменены на
CacheNegotiatedDocs on
.ErrorDocument
более не использует открывающую кавычку в начале аргумента
для обозначения того, что аргумент является текстовым сообщением.
Вместо этого вам необходимо заключать весь текст сообщения
в двойные кавычки. Например, существующие директивы
ErrorDocument 403 "Некоторое сообщение
ErrorDocument 403 "Некоторое сообщение"
AccessConfig
и
ResourceConfig
более не существуют.
Имеющиеся их копии могут быть заменены директивой
Include
, которая имеет
ту же функциональность. Если прежде вы не включали их в конфигурационные
файлы, тем самым используя их значения по умолчанию, то сейчас,
для достижения того же результата, вам надо
добавить следующие строки в файл httpd.conf: Include conf/access.conf
и Include
conf/srm.conf
. Для того чтобы быть уверенным в том, что
Apache считывает конфигурационные файлы именно в том порядке,
который был предусмотрен старыми директивами, надо поместить
директивы Include
в конце файла httpd.conf, причём
сперва ту, что включает srm.conf
, а затем ту, что
включает access.conf
.BindAddress
и Port
более не существуют. Эквивалентная функциональность предоставляется
более гибкой директивой Listen
.
Port
использовалась, кроме всего прочего, для того чтобы сервер
мог формировать правильные ссылки на самого себя. В Apache 2.0 для
тех же целей служит новый синтаксис директивы ServerName
: он был изменён таким образом, что теперь
имя хоста и номер порта можно указывать в одной этой директиве.ServerType
более не существует.
Метод обработки запросов теперь определяется посредством
выбора МП-модуля. В настоящее время нет такого МП-модуля,
который мог бы запускаться посредством демона inetd.mod_log_agent
и mod_log_referer
, которые предоставляли
такие директивы, как AgentLog
, RefererLog
и RefererIgnore
, были убраны. Ведение журнала агентов
пользователей (agent logs) и отправителей (referer logs) по-прежнему
возможно посредством использования директивы CustomLog
модуля mod_log_config
.AddModule
и
ClearModuleList
более не существуют. Они использовались
для обеспечения правильного порядка загрузки модулей. Новый API для
Apache 2.0 позволяет модулям самим указывать порядок их загрузки, что
делает эти директивы ненужными.FancyIndexing
была убрана. Ее функциональность
теперь обеспечивается опцией FancyIndexing
в директиве IndexOptions
mod_negotiation
,
стали более строгими в той части, где определяются файлы по умолчанию.
Теперь эти алгоритмы будут выбирать файлы только из списка
доступных (negotiable) файлов. Старое поведение может
быть восстановлено директивой MultiviewsMatch
.Функциональность директивы ErrorHeader
была
передана директиве Header
,
потому что прежнее название директивы было некорректно.
Теперь необходимо писать
Header always set foo bar
чтобы получить желаемый результат.
mod_auth_digest
, который имел экспериментальный статус в
Apache 1.3, теперь является стандартным модулем.mod_mmap_static
, который имел экспериментальный статус в
Apache 1.3, заменён модулем mod_file_cache
.src
. Вместо этого
исходные коды логически организованы в основном каталоге дистрибутива, а
установка скомпилированного сервера производится в отдельный каталог.Значительные изменения были внесены в API для Apache 2.0. Существующие модули, написанные с использованием Apache 1.3 API, не будут работать под Apache 2.0, если не внести в них необходимые изменения. Более подробная информация по этому поводу доступна в документации для разработчиков.