О КОПИРАЙТАХ |
Вся предоставленная на этом сервере информация собрана нами из разных источников. Если Вам кажется, что публикация каких-то документов нарушает чьи-либо авторские права, сообщите нам об этом. |
|
|
|
|
HTTP сервер Apache
Ссылки
Рабочая лошадка 1.1b4 со свое
русификацией (mod_rcs)
счетчиком (mod_cntr).
Текущая (21 января 1999) версия 1.3.4,
русификация PL27.4 взята на Russian Apache.
Тестируем
работоспособность (здесь не нужен mod_rcs,
вместо него работает extra/mod_charset)(SPARC, Solaris 2.5, gcc 2.6.2):
-
берем архив apache_1.3.4rusPL27.4 у Лехи,
разархивируем его.
-
сносим старый httpd
-
выбираем новое место для сервера /usr/local/apache
-
небольшие
исправления:
-
возвращаем обратно выдачу
подробного сообщения об ошибке 500 в src/main/http_protocol.c
(ap_send_error_response). Ради
усиления
безопасности вместо
подробного сообщения
выдавался совет
обратиться к
администратору. К
сожалению, тот же текст
выдавется в случае
использования proxy и ошибке в имени хоста.
Получать письмо от клиента каждый раз как он
ошибется в имени хоста - это перебор...
-
в src/Configure.tmpl
-
EXTRA_LIBS=-lc -lcrypt
-
CC=cc
-
OPTIM=-O (-O2 ведет к segmentation violation)
-
RANLIB=touch
(использование ranlib грохает ld)
-
Rule SHARED_CORE=no
-
Rule SHARED_CHAIN=no
-
раскоментируем модули info, proxy, rewrite, auth_dbm, cern_meta, expires,
headers
-
тащим webcounter (2.2.4 на 21 января 1999)
-
берем
архив
-
разворачиваем его
-
копируем
поддиректорию cntr в
директорию apache/src/modules
-
запоминаем, что configure надо
запускать с ключом
--activate-module=src/modules/cntr/mod_cntr.c
или в Configure.tmpl добвляем строку (в
конец?)
AddModule modules/cntr/mod_cntr.o
-
В httpd.conf добавить (можно также в .htaccess)
AddModule mod_cntr.c
CounterAutoAdd On
CounterFile имя-файла
CounterTimeFmt
строка-для-форматирования-даты # по
умолчанию "%A, %d-%b-%y %T %Z"
CounterFaceDir
имя-директории-где-цифры-лежат
# отныне цифр
разворачиваются не через cgi-bin а внутр
сервера, надо задать хендлер
"меньше"Location /server-cntr"больше"
SetHandler server-cntr
"меньше"/Location"больше"
"меньше"Location
/server-cntr-debug"больше"
SetHandler server-cntr-debug
"меньше"/Location"больше"
-
в поставку входит show-digits.cgi,
который показывает список шрифтов. Его надо
установить.
-
в поставку входят шрифты default и tiny.
Другие формы цифр можно взять
здесь
преобразовать с помощью renamegif.pl. У меня их
достаточно осталось от
предыдущей версии.
-
преобразовать старые счетчики с помощью updatedbm.pl
-
новый формат
использования в html-тексте
img
src="/server-cntr/path-info?face=facename_амперсенд_ndigit=n_амперсенд_fcount=n_амперсенд_trans
где
-
path-info - имя файла, счетчик
которого надо вставить (раньше было url=)
-
face - имя шрифта (раньше было type=)
-
ndigit - число цифр (раньше было length=)
-
fcount - фиктивное значение
счетчика (раньше было count=)
-
trans - прозрачный фон
-
Переменные для SSI и CGI
-
URL_COUNT - счетчик числа
обращений к файл
-
URL_COUNT_RESET - время запуска
счетчика
-
URL_COUNT_DB - имя
счетчиков
-
URL_COUNT_TIMEFMT - формат для времен
запуска
-
URL_COUNT_FACEDIR -
директория со шрифта
-
URL_COUNT_DINDEX - имя файла для
индекса директор
Есть версия count.cgi на perl
(требуется GD.pm and URI::URL (comes with libwww) )
-
Ручной доступ к базе данных
счетчиков: countctl.pl
countctl.pl [ -cdrv URL ] filename
-c добавить URL
-d удалить
-r сбросить
-v посмотреть
без флагов выдает дамп всей БД в
формате: URL счетчик
время-старта
-
./configure
-
make (не забудь /usr/ccs/bin в PATH)
-
make install (в /usr/local/apache),
используется Layout Apache, а не GNU
-
bin
-
htpasswd - создание
изменение плоских файлов для базово
аутентификации (формат
имя:шифрованный-пароль)
-
htdiggest - создание
изменение плоских файлов для digest
аутентифика
-
dbmmanage - создает и изменяет файлы для
аутентифика
пользователей в формате DBM
-
ab - httpd benchmark
-
apachectl -
управление сервером. Коман
-
start
-
stop
-
restart
-
fullstatus (нужен lynx и mod_status)
-
status (-//-)
-
graceful (restart без
обрывания текущих
соединений, журнал
закрываются не сразу)
-
configtest
-
help
-
logresolve - если журнал
собирался без
разрешения имен хостов по их IP
адресам, эта утилита
позволяет сделать это в фоновом режиме.
-
rotatelog - режет журнал, если задать: TransferLog "|rotatelogs
/path/to/logs/access_log
интервал-времени"
-
apxs -
динамическое создание и загрузка
модулей в apache сервер
-
httpd - собственно сервер (сигнал HUP -
заново прочесть
конфигурацию, TERM -
завершить свою работу и всех сыновей - в
версии 1.1 не работало)
-
-d ServerRoot
-
-f config
-
-C directive (выполнить
директиву до чтения файла
конфигурации)
-
-c directivе (-//- после -//- )
-
-D параметр
(определение параметра для условно
конфигурации)
-
-L (выдать список директив для каждого
модуля)
-
-l (выдать список модулей)
-
-t (проверить
конфигурацию)
-
-X (отладочный режим)
-
-v (выдача краткой
информации о версии сервера)
-
-V (выдача полной
информации о версии сервера)
-
-S (разбор
конфигурации
виртуальных хостов)
-
-h (выдать синтаксис
командной строки)
-
libexec
-
man
-
conf
-
tables (табл
перекодировки для Russian Apache)
-
access.conf - ныне пуст
-
httpd.conf - основной файл
конфигурации
-
magic - для модуля mod_mime_magic (анало
команды file), не надо
реедактировать
-
mime.types - не надо
редактировать
-
srm.conf - ныне пуст
-
htdocs - пустой сервер
предоставляет
документацию по сервер
-
cgi-bin
-
icons - маленькие картинки
-
include - (.h для
компиляции
динамически
загружаемых модулей)
-
logs
-
proxy
-
конфигурируем сервер (все что по
умолчанию, особенно всякие
глупости типа имен файлов, не
упоминается)
-
httpd.conf
-
глобальные параметры
-
ServerType standalone
-
ServerRoot "/usr/local/apache"
-
PidFile /usr/local/apache/log/httpd.pid
-
Timeout 120
-
KeepAlive On
-
MaxKeepAliveRequests 100
-
KeepAliveTimeout 15
-
MinSpareServers 5
-
MaxSpareServers 10
-
StartServers 5
-
MaxClients 150
-
MaxRequestsPerChild 30
-
Listen адрес-хоста:80 (именно адрес, ибо у меня
несколько IP-адресов на хост)
-
Listen
адрес-хоста:3346 (для proxy, а нет ли
стандартного номера порта для http-proxy?)
-
ExtendedStatus On
-
главный сервер (он же
определяет параметры по
умолчанию для
виртуальных хостов)
-
#Port 80 (ибо есть Listen)
-
User nobody
-
Group nobody
-
ServerAdmin bog@deol.ru.
-
ServerName
имя-без-точки-в-конце
-
DocumentRoot "/usr/local/apache/htdocs"
-
для директории / задаем Options FollowSymLinks и AllowOverride None
-
для основной
директории задаем Options Indexes FollowSymLinks IncludesNOEXEC, AllowOverride
None
ограничения на доступ: order allow,deny и allow from all
-
UserDir public_html
-
DirectoryIndex index.html index.htm
-
AccessFileName .htaccess
-
запрет на чтение .htaccess
-
UseCanonicalName on
-
HostnameLookups on
-
ErrorLog /usr/local/apache/logs/main.error_log
-
LogLevel info (м.б.
уменьшить до notice или warn потом)
-
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %v"
combined (%v
добавляем, чтобы явно знать какой
виртуальный хост обработал заявку - analyze надо
подработать)
-
CustomLog /usr/local/apache/logs/main.combined_log combined
-
ServerSignature on
-
алиас и права для
директории иконок
-
ScriptAlias /cgi-bin/ "/usr/local/apache/cgi-bin/" и
права для директории (no override, no options)
-
только для тестового сервера: Redirect /~bog http://www.deol.ru/~bog
-
генерация индексов
директорий
-
FancyIndexing on
-
описание иконок для красивых
индексов и прочего
оформления (разные
модификации AddIcon)
-
всякие там Description, header и readme, indexignore и пр.
-
LanguagePriority ru en
-
AddType text/html .shtml (SSI)
-
AddHandler server-parsed .shtml (SSI)
-
исключения для разных плохо
сделанных броусеров
-
разрешаем server-status и server-info со
своего домена
-
виртуальный сервер под proxy
-
NameVirtualHost http-proxy.deol.ru:81 (?)
-
Port 81
-
ProxyRequests On
-
ограничения на доступ к
директории proxy: только изнутри
-
CacheRoot /usr/local/apache/proxy
-
CacheSize
сколько-не-жалко-килобайт
-
CacheGcInterval 4 (?)
-
CacheMaxExpire 24
-
CacheLastModifiedFactor 0.1 (?)
-
CacheDefaultExpire 4 (?)
-
NoCache
список-доменов-через-пробел
-
ErrorLog /usr/local/apache/logs/proxy_error_log
-
CustomLog /usr/local/apache/logs/proxy_combined_log combined
-
описание
виртуальных хостов
-
.htaccess в
директориях
-
линк
-
конфигурация
дополнительных модуле
-
изменяем /etc/rc2.d/S99httpd, чтобы он
запускал apachectl (start, stop, restart)
-
если не хватает
дескрипторов файлов по
умолчанию (64), то в apachectl
вставить
ulimit -S -n 1024
ядро Solaris имеет
ограничение 1024 fd, stdlib - 255.
Рекомендуется
поиграться с -DHIGH_SLACK_LINE=256 в EXTRA_CFLAGS пр
сборке сервера. Как только сервер
требуется 256й файл, так
начинаются глюки (я так понимаю, что
обращение к двум файлам идет через один
дескриптор), причем понять что эти глюки из-за
недостатка
дескрипторов
невозможно. Например, у меня не
записывался файл httpd.pid, хотя сам файл
создавался или не работал /cgi-bin/count ил
выдавалась ошибка "forbidden access" или еще
что-нибудь, причем proctool
преспокойно
показывает, что fd = 1024.
-
задаем права на
исполнение тех файлов в cgi-bin,
которые нужны
-
поменять в crontab
процедуру регулярной очистки httpd на
использование apachectl
-
когда все будет хорошо - удалить старый
сервер
Конфигурация
Конфигурация сервера задается в файлах httpd.conf, srm.conf, access.conf
и .htaccess. Раньше в httpd.conf
хранилась общая
конфигурация сервера, в srm.conf
описание доступных ресурсов, в access.conf - права
доступа к ресурсам. В нынешней версии любая
директива
конфигурации может лежать в любом из этих
файлов, так что можно
представить себе один
виртуальный файл конфигура
сконкатенированный из этих трех (httd + srm + access).
Начиная с версии 1.3.4 все
директивы
конфигурации слиты в httpd.conf. Файлы .htaccess
могут лежать в
директориях
переопределять права доступа и другие
параметры данных
директорий. Некоторые модули могут иметь свои
отдельные файл
конфигурации (например, mod_charset
требует файлов, хранящих табл
перекодировки).
Сервер apache разбит на модули (в т.ч. core),
каждая директива
определяет поведение одного из модулей и имеет
смысл только если этот модуль включен пр
сборке.
Контексты:
-
S сервер - директива
действует на поведение сервера целико
-
V виртуальный хост -
действует, если запрос касается данного
виртуального хоста (внутри скобок VirtualHost)
-
D директория -
определяет свойства только данно
директории (внутри скобок Directory)
-
A .htaccess -
определяет свойства только данно
директор
(определяется в файле .htaccess)
Порядок применения директив
определения свойств и прав доступа к
объекту (все, кроме Directory,
применются по порядку; Directory
применются от
кратчайшего пути к само длинному; секции
внутри VirtualHost
применяются после тех, которые
снаружи):
-
секция Directory (кроме
регулярных выражений) и .htaccess (.htaccess
перебивает Directory, есл
разрешено AllowOverride)
-
секция DirectoryMatch и Directory
регулярн выражения
-
секции Files и FilesMatch
-
секции Location и LocationMatch
Права доступа, свойства объекта и где его взять
-
DA allow from {host}
определяет с каких адресов будет доступ к
данной директор
-
all - со всех
-
доменное имя (м.б.
частичное) - с тех хостов, имя которых
заканчивается на эту строк
-
полный IP адре
-
частичный IP адрес - первые 1, 2 или 3 байта IP
адреса
-
a.b.c.d/e.f.g.h - network/netmask пара
-
a.b.c.d/nnn - network/netpart-bits
-
DA allow from
env=имя-переменной
доступ
разрешается только есл
определена
соответствующая переменна
окружения
-
D AllowOverride {None | All | AuthConfig |
FileInfo | Indexes | Limit | Options} -
какие директивы из .htaccess в данно
директории могут забивать оп
конфигурации сервера
-
D AuthName
домен-авторизации - какой домен
авторизации клиент должен
использовать пр
определении имени и пароля
-
DA deny from {host}
определяет с каких адресов не будет
доступа к данно директор
-
all - со всех
-
доменное имя (м.б.
частичное) - с тех хостов, имя которых
заканчивается на эту строк
-
полный IP адре
-
частичный IP адрес - первые 1, 2 или 3 байта IP
адреса
-
a.b.c.d/e.f.g.h - network/netmask пара
-
a.b.c.d/nnn - network/netpart-bits
-
DA deny from
env=имя-переменной
доступ не
разрешается есл
определена
соответствующая переменна
окружения
-
SV меньшеDirectory
имя-директирии
больше ... меньше /Directory
больше
внутр
определяются права и свойства данно
директории. В качестве имен
используется полный путь или wild-card как в shell.
-
SV меньше DirectoryMatch
регулярное-выражение
больше ... меньше /DirectoryMatch
больше
внутр
определяются права и свойства данно
директории. В качестве имен
используется
регулярное выражение.
-
SV DocumentRoot путь
определяет, где находится корень
документов сервера ил
виртуального сервера
-
SVDA ErrorDocument error-code document
какой документ выдавать в случае ошибка
указанным кодом (есл
начинается с кавычек, то далее идет текст
сообщения; если со слеша, то далее идет
локальный URL - в том числе CGI, в
который передаются
описывающие ситуа
переменные окружения; можно
использовать полную форму URL)
-
SVA меньше Files
имя-файла больше ...
меньше /Files
больше
внутр
определяются права и свойства файлаов
соответствующим basename.
качестве имен
используется basename или wild-card как в shell.
Может находиться внутри секции Directory или .htaccess.
-
SVA меньше FilesMatch
имя-файла больше ...
меньше /FilesMatch
больше
внутр
определяются права и свойства файлаов
соответствующим basename.
качестве имен
используется
регулярное выражение Может
находиться внутри секции Directory или .htaccess.
-
SVDA меньше Limit
{метод} больше ...
меньше /Limit
больше
это скобки для группы директив
управляющих доступом. Метод - GET, POST, PUT, DELETE, CONNECT or OPTIONS.
Если директив
управления доступо
используются вне скобок Limit, то он
используются для
ограничения любого метода доступа.
-
SV меньшеLocation URL
больше ... меньше /Location
больше
внутр
определются свойства и права доступа для
данного URL (полная строка или шаблон).
Использование директивы SetHandler внутр
скобок позволяет задать
специальн обработчик для данного URL.
-
SV меньшеLocationMatch URL
больше ... меньше /LocationMatch
больше
внутр
определются свойства и права доступа для
данного URL
(регулярное выражение).
Использование директивы SetHandler внутр
скобок позволяет задать
специальн обработчик для данного URL.
-
SVDA Options [+|-]option ...
определяет
возможности сервера в данно
директор
-
ALL (по умолчанию) - все кроме MultiView
-
ExecCGI -
разрешается
выполнение CGI
-
FollowSymLinks - ходить по
символьным ссылка
-
Includes -
использовать SSI
-
IncludesNOEXEC -
использовать SSI, кроме exec и include CGI
-
Indexes -
генерировать листин
директории, есл
отсутствует файл index.html
-
MultiViews -
определять
представление ресурса в
зависмости от
предпочтений клиента (тип
носителя, язык, набор символов
кодировка) (не надо это включать)
-
SymLinksIfOwnerMatch -
следовать по
символьным ссылкам, только есл
владелец целевого файла
совпадает владельцем ссылки (а я-то, старый дурак,
═думал, что владелец ссылки всегда root)
-
DA order
порядок
определяет
очередность в которо
применяются директивы allow и deny
-
deny,allow - перв
применяются директивы deny, затем allow
(начальное состояние - доступ
разрешен)
-
allow,deny - перв
применяются директивы allow, затем deny
(начальное состояние -
запрещено)
-
mutual-failure - доступ только с тех
хостов, которые
перечислены в allow и не
перечислены в deny
-
DA require entity-name entity
entity...
како
пользователь может иметь достуо к
директор
-
user {userid}
только
пользователи с данными имена
-
group {group-name}
только
пользователи из данной групп
-
valid-user
любо
аутентифицированн
пользователь
-
DA satisfy [all|any]
если для
ограничения доступа
используется и имя/пароль и IP адрес, то
сервер будет требовать
соответствия обоих
критериев (all) или любого из них (any). По
умолчанию - all.
-
Общие
характеристик
сервера/виртуального сервера
-
SV ErrorLog filename |
syslog:facility
куда выдавать сообщения об ошибках.
-
SV Group группа
с правами какой unix-группы будет
обрабатываться запрос.
-
SVD HostNameLookups on | off | double
определять ли имя клиента по его IP-адресу (double -
сначала делается обратный, затем прямо запрос к DNS,
результат
сравниваются).
-
SVDA меньше IfDefine [!]parameter-name
больше ... меньше/IfDefine
больше
условная
конфигурация, если параметр
(не)определен.
-
SVDA меньше IfModule [!]module-name
больше ... меньше/IfModulee
больше
условная
конфигурация, если модуль
(не)включен в состав сервера.
-
S Include
имя-файла
вставить содержимое файла в состав
конфигурации в данном месте.
-
S KeepAlive on | off
обслуживать несколько запросов , не
прерывая
TCP-соединения с клиентом.
-
S KeepAliveTimeout seconds
-
SV LogLevel emerg | alert | crit | error
| warn | notice | info | debug
что писать в журнал ошибок
-
S MaxClients
максимальное-число-клиентов
-
S MaxKeepAliveRequests
максимальное-число-запросов-при-keep-alive
-
S MaxRequestsPerChild
максимальное-число-запросов-обслуживаемых-одним-процессом
-
S MaxSpareServers
максимальное-число-простаивающих-процессов
-
S MinSpareServers
минимальное-число-простаивающих-процессов
-
S Port
номер-порта
к какому порт
прислушиваться (по
умолчанию - 80).
-
SV RLimitCPU soft-limit ═max-resource-limit
задает
максимальное число секунд CPU для любого
процесса. Оба параметра могут быть числом ил
словом max
-
SV RlimitMEM soft-limit ═max-resource-limit
задает
максимальное число байт, которое может
использовать каждый процесс. Оба
параметра могут быть числом или словом max
-
SV RlimitNPROC soft-limit
═max-resource-limit
задает
максимальное число
процессов которое может
запустить каж
пользователь. Оба параметра могут быть числом ил
словом max
-
SV ServerAdmin email-address
-
SV ServerName
полное-доменое-имя
используется для redirect. По
умолчанию сервер пытается
определить его сам, но в Solaris лучше задать
вручную.
-
S ServerRoot
полное-имя-директории
задает место, где лежат все файл
сервера по умолчанию (и откуда
отсчитываются
относительные имена файлов)
-
SVDA ServerSignature Off | On | EMail
какую информацию включать в конце
документов,
генерируемых сервером (например,
сообщений об ошибках)
-
Off - никако
-
On - имя сервера и версия П
-
EMail - еще и почтовый адре
администратора
-
S ServerTokens Minimal|OS|Full
что сервер сообщает о себе в
заголовке Server:
(примерный текст):
-
Minimal - Server: Apache/1.3.0
-
OS - Server: Apache/1.3.0 (Unix)
-
Full - Server: Apache/1.3.0 (Unix) PHP/3.0 MyMod/1.2
-
S ServerType standalone | inetd
-
S StartServers number
сколько сыновних процессов
запускать при начальном старте
-
S TimeOut секунд
-
SVDA UseCanonicalName on|off
используется при генерации URL,
ссылающихся на этот же сервер
-
On -
использовать имя,
определенное в ServerName и Port
-
Off -
использовать параметры из запроса
пользователя
-
SV User uid
с правами какого
пользователя будет работать сервер
Виртуальные сервера
-
S NameVirtualHost
addr[:port]
привязывает
виртуальный хост к данно
адресу/порту (запросы на этот адрес будут
распределяться только между эт
виртуальными хостами)
-
V ServerAlias host1 host2 ...
задает
альтернативные имена для
виртуального хоста
-
V ServerPath путь
все запросы, URI которых
начинаются с путь будут
обслуживаться эт
виртуальным сервером (конечно, адрес и порт должн
соответствовать тоже)
-
S меньше VirtualHost
{адрес[:порт]}
больше ... меньше /VirtualHost
больше
это скобки,
определяющие описание
виртуального сервера. Адрес и порт
определяют адрес, по которому он будет
отзываться. Внутри можно
использовать любые
директивы,
позволяющие контекст V.
Преобразование адресов
-
SV Alias URL dirname-filename
запрос с URL (%
декодируются),
начинающегося с URL, будет
отображен на файл,
начинающийся с dirname-filename (м.б. вне DocumentRoot).
Доступ к dirname-filename
должен быть разрешен.
-
SV AliasMatch
регулярное-выражение dirname-filename
аналогично Alias, но
сравнение
производится в
соответств регулярн
выражением. Часть
регулярного выражения,
заключенная в скобки,
запоминается как
позиционный параметр и м.б.
вставлена в правую часть
(синтаксис как в sh)
-
SVDA Redirect [ status ] url-path
url
преобразование
%-декодированного иходного URL (url-path) ═в
результатирующий (url). Клиент
возвращается сообщение об ошибке и новый URL,
который он должен
запросить. Имеет больш
приоритет, чем Alias или ScriptAlias. url-path д.б.
абсолютным адресом. status (по
умолчанию temporary - код 302)
определяет код возврата:
-
permanent - ресур перемещен
навсегда (301)
-
temp - ресурс перемещен временно (302)
-
seeother - ресурс замещен (303)
-
gone - ресурс удален (410) (в этом случае новый URL д.б.
опущен)
-
SV RedirectMatch [ status ] regex
url
аналогично Redirect, но
сравнение
производится не на
совпадение начал, а по
соответствию URL от клиента
регулярному выражению. Строки,
соответствующие
подвыражениям в скобках ,
помещаются в
позиционные
переменные и м.б.
использован
аналогично shell.
-
SV ScriptAlias url-path
directory-filename
аналогично директиве Alias, но
дополнительно пометить
директорию как
содержащую CGI
-
SV ScriptAliasMatch regex
directory-filename
аналогично директиве AliasMatch, но
дополнительно пометить
директорию как
содержащую CGI
Преобразование
http-заголовков (в стиле
метафайла
CERN и др.)
Безопасность
-
DA AuthGroupFile filename
определяет имя файла, в которо
хранится список групп
пользователей в формате: каждая строка
определяет группу и имеет вид:
имя-группы:
{имя-пользователя}
-
DA AuthUserFile filename
определяет имя файла, в которо
хранится список
пользователей в формате:
имя-пользователя:шифрованный-пароль
-
D AuthType {Basic | Digest ] - тип
аутентифика
-
DA AuthAuthoritative on | off
по умолчанию - on. Есл
установлено off, то проце
аутентифика
авторизации, в случае
отсутствия имен
пользователя в текущей базе данных,
обращаются к модуля
аутентификации нижнего уровня.
-
DA AuthDBMGroupFile filename
аналогично AuthGroupFile, но
использованием dbm (ключ - имя
пользователя, значение - список групп через
запятую)
-
DA AuthDBMUserFile filename
аналогично AuthUserFile, но
использованием dbm (ключ - имя
пользователя, значение -
шифрованный пароль). ═Если AuthDBMUserFile и AuthDBMGroupFile
указывают на один и тот же файл, то это
совмещенный файл (ключ - имя
пользователя, значение -
шифрованный пароль, за которым следует
двоеточие и список групп через
запятую).
-
DA AuthDBMAuthoritative on | off
по умолчанию - on. Есл
установлено off, то проце
аутентифика
авторизации, в случае
отсутствия имен
пользователя в текущей базе данных,
обращаются к модуля
аутентификации нижнего уровня.
-
DA AuthDigestFile filename
определяет файл с имена
пользователе
шифрованными паролями по
алгоритму MD5. Файл
создается утилитой htdigest
(исходники в
директории support). Вместо
AuthType Basic
надо указать
AuthType Digest
Индекс директор
(автоматическая генерация, есл
отсутствует вручн сделанный
индексный файл разрешена Option Indexes)
-
SVDA AddAlt string file
file...
какую строчку текста
показывать вместо иконки, есл клиента
отключена загрузка картинок. file
задается суффиксом,
частичным именем файла или wild-card
-
SVDA AddAltByEncoding string
MIME-encoding MIME-encoding...
аналогично, но
определяется не по имени файла, а по
MIME-кодировке (типа x-compress).
-
SVDA AddAltByType string MIME-type
MIME-type ..
аналогично, но
определяется по MIME-тип
(например, text/html)
-
SVDA AddDescription string file
file...
текстовое описание файла. file
задается суффиксом,
частичным именем файла, wild-card или цел
именем.
-
SVDA AddIcon icon name
name ...
определяет какую картинк показать для файла,
соответствующего name. icon
имеет формат либо URL, либо в круглых
скобках
альтернативный текст и URL через
запятую. name
задается суффиксом,
частичным именем файла, wild-card или цел
именем.или ключевыми словами ^^DIRECTORY^^ и ^^BLANKICON^^.
-
SVDA AddIconByEncoding icon
MIME-encoding MIME-encoding ...
аналогично, но
определяется не по имени файла, а по
MIME-кодировке (типа x-compress).
-
SVDA AddIconByType icon MIME-type
MIME-type ...
аналогично, но
определяется по MIME-тип
(например, text/html)
-
SVDA DefaultIcon url
если никакая иконка не подошла, то будет
использоватся эта
-
SVDA DirectoryIndex local-url local-url
...
задает имя файла
(относительно
запрашиваемо
директории), в котором лежит индек
директории (по умолчанию - index.html)
-
SVDA FancyIndexing on|off
делать красивый индекс (
возможность
сортировки по столбцам)
-
SVDA HeaderName filename
в качестве заголовка индекса будет
вставлен указанный файл (сначала ищется файл filename.html,
затем просто filename).
-
SVDA IndexIgnore file file ...
список файлов, которые надо
скрывать. file
задается суффиксом,
частичным именем файла, wild-card или цел
именем.
-
SVDA IndexOptions [+|-]option
[+|-]option ... (оп
сливаются с учетом знаков)
-
FancyIndexing - делать
красивый индекс (
возможность
сортировки по столбцам)
-
IconHeight[=pixels]
-
IconsAreLinks - для fancy indexing
-
IconWidth[=pixels]
-
NameWidth=[n | *] - ширина
колонки (* -
использовать длину самого
длинного имени файла)
-
ScanHTMLTitles -
вытаскивать описание файла из HTML-текста
(только fancy indexing)
-
SuppressColumnSorting - имена
колонок не будут вызывать
сортировку индекса при fancy indexing
-
SuppressDescription - не
включать колонк описанием файла при fancy indexing
-
SuppressHTMLPreamble -
подавить вставку заголовка пере
включением файла,
определенного по HeaderName
-
SuppressLastModified -
подавление колонки при fancy indexing
-
SuppressSize -
подавление колонки при fancy indexing
-
SVDA ReadmeName filename
в конец индекса будет вставлен
указанный файл (сначала ищется файл filename.html,
затем просто filename).
Вызов CGI, SSI и т.п.
-
CGI: любой файл с MIME-типом application/x-httpd-cgi
(директива AddType или ScriptAlias) ═ил
хендлером cgi-script
(директива addHandler) будет
обрабатываться модулем cgi.
Перед вызовом будут
добавлены переменные
окружения,
определенные
стандартом, а
также DOCUMENT_ROOT, REMOTE_HOST, REMOTE_IDENT и REMOTE_USER
(если эта информация доступна).
-
S ScriptLog filename -
журнал ошибок
-
S ScriptLogLength size -
максимальный размер журнала ошибок (по
умолчанию - 10 МБ)
-
S ScriptLogBuffer size -
размер тела PUT или POST (по
умолчанию - 1024)
-
SV SetEnv variable value -
установка переменных
окружения перед запуском CGI
-
SV PassEnv variable variable ...
передaча указанных
переменных окружения на момент запуска httpd в CGI или SSI
-
SV UnsetEnv variable variable ...
удалить указанные
переменные из окружения пере
запуском CGI или SSI
-
SSI: любой документ
хендлером server-parsed
(директива AddHandler и AddType text/html для того же
суффикса) будет
обрабатываться модулем include
(необходимо
установить опцию Includes для данно
директории).
Коман
оформляются как
SGML-комментарии:
меньше!--#команда
{атрибут=значение}
--больше
команды:
-
config - атрибуты:
-
errmsg - текст
сообщения, посылаемый клиенту в случае ошибк
разбора SSI
-
sizefmt - формат размера файла
-
bytes
-
abbrev - в Kb или Mb
-
timefmt - строка, которая
используется strftime(3) при выдаче дат
-
echo - печать значен
переменных, имена которых
задаются в атрибутах
-
exec - выполнить команду или CGI
скрипт (если нет опции IncludesNOEXEC)
-
cgi - имя CGI скрипта (если имя
относительное, то
относительно текущего
документа), должен лежать в
допустимом месте. PATH_INFO и QUERY_STRING
наследуется из текущего
документа.
Include-переменные
добавляются к
стандартному CGI-окружению. Если скрипт
возвращает заголовок Location:, то он
преобразуется в HTML anchor.
-
cmd - указанная команда
выполняется, используя /bin/sh.
Include-переменные
передаются в команду.
-
fsize - печать размера файла
-
file - имя файла (м.б.
относительно текущего
документа)
-
virtual - URL (м.б.
относительно текущего
документа)
-
flastmode - время последне
модификации файла
-
file -
аналогично fsize
-
virtual -
аналогично fsize
-
include - вставить текст другого
документа или файла (можгут быть
вложенные include).
Вставляемый файл
контролируется на право доступа обычн
образом. Если в текуще
директории действует опция IncludesNOEXEC, а
вставляемый документ содержит вызов CGI, то
документ не
вставляется.
-
file - только
относительно текущего
документа (никаких
абсолютных имен или имен,
начинающихся с ../)
-
virtual - URL. Не может
содержать схему или имя хоста. М.б.
относительно текущего
документа. Может содержать query.
-
printenv - печать всех
определенных
переменных окружения и их значен
-
set -
установить значение
переменной окружения
-
var - имя переменно
-
value - значение
переменно
Дополнительные (к стандарту CGI)
переменные окружения:
-
DATE_GMT
-
DATE_LOCAL
-
DOCUMENT_NAME (имя файла без имен
директории)
-
DOCUMENT_URI (URL
запрошенного (не текущего)
документа)
-
LAST_MODIFIED
Внутри строки,
заключенной в кавычки в теле
директивы SSI,
происходит
подстановка перемнной ее
значением как в shell.
Условное выполнение
-
меньше!--#if expr="test_condition"
--больше
-
меньше!--#elif expr="test_condition"
--больше
-
меньше!--#else
--больше
-
меньше!--#endif
--больше
Тестовые условия (если строка2
заключена в слеши, то она
интерпретируется как
регулярное выражение; "=" и "!=" имеет
больший приоритет, чем
"_амперсенд__амперсенд_" и "||"; "!" - еще
больший; все, что не является
переменной ил
оператором,
рассматривается как строка; строки могут быть
заключены в апострофы; если строка
содержит пробелы, то она ДОЛЖНА быть
заключена в апострофы; две строки рядо
конкатенируются через пробел):
-
строка - истина, если строка не пуста
-
строка1 = строка2
-
строка1 != строка2
-
строка1 меньше строка2
-
строка1 меньше= строка2
-
строка1 больше строка2
-
строка1 больше= строка2
-
(test_condition)
-
! test_condition
-
test_condition1
_амперсенд__амперсенд_ test_condition2
-
test_condition1 || test_condition2
-
SVDA XBitHack status
статус влияет на обработку файлов,
имеющих MIME-тип text/html:
-
off (по умолчанию)
-
on - если файл имеет
установленный x-бит для
владельца, то он
рассматривается как server parsed
-
full - так же как on, но
проверяется x-бит для группы и есл
установлен, то
посылается заголовок Last-modified date (в
соответствии со времене последне
модификации файла). Это
позволяет кешировать документ.
Карта,
разбираемая сервером, (image map) не
используется и не
описывается (пусть разбор идет только на
клиентской стороне).
Выдача информации о составе модуле
сервера (mod_info):
-
SVDA
обеспечение доступа к
информации (вместо /server-info можно
указать другой адрес,
рекомендуется
ограничить доступ):
меньше Location /server-info
больше
SetHandler server-info
меньше /Location
больше
-
SV AddModuleInfo module-name
string
срока будет разобрана как
HTML-документ и показана в поле
"дополнительная
информация о модуле"
Журналы (модуль mod_log_config; журнал ошибок
конфигурируется др
средствами)
Каж виртуальный сервер может вест
произвольное число журналов в
различных форматах.
Директив
(рекомендуется
использовать только LogFormat для
определения формата и CustomLog для
создания журнала)
-
SV CookieLog filename
Только для
совместимости со старым модулем mod_cookie.
Рекомендуется
использовать mod_usertrack и CustomLog.
-
SV CustomLog
файл-или-канал
формат-или-имя-формата
Вести журнал
определенного формата в
указанном файле или подать на вхо
программе .Имя файла либо
полностью, либо
относительно ServerRoot. Канал
записывается как символ "|", за которым идет имя
запускаемой команды. Журнал
подается на
стандартный вход команды, которая
запускается с теми же правами, что и httpd. Имя
формата
определяется в LogFormat
-
SV LogFormat
формат
[имя-формата]
Определить формат указанным именем. По
умолчанию - "%h %l %u %t \"%r\" %s %b" - так
называемый Common Log Format (CLF)
-
SV TransferLog
файл-или-канал
аналогично CustomLog, но формат
определяется в
предыдущей LogFormat без имени.
Формат журнала: каждый запрос к сервер
порождает строку в журнале,
состоящую из слов (token),
разделенных пробелами. Если слово пусто, то оно
записывается как знак минус. Если слово
содержит пробелы, то оно должно
заключаться в кавычки( это надо само
предусмотреть при задании формата). Пр
задании формата
используются
литеральные символы, которые
копируются в журнал
директивы, которые
начинаются со знака "процент"
завершаются
однобуквенным имене
директивы. Между ними может стоять
условие в виде списка кодов
завершения через запятую (м.б.
предваренных
восклицательным знаком) - если условие не
выполняется, то вместо token
записывается минус.
Директива в описании формата
замещается
соответствующим значением.
Директивы:
-
%b - количество посланных байт, кроме
HTTP-заголовка
-
%f - имя файла
-
%{имя}e - значение
переменной окружения. Наиболее часто
используются (где взять весь
список?)
-
Referer - откуда была ссылка на
документ
-
User-agent - что сказал о себе броусер
-
%h - имя удаленного хоста
-
%a - адрес удаленного хоста
-
%{имя-заголовка}i - значение
заголовка запроса
-
%l - имя удаленного
пользователя (есл
задействован ident)
-
%{имя-заметки}n -
содержимое заметк указанным именем,
сгенеренной другим модуле
-
%{имя-заголовка}o - значение
заголовка ответа
-
%p -
канонический номер порта сервера
-
%P - pid процесса,
обслуживающего запро
-
%r - первая строка запроса
-
%s - статус запроса (ко возврата)
-
%t - время в CLF-формате
([day2d/month3l/year4d:hour2l:minute2l:second2l
zone], где zone в формате
[+|-]hour2dmin2d)
-
%{формат}t - время формат выдачи описан в strftime(3)
-
%u - имя
авторизованного
пользователя (если статус не равен 401)
-
%U -
запрошенный URL
-
%v -
канонический ServerName
|