Иллюстрированный самоучитель по Linux

Конфигурирование главного сервера

Разрешение каталога HTML

Приведенный далее код является разделом примера файла httpd.conf, имеющего отношение к корневому каталогу F-HTML-документов. Комментарии удалены.

<Directory /var/www/html>
Options Indexes Includes FollowSymLinks
AllowOverride None
order allow,deny
allow from all
</Directory>

Структура этого элемента такова, что необходимые команды помещаются между открывающим и закрывающим дескрипторами <Directory> и </Directory> соответственно. Открывающий дескриптор указывает каталог, на который распространяются все команды, находящиеся между дескрипторами, в данном случае /var/www/html.

Обратите внимание: между дескрипторами <Directory> и </Directory> находятся четыре команды.

Команда Options указывает, какие специальные действия можно выполнить с файлами, находящимися в каталоге и его подкаталогах. Возможны значения None, All, Indexes, Includes, FollowSymLinks, ExecCGI и MultiViews. Для HTML каталогов обычно используются значения None, когда на сайте находятся только обычные файлы HTML и рисунки, и Includes, если планируется разрешить серверу обработку HTML. (Некоторые обрабатываемые сервером файлы HTML позволяют включать другие файлы в содержимое HTML-файла, и эта опция разрешает такое действие).

Следующая команда, AllowOverride, указывает, как влияет локальный файл .htaccess на переопределение элементов файла глобального доступа httpd.conf. Возможны значения None, All, Options, FileInfo, AuthConfig и Limit. Например, величина Options ограничивает возможности файла .htaccess переопределением команды Options. На тех серверах, где Web-мастер полностью контролирует содержимое, проще всего санкционировать файлу httpd.conf полное право переопределения. Если имеется сервер с несколькими пользователями, которые контролируют состав своих собственных каталогов, будет разумно ограничить их привилегии по переопределению конфигурации глобального доступа.

Команды order и allow используются вместе для определения тех, кто имеет доступ к страницам каталога. Приведенная в примере команда order allow, deny указывает, что сначала следует использовать команду allow и, если она не позволяет пользователю получить требуемый файл, то тогда применяется команда deny.

Обычно приходится использовать order allow, deny, если не применяется управление доступом. Если необходимо реализовать управление доступом, то order deny, allow является лучшей командой (это станет понятно позже при построении небольшого Web-сайта с контролем доступа).

После команды order находится команда allow, которая указывает, что всем пользователем разрешается доступ. Чтобы узнать, как запретить доступ пользователей, прочтите документацию по Apache (http://httpd.apache.org).

UserDir

UserDir полезна тогда, когда Web-мастер разрешает каждому пользователю системы иметь собственную Web-страничку. Пользователь организовывает свою Web-страничку в подкаталоге, находящемся в его домашнем каталоге. Эта команда указывает имя подкаталога в домашнем каталоге пользователя, который нужно принимать за его Web-каталог.

Обычно используется public_html. Поэтому если у пользователя testuser есть каталог /home/ testuser/public_html, то к этому каталогу можно получить доступ через Web, используя URL http://servername/~testuser.

Directory-Index

Directory Index указывает, какие файлы должны приниматься как индексные. Это позволяет для такого URL, как http://www.mommabears.com получить доступ к нужному файлу.

В примере httpd.conf имеется семь элементов в Directorylndex: index.html, index.htm, index.shtml, index.php, index.php4, index.php3 и index.cgi. Это означает, что для любого URL, в котором не указано имя файла, а только имя каталога, сервер сначала попробует вернуть файл index.html из указанного каталога. Если такого файла нет, будет передан файл index .htm; если этого файла нет, то клиенту будет передан файл index.shtml и т.д. – вплоть до последнего седьмого.

Если ни один файл не найден, то сервер возвращает листинг каталога либо сообщение об ошибке, в зависимости от других настроек конфигурации.

AccessFileName

AccessFileName используется для указания имени файла, содержащего информацию управления доступом для данного каталога. Можно хранить информацию управления доступом в конфигурационном файле httpd.conf или в файлах .htaccess в каждом каталоге.

В примере указано, что если в каталоге есть файл .htaccess, то он содержит информацию управления доступом для каталога.

Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.