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

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, то он содержит информацию управления доступом для каталога.

ScriptAlias

Очень важно корректно использовать команду ScriptAlias, чтобы указать каталог размещения программ CGI и сценариев. ScriptAlias указывает, какой каталог используется для сценариев CGI, и какой URL соответствует этому каталогу. Это единственное место, куда можно поместить программы CG1, пока не будут назначены другие условия для запуска CGl-программ по расширениям (как это выполнено далее посредством команды AddHandler).

В примере, приведенном выше, используется следующая команда.

ScriptAlias /cgi-bin/ "/var/www/cgi-bin"

Эта строка показывает, что URL http: //www.moramabears.com/cgi-bin/ соответствует /var/www/cgi-bin/. Подразумевается, что все файлы в этом каталоге являются сценариями CGI и сервер пытается запустить их, вместо того, чтобы возвратить их запрашиваемому клиенту.

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

По сравнению с описанием HTML-каталога, приведенным ранее, описание CGI-каталога выглядит несколько иначе:

<Directory /var/www/cgi-bin> AllowOverride None Options ExecCGI Order allow,deny Allow from all </Directory>

Обратите внимание, что все переопределения запрещены. Это вполне разумно, поскольку CGI представляет собой брешь в защите даже для хорошо сконфигурированной системы. Такой подход позволяет избежать различных ошибок защиты, связанных с CGI-каталогами.

AddHandler и AddType

Команды AddHandler и AddType нужно рассматривать вместе.

AddHandler позволяет отождествить файлы, имеющие указанное расширение, с определенным действием, которое можно реализовать как встроенное в сервере (например, запуск программ CGI), или как внешнее действие, обычно вызывающее специальную программу вне сервера и передающее запрашиваемый файл.

AddType создает новый тип MIME для указанного расширения. Типы MIME важны для указания клиенту, как нужно обращаться с файлом. Например, если в браузер передается файл с типом MIME text /plain, то браузер не интерпретирует код HTML в этом файле, в то время как тип MIME text /html заставляет браузер обрабатывать принимаемый файл как файл HTML.

Эти команды обычно применяются для того, чтобы разрешить выполнение сценариев CGI вне указанного каталога CGI-сценариев и разрешить серверу обрабатывать HTML, что позволяет обрабатывать встроенные в HTML-файл специальные дескрипторы перед возвращением страницы.

Разрешение сценариев CGI

Вы можете использовать команду AddHandler, чтобы разрешить обработку CGI вне заданного для CGI каталога. В примере файла httpd. conf используется команда

AddHandler cgi-script .cgi

которая указывает, что любой файл с расширением .cgi вне заданного каталога CGI должен рассматриваться как программа CGI и обязательно обрабатываться. Без этой команды любой

сценарий CGI, находящийся вне каталога CGI, не рассматривается как программа CGI. Клиенту просто будет возвращено содержимое файла: пользователь увидит фактический^код программы сценария, а не результаты его выполнения.

Разрешение обработки HTML для сервера

Для этого используются обе команды - AddHandler и AddType- Для Apache обычно указывается:

AddType text/html .shtml AddHandler server-parsed .shtml

Здесь AddType гарантирует, что результат обработки сервером файла HTML (эти файлы имеют расширение . shtml) рассматривается браузером клиента как файл HTML и отображается соответственно.

Строка AddHandler указывает, что файлы с расширением . shtml обрабатываются сервером. Это эффективно разрешает обработку сервером HTML для файлов . shtml.