Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Самоучитель PHP 4 - Котеров Д. В.

.pdf
Скачиваний:
99
Добавлен:
24.05.2014
Размер:
4 Мб
Скачать
☆

518

Часть VI. Приложения

#

<IfModule mod_userdir.c>

UserDir "C:/Program Files/Apache Group/Apache/users/" </IfModule>

#

#DirectoryIndex: Имя файла (или файлов), используемое в качестве

#предопределенной страницы-указателя или оглавления. Если вы указываете

#несколько имен, разделяйте их пробелами.

#

<IfModule mod_dir.c>

DirectoryIndex index.htm index.html </IfModule>

#

#AccessFileName: Имя файла, который сервер ищет в каждом каталоге для

#определения прав доступа.

#

AccessFileName .htaccess

#

#Следующие строки предотвращают доступ к файлам .htaccess со стороны

#Web-клиентов. Поскольку файлы .htaccess нередко содержат информацию об

#аутентификации, доступ к ним запрещен из соображений безопасности. Вы

#можете удалить эти строки (или поставить символ комментария),

#если допускаете, чтобы посетители могли просматривать содержимое файлов

#.htaccess из Web. Если вы поменяете значение директивы AccessFileName

#выше, не забудьте внести и сюда соответствующие изменения.

#

<Files ~ "^\.ht"> Order allow,deny Deny from all

</Files>

#

#CacheNegotiatedDocs: По умолчанию с каждым документом Apache отправляет

#инструкцию "Pragma: no-cache", что является указанием proxy-серверам не

#кэшировать данный документ. Если раскрыть следующую строку, то

#поведение proxy-серверов изменится и им будет разрешено кэшировать

Приложение 1. Файл конфигурации Apache httpd.conf

519

# документы.

#

#CacheNegotiatedDocs

#

#UseCanonicalName: (Впервые в версии 1.3.) Если эта директива включена

#(On), то всякий раз, когда Apache требуется создать ссылку на самого

#себя (self-referencing URL, т.е. адрес сервера, с которого поступает

#ответ на запрос), для формирования "канонического имени" он будет

#использовать значения директив ServerName и Port, когда это возможно.

#Если директива выключена (Off), Apache будет по возможности

#использовать значения, предоставленные клиентом. Эта директива влияет

#также на значения переменных SERVER_NAME и SERVER_PORT в CGI-сценариях.

UseCanonicalName On

#

#Директива TypesConfig описывает расположение файла mime.types

#(или его эквивалента).

#

<IfModule mod_mime.c> TypesConfig conf/mime.types

</IfModule>

#

#Директива DefaultType определяет MIME-тип, который будет использоваться

#для какого-либо документа, если сервер не сможет определить его по иным

#признакам, например, по расширению имени файла. Если ваш сервер

#содержит по большей части тексты или HTML-документы, text/plain

#является приемлемым решением. Если большая часть содержимого является

#исполняемыми файлами или изображениями, вы можете поменять значение на

#application/octet-stream, чтобы предотвратить попытку браузера

#показать содержимое двоичного файла.

#

DefaultType text/plain

#

#Модуль mod_mime_magic позволяет серверу использовать разнообразные

#приемы определения типа файла по его содержимому. Директива

520

Часть VI. Приложения

#MIMEMagicFile указывает ему файл, где даны описания таких приемов.

#По умолчанию mod_mime_magic не включен в состав сервера (вы должны

#загрузить его сами с помощью директивы LoadModule — см. абзац DSO в

#разделе "Глобальное окружение", или заново откомпилировать сервер

#с этим модулем), поэтому директива MIMEMagicFile заключена в контейнер

#<IfModule>. Это означает, что она будет обработана только в том случае,

#если модуль mod_mime_magic уже загружен.

#

<IfModule mod_mime_magic.c> MIMEMagicFile conf/magic

</IfModule>

#

#Директива HostnameLookups определяет, регистрировать ли клиентов по

#именам, или только по адресам IP, т.е. www.apache.org (On) или

#204.62.129.132 (Off). По умолчанию — Off, поскольку для снижения

