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

Самоучитель по PHP 4

.pdf
Скачиваний:
61
Добавлен:
02.05.2014
Размер:
4.36 Mб
Скачать

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

511

#Внимание: В определении имен файлов вы должны использовать прямые слэши

#вместо обратных (т. е. 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_runtime_status

512

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

#

#В стандартной конфигурации сервер обработает при запуске файлы

#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: Максимальное число запросов, допустимое в одном

#долговременном соединении. Для снятия ограничений обнулите параметр,

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

#большое конкретное значение.

MaxKeepAliveRequests 100

#

#KeepAliveTimeout: Время ожидания в секундах следующего запроса от

#одного и того же клиента в одном подключении.

KeepAliveTimeout 15

#

# Для обработки запросов Apache для Win32 всегда порождает один дочерний

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

513

#процесс. Если он по каким-либо причинам будет преждевременно завершен,

#другой дочерний процесс создается автоматически. Поступающие запросы

#внутри такого дочернего процесса обрабатываются отдельными потоками.

#Следующие две директивы управляют поведением таких потоков и процессов.

#

#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.

514

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

#

#BindAddress *

#

#Поддержка динамически разделяемых объектов (DSO, Dynamic Shared Object)

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

#библиотека DSO, вам следует поместить в этом месте соответствующую

#строку LoadModuleТогда модуль будет доступен

#прежде обращения к нему.

#За детальными разъяснениями механизмов DSO вы можете обратиться к

#файлу README.DSO в дистрибутиве Apache 1.3, а также выполнить

#команду 'apache -l', чтобы получить список уже встроенных

#(статически скомпонованных и таким образом всегда доступных)

#модулей сервера Apache.

#

#Внимание: Порядок, в котором загружаются модули, имеет большое

#значение. Не меняйте нижеследующий порядок без консультации со

#специалистом.

#

#LoadModule anon_auth_module modules/ApacheModuleAuthAnon.dll #LoadModule dbm_auth_module modules/ApacheModuleAuthDBM.dll #LoadModule digest_auth_module modules/ApacheModuleAuthDigest.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 info_module modules/ApacheModuleInfo.dll

#LoadModule status_module modules/ApacheModuleStatus.dll #LoadModule usertrack_module modules/ApacheModuleUserTrack.dll

#

#Директива ExtendedStatus определяет, будет ли Apache генерировать

#детальную информацию о состоянии (ExtendedStatus On) или только

#общую информацию (ExtendedStatus Off) при обращении к функции

#server-status. Значение по умолчанию — Off.

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

515

#

#ExtendedStatus On

### Раздел 2: Конфигурация сервера по умолчанию

#

#Директивы этого раздела устанавливают значения, используемые "главным

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

#хостами. Эти значения обусловливают также установки по умолчанию для

#любых контейнеров <VirtualHost>, которые вы будете определять

#здесь далее.

#

#Любые из директив раздела могут быть включены в контейнер

#<VirtualHost>; в таком случае установки по умолчанию будут

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

#

#

#Если в директиве ServerType (установленной ранее в разделе "Глобальное

#окружение") задано значение inetd, следующие несколько директив не

#имеют никакого эффекта, поскольку их значение определено конфигурацией

#inetd. Переходите к директиве ServerAdmin.

#

# Port: Номер порта, к которому подключен сервер.

#

Port 80

#

#ServerAdmin: Ваш адрес, по которому следует направлять сообщения о

#проблемах с сервером. Этот адрес появится на некоторых сгенерированных

#сервером страницах, таких, как сообщения об ошибках.

#

ServerAdmin you@your.address

#

#Директива ServerName задает имя хоста, возвращаемое клиенту, если это

#имя отличается от того имени, которое получила программа (например,

#используйте www вместо реального имени хоста).

516

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

#

#Внимание: Вы не можете просто выдумывать имена хостов в надежде, что

#это сработает. Имя, которое вы определяете здесь, должно быть

#действительным именем DNS для вашего хоста. В случае затруднений с

#пониманием изложенного справьтесь у

#администратора сети.

#Если ваш хост не имеет зарегистрированного имени DNS, вы можете указать

#здесь его адрес IP. В таком случае вам придется обращаться к хосту по

#адресу (например, http://123.45.67.89/) и это может сильно осложнить

#переадресацию ресурсов.

#

ServerName localhost

#

#DocumentRoot: Каталог, в котором будут находиться ваши документы (т.е.

#Web-страницы). По умолчанию, все запросы выбираются из этого каталога;

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

#(links) и псевдонимы (aliases).

#

DocumentRoot "z:/home/localhost/www"

#

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

#сконфигурирован в отношении свойств и сервисов, которые могут быть

#разрешены и/или запрещены в этом каталоге (и его подкаталогах).

#

# Сначала мы определяем свойства "по умолчанию".

#

<Directory z:/>

Options Indexes Includes AllowOverride All

allow from all </Directory>

#

#Обратите внимание, что с этого места и далее вы должны явным образом

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

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

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

517

#это свойство ниже.

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

#DocumentRoot.

#

#<Directory "z:/home/localhost/www">;

#

#Опции могут иметь значения 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>

#

#UserDir: Название каталога, которое прибавляется к именам

#пользовательских домашних каталогов при получении запроса ~user

#(например, http://www.server.com/~username).

#

#Под Win32 мы в настоящее время не пытались устанавливать каталог

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

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

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.

#