= WEB-design =
la_serg
Свой Веб-Сервер
продолжение: начало в #58, #59
Рассмотрим вторую секцию конфигурационного файла httpd.conf В этом разделе описываются установки "основного" сервера. То есть, сервера, не обслуживаемого как VirtualHost.
Параметры установленные здесь являются базовыми для любого виртуального сервера, любая из директив этого раздела может использоваться в разделе конфигурации виртуального сервера, в этом случае они будут переопределены. StandAlone (см. начало статьи в предыдущем номере) серверы работают с портами до 1023. По умолчанию для http используется 80 порт. Если вы хотите жестко переопределить порт, используется директива port 888. Она заставляет apache обрабатывать запросы к вашей машине, приходящие на порт 888. Apache позволяет использовать логические операторы в файле конфигурации, которые напоминают теги HTML. Рассмотрим пример:
<IfDefine SSL>
Listen 80
Listen 443
</IfDefine>
Если определено выражение SSL, то выполняются директивы, заключенные в тег , а именно директивы Listen, указывающие, какие порты надо "слушать". Выражение SSL определяется при загрузке соответствующего модуля (в предыдущей секции нашего конфига).
При использовани apache на unix-системе, рекомендуется запускать его от имени вебмастера, таким образом вы частично исключите ошибки, возможные из-за прав доступа на файлы сайта. Для этого используются следующие директивы:
user webmaster group users
Теперь apache будет работать от вашего имени, все файлы, созданные динамически (например, скриптами вашего сайта), также будут принадлежать вам. Некоторые сообщения об ошибках (например, сообщение об ошибке 500) содержат e-mail администратора сайта. По умолчанию это root@localhost очевидно, что его необходимо заменить. Это делается с помощью команды:
ServerAdmin la_serg@mail.ru
Чтобы установить корень сервера (т.е. папку, из которой по умолчанию берутся документы при обращении к вашему серверу), используется директива:
DocumentRoot /usr/local/httpd/htdocs
Таким образом, при обращение к файлу http://yourmachine/page.html, apache попробует обратиться к файлу /usr/local/httpd/htdocs/page.html
Мы можем сконфигурировать доступ apache к любой директории. Сконфигурируем доступ к директории /usr/local/httpd/htdocs
<Directory /usr/local/httpd/htdocs>
Options Indexes - FollowSymLinks - Includes MultiViews
AllowOverride None
Order allow,deny
Allow from all
<Files index.html>
Options - FollowSymLinks +Includes
</Files>
</Directory>
Разберем эту секцию более подробно. Тег <Directory "/usr/local/httpd/htdocs> объявляет, что все определения, находящиеся внутри, относятся к директории /usr/local/httpd/htdocs. Options устанавливает список опций для директории. Если опция входит со знаком (+), то она включается, если она входит со знаком (-) ,то выключается. Опция FollowSymLinks запрещает использование символических ссылок (символические ссылки создаются командой ln) в данной директории, опция +Includes разрешает использовать SSI-файлы в данной директории. AllowOverride определяет, какие директивы могут быть переопределены внутри файла .htaccess. Order определяет порядок, в котором проверяют доступность сервера для пользователя. В нашем случае сначала проверяется на разрешение, затем - на запрет. Директива Allow определяет список ip-адресов, с которых разрешен доступ на наш сайт. Обратный эффект имеет директива Deny. После того, как мы в директиве Allow разрешили доступ с любого хоста, нам нет необходимости описывать Deny. Как вы заметили, теги могут быть вложенными, так тег <Files index.html> вложен в тег <Directory>. Эти теги аналогичны, различаются лишь областью действия - директории и файлы соответственно. В нашем случае определяются права доступа к файлу index.html в директории /usr/local/httpd/htdocs. Опции аналогичны рассмотренным выше.
P.S. Подробнее о VirtualHost - в других статьях.
#21(62)/25.09.2001
|