#нагрузки на сеть было бы лучше, если бы вы использовали эту

#возможность, зная о последствиях, т. к. отслеживание по именам означает,

#что каждый клиентский запрос приведет как минимум к еще одному запросу

#к серверу имен для преобразования IP-адреса в имя.

#

HostnameLookups Off

#

#ErrorLog: Расположение файла регистрации ошибок. Если вы не определяете

#директиву ErrorLog внутри контейнера <VirtualHost>, сообщения об

#ошибках, возникших при работе этого хоста, будут записаны в указанный

#ниже файл. В противном случае все сообщения направятся в специфичный

#для виртуального хоста журнал.

#

ErrorLog logs/error.log

#

#LogLevel: Определение характера ошибок, которые записываются в

#error.log. Возможные значения в порядке убывания количества сообщений:

#debug, info, notice, warn, error, crit, alert, emerg.

#

Приложение 1. Файл конфигурации Apache httpd.conf

521

LogLevel warn

#

#Следующие директивы указывают псевдонимы некоторых форматов, которые

#используются в директиве CustomLog (см. ниже).

#

LogFormat "%h %l %u %t \"%r\" %>s %b \"%{User-Agent}i\"" combined LogFormat "%h %l %u %t \"%r\" %>s %b" common

LogFormat "%{Referer}i -> %U" referer LogFormat "%{User-agent}i" agent

#

#Расположение и формат файла регистрации (лога). Если вы не определяете

#никаких лог-файлов внутри контейнера <VirtualHost>, сведения

#будут записываться здесь. Если же вы определяете отдельный лог-файл

#для виртуального хоста, доступ будет отслеживаться в этом логе,

#но не здесь.

#

CustomLog logs/access.log common

#

#Если вы хотите, чтобы имелся агент ссылочных логов (referer logfiles

#agent), раскомментируйте следующие директивы.

#

#CustomLog logs/referer.log referer #CustomLog logs/agent.log agent

#

#Если вы предпочитаете иметь один лог-файл с информацией о доступе,

#агентах и ссылках (комбинированный формат лог-файла), вы можете

#использовать следующую директиву.

#CustomLog logs/access.log combined

#

#Позволяет добавить дополнительную строку, содержащую версию сервера и

#имя виртуального хоста на страницах, сгенерированных сервером

#(сообщениях об ошибках, листингах каталогов FTP, в вывод модулей

#mod_status и mod_info, но не в CGI-документах). Чтобы дополнительно

522

Часть VI. Приложения

#включить ссылку mailto:, содержащую значение директивы ServerAdmin,

#установите значение EMail.

#Допустимые значения: On | Off | Email

#

ServerSignature On

#

#Apache по умолчанию анализирует первую строку каждого CGI-сценария.

#Если эта строка является комментарием и выглядит так: символ (#),

#затем восклицательный знак (!) и, наконец, путь к

#программе-интерпретатору, по которому осуществляется запуск

#сценария, Apache запускает этот интерпретатор.

#Например, для perl-сценариев, стартуемых под управлением perl.exe

#из каталога C:\Program Files\Perl, эта строка должна выглядеть так:

#!c:/program files/perl/perl

#Внимание: вы не должны вставлять пробелы перед символом (#). Кроме

#того, указанная специальная строка должна быть именно первой строкой

#файла. Конечно, для запускаемого файла должна быть разрешена обработка

#CGI — например, путем указания директивы ScriptAlias или

#Options ExecCGI.

#

#Тем не менее, Apache для Windows позволяет в дополнение к "магической"

#строке использовать Реестр для поиска ассоциаций с расширениями.

#Команда для запуска файла указанного типа в этом случае ищется в

#Реестре точно так же, как это происходит, например, при работе

#Проводника, когда вы выполняете двойной щелчок на файле. Действия по

#запуску сценария могут быть сконфигурированы из меню Вид Проводника.

#Там необходимо выбрать Свойства папки и переключиться на вкладку

#Типы файлов. Нажатие на кнопку Изменить позволяет задать действие,

#которое Apache выполнит при попытке открытия файла. Если это не

