Самоучитель PHP 4 - Котеров Д. В.
.pdf
Приложение 1
Файл конфигурации
Apache httpd.conf
Это приложение содержит полный текст файла конфигурации сервера Apache httpd.conf с комментариями на русском языке.
Содержимое листинга П1.1 полностью соответствует указаниям по настройке Apache, приведенным в части II книги. Если у вас по какой-то причине не получит- ся правильно установить Apache и PHP версии 4, руководствуясь этими указания- ми, представленный ниже текст файла httpd.conf решит все проблемы.
Несколько слов о формате httpd.conf. Файл состоит из строк, содержащих дирек- тивы Apache. В одной строке может быть расположено не более одной директивы. Текст от # äо конца строки считается комментарием и не берется в рассмотрение. Также игнорируются пустые строки.
При изменении начальной конфигурации файла возможно группирование нескольких директив в блоки, или контейнеры. При этом Apache поддерживает только ограниченное количество допустимых типов контейнеров. Любой блок-контейнер начинается строкой вида <ИмяКонтейнера>, расположенной, как обычно, на отдельной строке, и завершается тэгом </ИмяКонтейнера>. Некоторые (но не все) блоки могут быть вложенными.
Директивы, касающиеся индивидуальных настроек для каталогов или файлов, могут также помещаться в специальные файлы .htaccess, расположенные в соответствующих местах дерева каталогов сайта. Эти файлы должны иметь тот же формат, что и httpd.conf. Однако для них имеются особые ограничения на использование директив и блоков — список недопустимых можно найти в документации, поставляе-
мой с Apache.
Листинг П1.1. Файл конфигурации Apache httpd.conf
#Основан на конфигурационных файлах сервера NSCA, созданных
#Робом МакКулом.
#
# Главный файл конфигурации сервера Apache, содержащий директивы,
510 |
Часть VI. Приложения |
#управляющие работой сервера. За более детальной информацией
#обращайтесь по адресу http://www.apache.org/docs/.
#
#Не стоит читать эти директивы без понимания их роли. Они
#приведены здесь лишь в качестве примера одного из возможных
#вариантов. В случае сомнений обращайтесь к сопроводительной
#документации. Считайте, что вас предупредили.
#
#После просмотра и анализа файла httpd.conf сервер
#попробует найти и обработать файлы:
#C:/Program Files/Apache Group/Apache/conf/srm.conf, а затем
#C:/Program Files/Apache Group/Apache/conf/access.conf,
#если вы не переопределили эти имена директивами ResourceConfig
#и/или AccessConfig.
#
#Директивы конфигурации сгруппированы в три основных раздела:
#1. Директивы, управляющие процессом Apache в целом (глобальное
#окружение).
#2. Директивы, определяющие параметры "главного" сервера, или
#сервера "по умолчанию", отвечающего на запросы, которые
#не обрабатываются виртуальными хостами. Эти директивы задают
#также установки по умолчанию для всех остальных виртуальных хостов.
#3. Установки для виртуальных хостов, позволяющие обрабатывать
#запросы Web одним-единственным сервером Apache, но направлять
#по раздельным IP-адресам или именам хостов.
#
#Файлы конфигурации программы и журналы регистрации событий
#(в программисткой среде они чаще называются "конфигами" и "логами",
#так что, я думаю, ничего страшного не произойдет, если я буду
#придерживаться этой терминологии и здесь).
#Если имена файлов, определенных вами для управления сервером,
#начинаются с символа / (или "диск:/" для Win32), сервер будет
#использовать явно указанный в этом имени полный путь. Если же имена не
#начинаются с "/", то для определения пути будет задействовано значение
#директивы ServerRoot. Так, logs/foo.log при значении ServerRoot,
#равном /usr/local/apache, будет интерпретироваться сервером как
#/usr/local/apache/logs/foo.log.
#
Приложение 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 мы в настоящее время не пытались устанавливать каталог
#регистрации пользователя, поэтому приходится работать с форматом,
#приведенным ниже.
