Apache — самый популярный веб-сервер[18] в Интернете. Несколько лет разработки сделали его чрезвычайно удобным, быстрым, лёгким в настройке и надёжным.
В дистрибутивы ALT Linux Team включена ветвь Russian Apache, разрабатываемая группой российских разработчиков во главе с Алексеем Тутубалиным. Она дополнена специальным модулем mod_charset, позволяющим «на лету» выполнять перекодировку символов из кодировки, в которой файл хранится на диске, в кодировку, которую запросил клиент у сервера. В конфигурационных файлах ALT Linux данная возможность по умолчанию отключена.
Дополнительную информацию о apache вы можете найти здесь:
Apache Software Foundation (www.apache.org); Apache HTTPD Project (httpd.apache.org)
Сайт проекта Russian Apache (apache.lexa.ru)
httpd(8); Apache Manual (в поставке дистрибутива)
Apache Overview HOWTO
Разработчики Apache, понимая широчайший спектр задач на серверах интернет заложили в него возможности модульного расширения. Ядро веб-сервера может вызывать различный набор дополнительных модулей, которые выполняют специальные задачи, в числе которых — управление веб-сайтами, разделение доступа, изменение показа содержимого веб-страниц и другие.
В дистрибутивах ALT Linux доступен полный набор модулей, которые распространяются вместе с исходными текстами Apache, а так же модули интеграции с Perl (mod_perl), работы с кодировками (mod_charset), языка PHP (mod_php) и некоторые другие.
Вот краткий обзор пакетов дистрибутива, которые могут изменять комплектность и функциональные возможности вашего веб-сервера:
Базовые файлы, необходимые для работы веб-сервера. Используется как основа для установки пакета apache или apache-mod_perl
Russian Apache — основной модуль веб-сервера и каталог вызываемых модулей, достаточный для работы большинства веб-серверов в интернет.
Russian Apache скомпилированный вместе с модулем mod_perl (perl.apache.org) интегрирующем интерпретатор языка Perl в веб-сервер. Данный вариант существенно ускоряет работу веб-скриптов на этом языке, но, вместе с тем, в некоторых случаях требует их переработки. Такая интеграция так же позволяет программам на Perl обращаться к внутренним структурам и функциям Apache, что существенно расширяет возможности Perl-скриптов. О совместном запуске версий Apache с интегрированным Perl - интерпретатором и без него читайте далее.
Документация веб-сервера, описывающая все модули и директивы Apache, включающая в себя множество примеров конфигурации веб-сервера и необходимая как для новичков, так и для «профи».
Данный пакет позволяет Apache запускать веб-скрипты от имени различных пользователей. Базовая версия веб-сервера всегда работает от одного и того же пользователя. Данный пакет может быть полезен для тех, кто предоставляет возможность создания скриптов на сервере многим пользователям и нуждается в защите информации каждого из пользователей от действий друг друга.
Пакет содержит заголовочные файлы из исходных текстов веб-сервера Apache, необходимые для сборки динамически подключаемых модулей (DSO). Если вы устанавливаете веб-сервер Apache и собираетесь компилировать или разрабатывать для него дополнительные модули, вам нужно установить этот пакет.
Пакет поддержки языка PHP в веб-скриптах. Накладывается на пакет apache и работает как подгружаемый модуль.
Другие пакеты вида mod_* содержат некоторые дополнительные модули. Если вам необходим модуль с какой то особой функциональностью - вы можете заглянуть на сайт — библиотеку модулей Apache modules.apache.org.
«Свежеустановленный» Apache вполне работоспособен. Если вы устанавливали дистрибутив включая в cистему пакеты Apache и указали необходимость автоматического запуска сервиса httpd[19] при старте системы — можете протестировать его работоспособность набрав http://ip-адрес-сервера/ в любом доступном веб-броузере (в том числе вы можете использовать lynx localhost из командной строки локальной машины).
Управление запущенным веб-сервером желательно осуществлять следующими директивами:
Показывает список запущенных процессов веб-сервера или сообщает, что веб-сервер не был загружен.
Останавливает, а затем запускает основной процесс веб-сервера. Основной процесс сам управляет остановкой и запуском дочерних процессов Apache
«Холодный» перезапуск Apache. Выполняются действия аналогичные последовательной остановке и старту httpd приведёнными выше командами.
«Тёплый» перезапуск Apache. Корневой процесс перезапускает все дочерние процессы, закончившие обработку текущих запросов, перечитывает конфигурационный файл и передаёт новые настройки вновь создаваемым дочерним процессам. Работа с клиентами при этом не прерывается.
Apache конфигурируется изменением служебных файлов в каталоге /etc/httpd/conf/. Главный конфигурационный файл веб-сервера — httpd.conf. Конфигурационные директивы могут размещаться в различных файлах, которые включают в основной конструкцией Include имя_файла.conf.
Eсли размещение какого-либо файла или каталога в конфигурационном файле указано неявно (явное размещение начинается с корня файловой системы — с символа '/') Apache использует каталог, заданный в директиве ServerRoot для определения реального местоположения цели.
Директивы могут быть использованы на следующих уровнях:
уровень конфигурации сервера — директива может быть использована только в главном конфигурационном файле.
уровень <VirtualHost> — директиву можно использовать по-разному для разных виртуальных хостов.
уровень <Directory> — для любого каталога директивой этого уровня можно установить свои настройки.
уровень файлов .htaccess — директиву разрешено использовать в файлах .htaccess в местах, где они разрешены сервером.
В любой точке использование в директиве параметра filename обозначает абсолютный (начинается с '/') или относительный от каталога ServerRoot путь к файлу.
Устанавливает расположение файла конфигурации. Системный файл конфигурации по умолчанию — conf/access.conf; для отмены чтения этого файла рекомендуется устанавливать /dev/null.
Устанавливает имена файлов доступа, используемых для настройки конфигурации «на лету» по умолчанию — .htaccess.
Активирует динамически загружаемый модуль, поставляемый в виде отдельного библиотечного файла.
Активирует динамически загружаемый модуль, поставляемый в виде отдельного библиотечного файла или скомпилированного внутрь главного модуля httpd.
Устанавливает правила, по которым Apache использует директивы внутренних файлов .htaccess;
None — игнорирует;
All — использует все директивы;
Options — разрешает использовать Options и XBitHack;
Indexes — директивы управления индексированием каталогов;
FileInfo — директивы управления типами файлов и их обработчиками;
AuthConfig — директивы доступа к каталогам Auth*;
Limit — директивы allow/deny/order.
Указывает имя области авторизации используемой для запроса имени и пароля у клиентов.
Используется для указания способа запроса и передачи имени пользователя и пароля для доступа к каталогам веб-сайтов. Чаще всего используют Basic, реже — Digest и другие.
Задаёт адрес, на котором Apache будет принимать соединения. Можно использовать имя хоста, IP-адрес или *.
Директива очищает список загруженных модулей. После данной директивы нужно использовать директивы AddModule для работы с необходимыми модулями.
Включает или выключает пересылку MD5 хэша данных. Вычисляется для всех передаваемых страниц и не кешируется.
Указывает Apache на каталог, в котором будут сохраняться файлы дампа памяти (core), создаваемые при аварийных ошибках.
Задаёт тип MIME, отправляемый клиентам, если Apache не может определить тип через файл mime.types или директивы AddType. По умолчанию установлен как text/plain.
Объединяет группу директив, задающих поведение Apache при обращениях к документам, расположенным в данной директории. Разрешено использовать маски имён — символы *, ? по правилам shell. В случае использования маски перед именем помещается знак тильда ~.
Определяет группу каталогов заданных регулярным выражением и устанавливает правила работы Apache с каталогами и файлами этой группы.
Указывает серверу месторасположение корня дерева каталогов в ниже которого расположена структура данных веб-сервера.
В случае ошибки делает редирект на указанные страницы. Также можно установить комментарий к возникшей ситуации, который должен начинаться с одной кавычки. Пример:
ErrorDocument 500 http://foo.example.com/cgi-bin/tester
ErrorDocument 404 /cgi-bin/bad_urls.pl
ErrorDocument 401 /subscription_info.html
ErrorDocument 403 "Sorry can't allow you access today"
Имя файла протокола ошибок. Если строка параметра начинается с (/), то путь к файлу нужно указывать от ServerRoot; если она начинается с (|), тогда сообщения ошибок передаются указанной команде на стандартный вход. В частности, таким образом, например, можно реализовать сохранение журнала сразу в SQL СУБД или сохранять их сразу сжатыми, передавая, для примера, на gzip. Apache версии 1.3 и выше по умолчанию выводит сообщения в syslog, если система поддерживает такую возможность; но это можно запретить используя syslog:facility.
Контроль доступа к файлу. Разделы <Files> обрабатываются в том же порядке, что и в файле конфигурации, после того, как прочитаны разделы директивы <Directory> и файлы .htaccess, но перед тем, как прочитаны разделы директории <Location>. Аргумент должен содержать имя фала или маску, в которой '?' - любой символ, '*' - любая строка. С дополнительным символом ~ могут использоваться расширенные рег. выражения (см REGULAR EXPRESSIONS секцию в grep(1) ) Например: <Files ~ "\.(gif|jpe?g|png)$"> будет соответствовать общеиспользуемым в Internet графическим файлам.
То же что и <Files>, но использует регулярные выражения.
Имеет отношение только к запуску Apache и отфоркиванию процессов в окружении и с правами соответствующему данному имени.
Управляет возможностью определения имени хоста посетителя по реверсному ДНС. Работает медленно и по умолчанию считается отключённой. Double указывает, что имя хоста должно быть подвергнуто дополнительной проверке на соответствие этого имени IP адресу отправившего запрос хоста.
Включение RFC1413 аутентификации. Включение функции значительно увеличит время доступа к серверу.
Указывает, что директивы, помещённые внутри блока, образованного парой директив <IfDefine...> и </IfDefine> должны быть выполнены только если данный параметр определён во внутренних структурах Apache. Предшествующий параметру знак [!] указывает, что блок директив будет прочтён только если параметр не определён.
Указывает, что директивы, помещённые внутри блока, образованного парой директив <IfModule...> и </IfModule> должны быть выполнены только если данный модуль откомпилирован в Apache. Предшествующий модулю знак [ !] указывает, что блок директив будет прочтён только если параметр не определён.
Директива позволяет включать файлы конфигурации в конфигурацию сервера.
Разрешает клиенту последовательно запрашивать несколько файлов без разрыва TCP соединения.
Указывается время (в секундах) до разрыва TCP соединения, которое Apache будет ждать следующего запроса от клиента.
Позволяет указывать к какому HTTP методу (например GET или POST) относятся помещённые внутрь <Limit ...> ... </Limit> команды ограничения доступа.
Могут использоваться методы: GET, POST, PUT, DELETE, CONNECT, OPTIONS, TRACE, PATCH, PROPFIND, PROPPATCH, MKCOL, COPY, MOVE, LOCK, UNLOCK.
Заставляет Apache слушать указанные адреса и порты. Например, что бы заставить сервер слушать порты 80 и 8000, используйте:
Listen 80
Listen 8000
Чтобы Apache работал на разных интерфейсах с указанными номерами портов, используйте:
Listen 192.170.2.1:80
Listen 192.170.2.5:8000
Максимальная длина очереди обработки подключений.
Подробности в apache-manual :)
Подробности в apache-manual
Директива устанавливает путь к lockfile.
Устанавливает уровень информативности протокола (лог-файла работы сервера). Рекомендуется использование по крайней мере уровня crit.
Директива устанавливает предел на число одновременных запросов к серверу. На самом деле, это число не может превышать число дочерних процессов сервера, которых по умолчанию не может быть более 256. Что бы исправить ситуацию редактируйте HARD_SERVER_LIMIT в httpd.h и компилируйте его.
Разрешает клиенту последовательно запрашивать указанное число файлов без разрыва TCP соединения, если включена KeepAlive. Если параметр установлен в 0, то Apache будет разрывать соединение только учитывая параметр KeepAliveTimeout.
Директива устанавливает предел на числе запросов которые может обработать индивидуальный дочерний процесс. Если MaxRequestsPerChild установлена в 0, число запросов не ограничено.
Директива устанавливает желательное максимальное число неактивных процессов сервера. Директива бесполезна если используется версия Apache для Microsoft Windows.
Директива устанавливает желательное минимальное число неактивных процессов сервера. Директива бесполезна если используется версия Apache для Microsoft Windows.
Указывает, что запросы к данному порту-имени следует разделять по имени хоста к которому производится обращение (заголовок 'Host:' HTTP). Позволяет определять несколько виртуальных хостов для одного IP адреса.
Определяет установки действий Apache для указанного контента. Подробно все возможные установки описаны в apache-manual. Часто применяемые: Indexes - включает показ содержимого каталога если в нем не найден индексный файл (директива DirectoryIndex); ExecCGI - включает возможность размещения в данном каталоге исполняемых файлов (cgi, perl скриптов); Includes - включает возможность размещения в каталоге SSI файлов. Каждая установка поддерживается соответствующим модулем её использующим и может не действовать если нужный модуль не подгружен. Каждая директива Options считается дополняющей уже известные Options определённые для родительских каталогов. Каждая установка может сопровождаться префиксом + или - для её "включения-выключения" в данном контексте.
Директива устанавливает имя файла в который сервер записывает идентификатор процесса.
Указывает Apache порт - число от 0 до 65535 (следует помнить, что некоторые порты могут использоваться другими протоколами, см. /etc/servises). Стандартный порт для http протокола - 80.
Определяет, какие пользователи имеют доступ к каталогу.
Синтакс:
Require user userid [userid] - только эти пользователи имеют доступ
Require group имя-группы [имя-группы] - все пользователи этих групп
Require valid-user - все адекватные пользователи.
Сервер читает из этого файла дальнейшие директивы после прочтения httpd.conf. Имя файла задаётся относительно ServerRoot.Может быть отключена: ResourceConfig /dev/null
Определяет политику доступа, если одновременно используются Allow и Require. Используется в том случае, когда доступ к области ограничен именем/паролем и клиентским адресом. В этом случае по умолчанию ("all") требуется, чтобы клиент прошёл проверку по адресу и ввёл правильное имя и пароль. В случае параметра "any" клиент получит доступ если ввёл правильное имя и пароль или прошёл ограничение по хосту. Может использоваться, чтобы ограничить доступ через пароль, но пропустить клиентов с определённого адреса без пароля.
Директива требуется для того, что бы указать имя файла, используемый сервером для связи между дочерними и материнскими процессами. Выяснить, требуется ли этот файл, можно запустив Apache и посмотрев, создал ли он файл с заданным именем. Если да, то нужно убедиться, что он используется только одной копией Apache.
Установит размер буфера TCP.
Устанавливает email адрес, который сервер показывает клиенту в сообщения об ошибках.
Задаёт альтернативное виртуальное имя хоста.
Директива устанавливает имя сервера; используется в создании ссылок. Если имя не задано, сервер попытается получить его из собственного IP-адреса.
Директива устанавливает унаследованное имя пути для хоста.
Устанавливает каталог, в котором живёт сервер. Обычно содержит подкаталоги conf/ и logs/. Пути для других файлов конфигурации строится относительно этого каталога.
Конфигурирует строку внизу сгенерированного сервером документа. По умолчанию выключено, On - показывает версию сервера и ServerName виртуального хоста, Email добавляет ссылку mailto: на ServerAdmin
Контролирует заголовок, отсылаемый клиенту сервером с описанием ОС сервера и скомпилированных модулей.
Определяет, как сервер запускается системой. inetd - запускается из системного процесса inetd. standalone - как daemon-процесс.
Устанавливает число дочерних процессов, создаваемых при запуске. Число все равно динамически изменяется в зависимости от загрузки, обычно нет причин менять этот параметр.
Время, которое Apache будет ждать: получения запроса GET, получение пакетов TCP на запросах POST и PUT, пауза между ACK'ами при передаче пакетов TCP в ответах.
Заставляет Apache генерировать названия страниц которые он создаёт используя значения SERVER_NAME с SERVER_PORT.
Устанавливает userid, по которому сервер будет отвечать на запросы. Чтобы использовать директиву, сервер должен быть запущен как root.
Директивы, помещённые внутри блока, образованного парой директив <VirtualHost...> и </VirtualHost> определяю конфигурацию заданного виртуального хоста. У каждого виртуального хоста должен быть уникальный IP-адрес, номер порта или имя хоста. Директиву имеет смысл использовать если, например, сервер имеет сетевой интерфейс для внутренней сети и ещё один интерфейс для внешней сети.
Передаёт переменную окружения (напр. HOME) обработчикам.
Записывает заданное значение в указанную переменную окружения.
Сбрасывает переменную, что делает невозможным её прочтение из обработчиков.
Использует переданное регулярное выражение как фильтр для заголовка User-Agent от броузера клиента. При удачном попадании инициализирует переменную данным значением. Если указано только имя переменной - она инициализируется числом 1. Если указана переменная с предшествующим знаком '!' - переменная сбрасывается.
Действует аналогично BrowserMatch допуская различия в регистре символов переданного значения User-Agent и используемого в качестве фильтра регулярного выражения.
Выполняемое директивой действие полностью аналогично BrowserMatch, но вместо User-Agent может быть использован любой другой заголовок: Remote_Host; Remote_Addr; Remote_User; Request_Method; Request_URI; Referer
Отличие от SetEnvIf такое же как у BrowserMatchNoCase от BrowserMatch выше.
Переменная генерируется случайным образом из IP адреса сервера, номера работающего процесса, временными отметками и дополнительными внутренними счётчиками.
Переменная предназначена для использования в составных документах, когда невозможно отследить один и тот же запрос другими методами.
Для указанных расширений файлов указывает Apache необходимость передачи данного charset при ответе клиенту.
Для указанных расширений файлов указывает Apache возможность передачи файла с использованием нужной кодировки MIME.
Указывает Apache, что файлы с данными расширениями должны быть переданы конкретному обработчику. Обработчик может как внутренним (cgi-sript и другие), так и внешним, описанным ранее директивой Action.
Устанавливает связь между расширениями файлов и передаваемым в ответе кодом языка.
Дополняет таблицу MIME - типов новым соответствием расширений файлов и кода MIME для ответа клиенту.
Устанавливает язык ответа передаваемый всегда, если это невозможно сделать другими средствами.
Форсирует ответ с данным MIME-типом в каталоге, к которому отнесена данная директива.
Удаляет код MIME-кодировки в ответе для файлов с данными расширениями.
Указывает Apache не запускать обработчиков для файлов с данными расширениями.
Сбрасывает MIME-тип в ответе клиенту на тип MIME по умолчанию
Форсирует вызов данного обработчика для всех файлов к которым отнесена данная директива.
Указывает расположение таблицы соответствия MIME-типов. По умолчанию - conf.mime.types
Активизирует действие модуля с использованием указанного файла на данную область документов веб-сервера или на все документы доступные Apache.
Разрешает кеширование документов с согласуемым содержимым на промежуточных прокси-серверах и компьютере клиента.
Определяет приоритет языков используемых в ответе клиенту, когда точно не удаётся определить или найти затребованный клиентом язык документа.
Указывает Apache, что документы, расположенные "ниже" данного URL следует искать "ниже" данного расположения в файловой системе.
Определяет более сложные правила поиска данных в файловой системе по результатам сравнения URL с регулярным выражением.
В ответ на запрос URL-path и "ниже" расположенных документов возвращает указанный код ответа (302 по умолчанию) и перенаправляет клиента на другой URL. Статус может задаваться как число или символически: permanent (301), temp (302), seeother (303), gone (410). Для кода ответа 410 URL ответа должен быть опущен.
Аналогично Redirect, с использованием для сравнения переданного URL не точного соответствия а заданного регулярного выражения.
Аналогично Redirect с использованием кода ответа 302.
Аналогично Redirect с использованием кода ответа 301.
Действует аналогично Alias но автоматически задаёт запуск cgi-handler обработчика для всех файлов внутри целевой директории.
Аналогично ScriptAlias, с проверкой URL регулярным выражением.
В кратком собрании описания директив Apache сложно описать задачи решаемые этим сложным модулем. Как руководство к действию лучше всего использовать специальные разделы apache-manual "Module mod_rewrite URL Rewriting Engine" и "URL Rewriting Guide". Обучиться использованию данного модуля проще всего рассматривая конкретные задачи и их решения с его использованием.
Ниже приведён синтаксис директив этого модуля.
Включает работу данного модуля в заданной области документов сервера.
В обслуживаемых параметрах для директив данного модуля могут быть использованы следующие макроподстановки:
%% - вставляет знак процента
%p - вставляет номер порта к которому произведено обращение
%N.M - определяет определённую часть имени хоста. Подробности в разделе "Module mod_vhost_alias" документации Apache.
%0 - частный случай %N.M - все имя виртуального хоста.
%-2 - частный случай %N.M - две последние части имени. В общем случае - имя домена к которому произведено обращение.
Указывает Apache каталог в котором ведётся поиск документов динамически конфигурируемых виртуальных серверов. Если параметр не содержит макро-символов Apache будет искать документы в одном и том же каталоге для всех запрашиваемых виртуальных имён.
Интерполирует виртуальную директорию cgi-bin для динамически конфигурируемых сайтов.
Определяет список файлов, которые Apache будет искать в запрошенной директории и передавать клиенту как ответ на поступивший запрос. Может указывать не только на файлы расположенные внутри запрошенного каталога. Разрешается ссылаться и на определённый абсолютным путём URL. Например /cgi-bin/directory.cgi
Директива определяет подписи под иконками в файл-листинге. Может использоваться не только с именами файлов в качестве параметров, но и только с их расширениями.
Определяет подписи под иконками в листинге, для которых определена MIME-кодировка присутствующая в списке параметров.
Аналогично AddAltByEncoding, но использует для подстановки описания определяемый MIME-тип объекта.
Действует аналогично AddAlt, добавляя строковое описание с типом или именем файла. Текст будет появляться справа от имени файла.
Задаёт Apache соответствие между именами или расширениями файлов и показываемой в листинге картинкой (иконкой). Второй вариант синтаксиса позволяет одновременно задавать подпись (см. выше AddAlt)
Определяет URL иконки, которая будет использована по умолчанию.
Включает-выключает возможность показа индекса для каталогов.
Задаёт файл-заголовок, который будет вставлен над перечнем файлов при показе индекса.
Определяет маску файлов, которые не будут отображаться в листинге директории.
Изменяет способ вывода индекса файлов. Описание всех директив можно посмотреть в apache-manual.
Определяет способ сортировки файлов в списке по-умолчанию. Пользователь способен изменять сортировку уже показанного списка, если это не запрещено в IndexOptions.
Указывает имя файла, содержимое которого будет добавлено после листинга файлов.
Разрешает доступ к каталогам сервера. Либо для всех клиентов, либо для клиентов пришедших с указанного IP, либо с указанного символического имени хоста. В качестве параметра так же может быть указано условное выражение с именем переменной. В случае с IP и именем хоста можно использовать только последнюю часть имени или первые части IP адреса. IP может быть дополнен маской сети или обратной маской после символа '/'
Запрещает доступ после проверки, аналогичной директиве Allow.
Определяет способ проверки доступа к данным. Проверяет директиву Deny. Всем не подпадающим под неё клиентам разрешает доступ.
Определяет способ проверки доступа к данным. Проверяет директиву Allow. Всем остальным клиентам доступ запрещается.
Проверяет обе директивы и разрешает доступ клиентам "попавшим" в Allow, но не затронутых по Deny.
Определяет текстовый файл, в котором будут описаны группы пользователей. Имеются некоторые проблемы при работе с большими списками.
Определяет текстовый файл хранящий имена и пароли пользователей. Пароль рекомендуется вводить-менять утилитой htpasswd.
Определяет важность аутентификации. По умолчанию применяется значение ON. При указании OFF клиенты не предоставившие необходимого имени пользователя будут проверяться другими модулями - по IP или иначе...
Инструкции использования директив модуля аналогичны mod_auth. Для хранения групп/паролей используются DBM файлы.
Инструкции к директивам аналогичны mod_auth. Для хранения групп и паролей используются Berkley-DB файлы.
Определяет список пользователей, которым необходимо предоставить анонимный доступ без проверки пароля. Имена, включающие пробелы необходимо заключать в кавычки.
См. AuthAuthoritative в модуле mod_auth.
Включает запись в ErrorLog переданных в качестве паролей адресов электронной почты.
Указывает, что анонимные пользователи обязаны передавать адрес электронной почты в качестве пароля, тем самым запрещая вход без пароля.
Разрешает доступ без ввода имени пользователя в окне запроса броузера. Может быть затруднительным для некоторых версий InternetExplorer.
Устанавливает процедуру синтаксиса передаваемого email адреса. Считает аутентификацию успешной только при синтаксически правильном адресе ЭП.
Модуль экспериментальный и в данный момент совершенствуется. Функции, работающие в этом модуле так же частично поддерживаются mod_digest
Определяет расположение файла цифровых паролей. Редактирование таких файлов осуществляется утилитой htdigest.
Указывает расположение текстового файла определяющего соответствие имён групп и пользователей.
Определяет качественность проверки аутентификации. Подробности в apache-manual и на сайте apache.org
Задаёт продолжительность сеанса работы аутентифицированого пользователя.
Определяет область действия авторизационных запросов. Необходимо указывать как минимум один локальный URL. Возможно использовать так же и внешние URL, указывающие на другие сайты, в этом случае, клиент будет пытаться использовать те же данные для авторизации на них.
Определяет расположение файла цифровых паролей. Редактирование таких файлов осуществляется утилитой htdigest.
Устанавливает, добавляет, изменяет или сбрасывает значение заголовка ответа.
Этот модуль считается устаревшим, но до сих пор используется некоторыми веб-приложениями. Дополнительная информация о meta-файлах: http://www.w3.org/pub/WWW/Daemon/User/Config/General.html#MetaDir
Включает - выключает работу модуля в данном расположении.
Определяет директорию, которую Apache будет просматривать в поиске meta-файлов.
Определяет расширение файлов, которое будет использоваться для поиска meta-информации о файле запроса.
Активирует работу модуля в данном расположении
Устанавливает выдачу заголовка Expires (для выбранного MIME типа в случае *ByType). Синтаксис вполне интуитивно - понятный. Ключевому слову 'access' соответствует так же слово 'now'.
Несмотря на то, что в данном модуле всего одна, редко применяемая директива применение его очень распространено.
Модуль реализует обработчик 'server-parsed', который в самом простом случае активируется следующим образом:
AddType text/html .shtml
AddHandler server-parsed .shtml
После этого, в каталогах для которых установлено 'Options +Includes', в файлах с расширением '.shtml' разрешается использовать специальные SSI-конструкции, общий вид которых:
<!--#element attribute1="value1" attribute2='value2' ... -->
Директива, настраивающая разбор SSI. Может использовать атрибуты: 'errmsg' - сообщение, которое будет передаваться броузеру при обнаружении ошибки в SSI документе; 'sizefmt' - параметр указывающий формат вывода размера файлов; 'timefmt' - формат вывода даты и времени аналогичный системной функции strftime(3) и утилиты date(1).
Директива вывода в документ переменной окружения, имя которой передаётся в атрибуте 'var'.
Директива, выполняющая команду оболочка (атрибут 'cmd') или cgi-скрипт (атрибут 'cgi'). Для скриптов правильнее использовать 'include virtual' директиву.
Директива показа размера файла (атрибут 'file') или страницы с относительным URL (атрибут 'url'). Для текущего URL разрешено использовать '/'
Директива показа даты-времени последней модификации файла. Формат вывода берётся из 'config timefmt', атрибуты аналогичны 'fsize'
Директива включения в обрабатываемый документ других документов. При использовании атрибута 'file' вставляет файл c указанным относительным именем, причём имя не может начинаться ни с '/' (быть абсолютным) ни с '../'. Рекомендуется использовать эту директиву с атрибутом 'virtual', значение которого будет интерпретироваться как адрес внутри данного файла (при этом корневой - '/' - URI будет указывать на корневой URI сайта). Ограничения, накладываемые на 'virtual' так же не позволяют использовать схему URL (http://, ftp://...) или имя сайта. Только при включении через 'virtual' возможны многоступенчатые вложения.
Выдаёт все переменные окружения вместе с их содержимым существующие на момент выполнения директивы. Конечно возможно было бы использовать например <!--exec cmd="set">, но при этом вывод будет содержать излишние переменные shell устанавливаемые во время запуска exec.
Изменяет (устанавливает) значение переменной SSI. Имя переменной задаётся в атрибуте 'var', а её значение - в 'value'.
Во время разбора SSI страницы в её контексте устанавливаются следующие служебные переменные: 'DATE_GMT', 'DATE_LOCAL' - время поступления запроса по Гринвичу и по местному времени, 'DOCUMENT_NAME' - имя файла, запрошенного документа без каталогов, 'DOCUMENT_URI' - адрес документа запрошенного пользователем без "escape-последовательностей", 'LAST_MODIFIED' - дата последней модификации запрошенного пользователем документа.
В контексте страницы непременно наравне с этими переменными предоставляется доступ и ко всем другим, стандартным для CGI переменным окружения. Эти переменные, так и назначаемые директивой 'set' пары "переменная - значение" могут быть использованы во всех директивах SSI. В директиве 'echo' необходимо просто указать имя переменной в атрибуте 'var', а в других директивах, при необходимости подстановки переменной внутри атрибута используют её имя с предшествующим знаком доллара. Например если имя переменной - MyVarName, то для её вставки используют $MyVarName, либо ${MyVarName} для отделения переменной от последующих символов (в общем то эти правила похожи на работу с переменными shell и perl скриптов)
Директивы конструирования условных конструкций. В 'if' и 'elif' используется атрибут 'expr' определяющий условие. Очень сложно в нескольких строках объяснить детали построения условных выражений внутри SSI. Это подробно описано в apache-manual к которому настоятельно рекомендуется обращаться всем, собирающимся серьёзно познать детали работы веб-сервера. Приведём лишь самый простой пример из документации:
<!--#if expr="\"$DOCUMENT_URI\" = \"/foo/file.html\"" --> in foo <!--#elif expr="\"$DOCUMENT_URI\" = \"/bar/file.html\"" --> in bar <!--#else --> in neither <!--#endif -->
Данная директива конфигурирования включает-выключает (on и full - off) проверку "бита запуска" (execute bit) в правах файлов. При том 'on' требует наличия права запуска у владельца файла а 'full' позволяет использовать право запуска группы владельца. Директива влияет на обработку файлов с MIME-типом text/html.
Как и в случае mod_include главное действие этой директивы - установка обработчика cgi-script,который указывает на необходимость запуска файлов в среде модуля и возврата клиенту (через ядро Apache) результатов работы скрипта.
Открывает (создаёт если это необходимо) файл для записи сообщений о запуске и об ошибках при работе со скриптами cgi. Работа с файлом ведётся от имени пользователя заданного в директиве 'User', поэтому необходимо быть внимательными с правами на файлы и каталоги.
Определяет лимит размера лога сообщений mod_cgi в байтах. При достижении лимита запись в лог прекращается.
Указывает размер служебного буфера для сообщений cgi. По умолчанию буфер равен 1024-м байтам.
Сообщает Apache о создании нового обработчика или о привязке определённого скрипта ко всем документам заданного MIME типа.Указания на обрабатываемый файл передаются CGI через переменные окружения 'PATH_INFO' и 'PATH_TRANSLATED'.
Переопределяет метод (GET, POST, DELETE или другие) запуском определённого CGI скрипта. Запрошенные URL передаются через переменные окружения 'PATH_INFO' и 'PATH_TRANSLATED'.
Модуль инсталлирует обработчик server-status, который необходимо активизировать директивой SetHandler для определённого URL сервера (внутри секции Location например). Данный модуль работает только если Apache запущен в stadalone а не в inetd режиме.
Включает расширенные возможности показа данных статуса, необходимых только в определённых случаях.