#удастся, Apache будет искать интерпретатор при помощи "магической"

#строки. Возможно, поведение сервера изменится в Apache версии 2.0.

#

#Чтобы разрешить это специфичное для Windows поведение сервера и, таким

#образом, запретить анализ "магической" строки, удалите комментарий

#со следующей директивы:

#

Приложение 1. Файл конфигурации Apache httpd.conf

523

ScriptInterpreterSource registry

#

#Эта директива может быть помещена в отдельный блок <Directory> или

#в файл .htaccess с указанием в качестве значения registry

#(поведение Windows) или script (анализ "магической" строки, принятый

#в Unix). В таком случае она будет перекрывать директиву, расположенную

#здесь, в главном конфигурационном файле сервера.

#

#

#Псевдонимы: Можно добавлять любое количество псевдонимов (без

#ограничений).

#Формат: Alias псевдоним действительное_имя

#

<IfModule mod_alias.c>

#Обратите внимание, что если вы включаете завершающий слэш в

#"псевдоним", то сервер потребует его присутствия и в URL. Так,

#/icons не будет разыменован в данном примере, только /icons/.

Alias /icons/ "C:/Program Files/Apache Group/Apache/icons/"

<Directory "C:/Program Files/Apache Group/Apache/icons"> Options Indexes MultiViews

AllowOverride None Order allow,deny Allow from all

</Directory>

#

#ScriptAlias: Указывает каталог, который содержит серверные

#сценарии. Свойства ScriptAlias’ов такие же, как и у простых

#псевдонимов, за исключением того, что документы в каталоге

#"действительное_имя" считаются приложениями и выполняются

#на сервере, а не отправляются клиенту. К директиве

#ScriptAlias применяются те же правила в отношении

#завершающего /, что и к Alias.

#

ScriptAlias /cgi-bin/ "z:/home/localhost/cgi/" ScriptAlias /cgi/ "z:/home/localhost/cgi/"

524

Часть VI. Приложения

</IfModule>

#Конец определений псевдонимов.

#Директива Redirect позволяет сообщить клиенту о документе, который

#существовал некогда в пространстве имен сервера, но был перемещен

#в другое место. Она информирует клиента о его новом адресе.

#

# Формат: Redirect старый_URL новый_URL

#

#

# Директивы, управляющие генерацией сервером листингов каталогов.

#

<IfModule mod_autoindex.c>

#

#FancyIndexing означает, что вы предпочитаете листинги с

#"украшательствами". О других возможных значениях директивы

#IndexOptions см. сопроводительную документацию.

#

IndexOptions FancyIndexing

#

#Директивы AddIcon* указывают серверу, какими ярлыками

#будут украшены имена файлов в листинге каталога. Ярлыки

#изображаются только в режиме FancyIndexing.

#

AddIconByEncoding (CMP,/icons/compressed.gif) x-compress x-gzip

