Вопрос 4. Конфигурирование Web -сервера Apache - основные директивы файла httpd . conf


Добавил:DMT
Дата создания:30 декабря 2007, 19:16
Дата обновления:30 декабря 2007, 19:16
Просмотров:22467 последний позавчера, 0:26
Комментариев: 1
Вопрос 4. Конфигурирование Web -сервера Apache – основные директивы файла httpd . conf
up

Комментарии для "Вопрос 4. Конфигурирование Web -сервера Apache - основные директивы файла httpd . conf"


Пользователь: litovets
Сообщений: 4
Статус: Незримый
Зарегистрирован:
8 января 2008, 14:36
Был:26 января 2008, 17:33
litovets
smsup
Дата: 8 января 2008, 20:33 Сообщение № 1
Web-сервер — сложный программный продукт, работающий на разных платформах и в разных операционных системах по всему миру. Поэтому для корректной работы на установленной системе его необходимо настроить (сконфигурировать).
По умолчанию настройки Apache расположены в файле httpd.conf в каталоге conf. Далее будут описаны основные директивы файла httpd.conf и их общеупотребительные значения.
Директивы файла httpd.conf
Перечислим директивы конфигурационного файла httpd.conf.
Port
Port 80
Задает порт TCP, который используется Apache для установки соединения.
По умолчанию указывается порт 80.
Единственная причина задания нестандартного порта — это отсутствие прав на использование стандартного порта. При использовании нестандартного порта, например, 8080, номер порта следует указывать в адресе http://localhost:8080/.
ServerAdmin
ServerAdmin mymail@yandex.ru
Содержит адрес электронной почты администратора Web-сервера. Именно этот адрес будет отображаться при ошибках работы сервера.
ServerName
ServerName myserver
Содержит имя компьютера для сервера.
ServerRoot
ServerRoot "C:/Apache2"
Указывает на каталог, содержащий файлы Web-сервера Apache.
Не путайте директиву ServerRoot с директивой DocumentRoot, которая указывает каталог для файлов Web-сайта.
DocumentRoot
DocumentRoot "С:/Apache2/htdocs"
Определяет каталог, в котором расположены файлы Web-сайта.
Контейнер <Directory/>
Сфера действия директив внутри этого контейнера распространяется на все файлы и подкаталоги внутри каталога, заданного в директиве DocumentRoot.
<Directory />
Options FollowSymLinks Includes Indexes
AllowOverride All
</Directory>
• Директива AllowOverride, установленная в значение Аll, разрешает переопределять значения главного конфигурационного файла httpd.conf в файлах .htaccess.
• Директива Options FollowSymLinks разрешает Apache следовать символическим ссылкам.
• Директива Options includes разрешает выполнение директив SSI (Server Side Includes, включения на стороне сервера) в коде страниц Web-сайта.
• Директива Options indexes указывает, что нужно возвращать содержимое каталога, если отсутствует индексный файл.
DirectoryIndex
DirectoryIndex index.html index.phtml index.php
Содержит список индексных файлов, которые следует отображать при обращении к каталогу без указания имени файла (например, http://Iocalhost/test/).
ScriptAlias
ScriptAlias /cgi-bin/ "C:/Apache2/cgi-bin/"
Директива ScriptAlias используется для создания псевдонима каталога /cgibin/, в котором располагаются программы и сценарии CGI. Далее необходимо настроить права и ограничения на каталог cgi-bin.
<Directory "С:/Apache2/cgi-bin">
AllowOverride None
Options ExecCGI
Order allow,deny
Allow from all
</Directory>
Данное действие необходимо для гарантии, что опции каталога не будут изменены, т. к. это может создать проблемы безопасности.
• Директива AllowOverride None говорит о том, что опции этого каталога не могут быть переопределены файлами .htaccess.
• Директива Options ExecCGI разрешает выполнение CGI-сценариев.
• Директивы order allow, deny и Allow from all разрешают доступ к ката-
логу.
AddHandler
AddHandler cgi-script .bat .exe
Эта директива заставляет Apache рассматривать файлы с расширениями ехе и bat, как CGI-скрипты.
DefaultType
DefaultType text/plain
Устанавливает заголовок файлов, тип которых не может быть определен по расширению. В данном случае все неизвестные файлы воспринимаются на обычные текстовые файлы. Для того чтобы все неизвестные расширения файлов обрабатывать, как HTML, измените директиву следующим образом:
DefaultType text/html
AddDefaultCharset
AddDefaultCharset windows-1251
Устанавливает кодировку по умолчанию, если кодировка не задана в заголовке HTML-документа. Также вам может потребоваться указывать значение кодировки KOI8-R.
Создание виртуальных хостов
На одном Web-сервере Apache можно установить несколько Web-сайтов. Эта функция сервера называется виртуальным хостингом. Далее рассмотрим создание виртуальных узлов на основе имен. Виртуальные узлы обычно расположены в конце файла httpd.conf. Сначала требуется указать, какой IP-адрес используется для виртуальных
хостов.
NameVirtualHost 127.0.0.1:80
Затем нужно прописать директивы для контейнера <virtuaiHost>, которые будут определять конфигурацию виртуального хоста (листинг 1.1).
Листинг 1.1. Файл httpd.conf. Контейнер <VirtualHost>
<VirtualHost 127.0.0.1>
ServerAdmin Webmaster@may_domain.ru
DocumentRoot с:/www/mysite
ServerName www.mysite.ru
ServerAlias www.site.ru www.host2.ru
ErrorLog logs/ mysite-error.log
CustomLog logs/ mysite-access.log common
</VirtualHost>
Рассмотрим директивы виртуального узла:
• DocumentRoot указывает каталог, где расположены файлы (страницы) данного виртуального узла (Web-сайта);
• ServerName определяет имя виртуального узла, по которому к нему можно обратиться (в данном случае, по адресу http://www.mysite.ru/);
• ServerAlias содержит псевдонимы имен виртуального узла (в данном случае к виртуальному узлу можно также обратиться, используя имена http://www.site.ru/ и http://www.host2.ru/);
• ErrorLog и CustomLog указывают имена log-файлов сервера для этого виртуального хоста.
Контейнеры <virtualHost> обычно располагают один за другим в конце файла httpd.conf (листинг 1.2).
Листинг 1.2. Файл httpd.conf. Настройка виртуальных хостов
<VirtualHost 127.0.0.1>
# Директивы виртуального хоста 1
</VirtualHost>
<VirtualHost 127.0.0.1>
# Директивы виртуального хоста 2
</VirtualHost>
<VirtualHost 127.0.0.1>
# Директивы виртуального хоста 3
</VirtualHost>
Для вступления в силу изменений, внесенных в файл httpd.conf, Apache следует перезагрузить.
Для того чтобы обращаться к виртуальным узлам по именам, их следует прописать в базе данных DNS-сервера. Если вы используете Apache для тестирования файлов на локальной машине, то имена ваших виртуальных узлов нужно прописать в файле hosts. Для Windows 2000 и ХР он расположен в каталоге C:\Window\System32\Drivers\ets\. Файл hosts содержит записи, подобные представленным в листинге 1.3.
Листинг 1.3. Формат записей файла hosts
127.0.0.1 www.mysite.ru
127.0.0.1 www.site.ru
127.0.0.1 www.host2.ru
Если виртуальных хостов много, то работа по их конфигурированию в едином настроечном файле httpd.conf может усложниться. Решением этой проблемы является создание специального настроечного файла для каждого виртуального узла и присоединение этих настроечных файлов к файлу httpd.conf с помощью директивы include. В настроечные файлы помещаются только контейнер <virtuaiHost> и директивы внутри него.Подключение к файлу httpd.conf происходит так, как указано в листинге 1.4.
Листинг 1.4. Файл httpd.conf с внешними файлами настроек
NameVirtualHost 127.0.0.1:80
Include conf/raysite.conf
Include conf/site.conf
Include conf/host2.conf