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

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

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.

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