AddIconByType (TXT,/icons/text.gif) text/*

AddIconByType (IMG,/icons/image2.gif) image/*

AddIconByType (SND,/icons/sound2.gif) audio/*

AddIconByType (VID,/icons/movie.gif) video/*

AddIcon /icons/binary.gif .bin .exe

AddIcon /icons/binhex.gif .hqx

AddIcon /icons/tar.gif .tar

AddIcon /icons/world2.gif .wrl .wrl.gz .vrml .vrm .iv

AddIcon /icons/compressed.gif .Z .z .tgz .gz .zip

AddIcon /icons/a.gif .ps .ai .eps

Приложение 1. Файл конфигурации Apache httpd.conf

525

AddIcon /icons/layout.gif .html .shtml .htm .pdf AddIcon /icons/text.gif .txt

AddIcon /icons/c.gif .c AddIcon /icons/p.gif .pl .py AddIcon /icons/f.gif .for AddIcon /icons/dvi.gif .dvi

AddIcon /icons/uuencoded.gif .uu

AddIcon /icons/script.gif .conf .sh .shar .csh .ksh .tcl AddIcon /icons/tex.gif .tex

AddIcon /icons/bomb.gif core

AddIcon /icons/back.gif ..

AddIcon /icons/hand.right.gif README

AddIcon /icons/folder.gif ^^DIRECTORY^^

AddIcon /icons/blank.gif ^^BLANKICON^^

#

#DefaultIcon определяет ярлык для файла по умолчанию

#если он не задан явно.

#

DefaultIcon /icons/unknown.gif

#

#AddDescription позволяет размещать краткое описание после имени

#файла в индексах (листингах каталогов), сгенерированных сервером.

#Такие описания выводятся только в режиме FancyIndexing.

#

# Формат: AddDescription "строка_описания" .расширение_имени_файла

#

#AddDescription "GZIP compressed document" .gz #AddDescription "tar archive" .tar #AddDescription "GZIP compressed tar archive" .tgz

#

#ReadmeName задает имя README-файла, который добавляется к листингу

#каталога по умолчанию.

#

#HeaderName указывает имя файла, выводимого в

#заголовке листингов каталога.

526

Часть VI. Приложения

#

#Если задана директива MultiViews в числе значений Options,

#сначала сервер попытается открыть файл имя.html и включит его в

#листинг, если файл существует. Если файл имя.html не существует,

#сервер переориентируется на открытие файла

#имя.txt и включение его в листинг в виде простого текста.

#

ReadmeName README HeaderName HEADER

#

#IndexIgnore описывает набор имен файлов, которые должны быть

#исключены из листинга. В именах допустимы метасимволы подстановки

#в стиле shell.

IndexIgnore .??* *~ *# HEADER* README* RCS CVS *,v *,t

</IfModule>

# Конец секции директив управления листингами.

#

# Типы документов.

#

<IfModule mod_mime.c>

#

#AddEncoding позволяет вам заставить определенные браузеры

#(Mosaic/X 2.1+) распаковывать информацию "на лету".

#Внимание: это свойство поддерживают не все браузеры. Несмотря

#на сходство имен, нижеприведенные директивы Add* не

#имеют ничего общего с директивами оформления FancyIndexing,

#приведенными выше.

#

AddEncoding x-compress Z AddEncoding x-gzip gz tgz

#

#

#AddLanguage позволяет указать язык документа. Вы можете затем

#использовать протокол обмена (content negotiation) для выдачи

#браузеру документа на том языке, который он (браузер) предпочитает.

Приложение 1. Файл конфигурации Apache httpd.conf

527

#

#Примечание 1: Суффикс не обязательно должен совпадать с буквенным

#кодом языка — те, у кого есть документы на польском языке

#(стандартный сетевой буквенный код pl), могут воспользоваться

#директивой AddLanguage pl .po во избежание конфликта с

#распространенным суффиксом сценариев на языке Perl.

#

#Примечание 2: Нижеследующие примеры показывают, что в нескольких

#случаях двухбуквенный код языка не совпадает с двухбуквенным кодом

#страны.

#Например, "Датский/da" вместо "Дания/dk".

#

#Примечание 3: В случае ltz мы нарушаем требования RFC, используя

#трехбуквенный код. Но уж тут ничего не поделаешь. В будущем,

#возможно, несоответствия с RFC1766 будут устранены.

#

#Коды языков:

#датский (Danish) da; голландский, Нидерланды (Dutch) nl;

#английский (English) en; эстонский (Estonian) ee;

#французский (French) fr; немецкий (German) de;

#новогреческий (Greek-Modern) el; итальянский (Italian) it;

#португальский (Portuguese) pt;

#люксембургский (Luxembourgeois*) ltz;

#испанский (Spanish) es; шведский (Swedish) sv;

#каталонский (Catalan) ca; чешский (Czech) cz;

#русский (Russian) ru.

#

AddLanguage da .dk AddLanguage nl .nl AddLanguage en .en AddLanguage et .ee AddLanguage fr .fr AddLanguage de .de AddLanguage el .el AddLanguage he .he

AddCharset ISO-8859-8 .iso8859-8 AddLanguage it .it

AddLanguage ja .ja AddCharset ISO-2022-JP .jis