Книга: Сетевые средства Linux
Поддержка CGI-сценариев
Поддержка CGI-сценариев
Если вы собираетесь использовать CGI-сценарии, то должны сообщить серверу Apache о своем намерении. При получении URL, содержащего имя сценария, сервер должен запустить этот сценарий, а также организовать обработку данных, переданных клиентом, формирование Web-страницы и передачу ее броузеру. При использовании CGI-сценария Apache выполняет роль посредника между клиентом и сценарием на стороне сервера. Настроить сервер для выполнения подобных функций не сложно. Вы должны лишь разрешить поддержку CGI-сценариев и сообщить Apache типы запросов, при получении которых следует запускать сценарии.
Для обеспечения работы с CGI необходимо загрузить соответствующий модуль Apache.
LoadModule cgi_module lib/apache/mod_cgi.so
Если компоненты, предназначенные для поддержки CGI-сценариев, включены в состав двоичных файлов Apache, вам надо активизировать их посредством директивы AddModule
. (В некоторых случаях активизировать надо и компоненты, реализованные в виде модулей.)
AddModule mod_cgi.с
В результате сервер Apache получает возможность запускать CGI-сценарии и взаимодействовать с ними. Вам осталось лишь разрешить поддержку CGI для конкретных файлов и каталогов. Сделать это можно несколькими способами.
• ScriptAlias
. Данная директива решает две задачи. Во-первых, она сообщает серверу Apache о том, что файлы, содержащиеся в указанном каталоге, должны интерпретироваться как CGI-сценарии. Во-вторых, посредством этой директивы задается соответствие между каталогом, расположенным на диске, и каталогом, который указывается в URL. Например, выражение ScriptAlias /scripts/ "/home/httpd/cgi-bin/"
отображает физический каталог /home/httpd/cgi-bin/
в каталог /scripts
в составе URL. В результате, если пользователь укажет URL http://www.threeroomco.com/scripts/test.pl
, сервер запустит на выполнение сценарий test.pl
, содержащийся в каталоге /home/httpd/cgi-bin/
. Часто при инсталляции Apache опции LoadModule
и AddModule
по умолчанию включаются в конфигурационный файл; вероятнее всего, вы встретите их, просматривая содержимое файла httpd.conf
. Для работы с CGI-сценариями часто бывает нужен модуль mod_alias
. Соответствующая директива обычно по умолчанию включается в состав конфигурационного файла. При возникновении проблем, проверьте, загружен ли данный модуль.
• Options +ExecCGI
. Разрешить выполнение CGI-сценариев можно, указав значение +ExecCGI
директивы Options. Данная опция не должна указываться для всей системы, ее имеет смысл применять только к отдельным каталогам (т.е. она должна присутствовать только в составе директивы <Directory
>).
• .htaccess
. Контролировать доступ к отдельному каталогу можно, размещая в нем файл .htaccess
. Если в файле .htaccess
содержится запись Options +ExecCGI
, Apache будет запускать CGI-сценарии, находящиеся в этом каталоге. Чтобы это произошло, в файле httpd.con
f должна находиться запись AllowOverride Options
; эта запись должна воздействовать как минимум на каталог, содержащий файл .htaccess
.
Внимание
Наличие записей Options +ExecCGI
и AllowOverride Options
представляет угрозу для системы. При неправильном использовании этих средств пользователи получают возможность создавать сценарии, предоставляющие полный доступ к системе. По этой причине в большинстве дистрибутивных пакетов использование файла .htaccess
запрещено.
Часто при настройке Apache в конфигурационный файл включается директива ScriptAlias
, отображающая каталог /home/httpd/cgi-bin
файловой системы в каталог /cgi-bin
в составе URL. Такая настройка удобна для администратора. Чтобы установить CGI-сценарий и сделать его доступным для пользователя, достаточно разместить соответствующий файл в каталоге /home/httpd/cgi-bin
. При этом необходимо обратить внимание на права доступа к файлу. Поскольку сценарий предназначен для выполнения, для файла, содержащего код этого сценария, должен быть установлен соответствующий признак. Если вы написали сценарий самостоятельно или скопировали его с Web- или FTP-узла, то после размещения его в каталоге /home/httpd/cgi-bin
надо выполнить команду chmod a+x имя_сценария
.
- Поддержка форм и сценариев
- Поддержка SMP
- Запуск сценариев на удаленных машинах. Контроль за ходом выполнения таких сценариев
- Рекламно-информационная поддержка
- 6.1.5. Поддержка WINS
- 7.7. Безопасность сценариев
- Ограничение сценариев
- Документирование сценариев
- Глава 5 Доступ из сценариев к файловой системе
- 1.7. Поддержка Ubuntu
- Приложение I. Примеры сценариев
- 10 сценариев отличных названий для электронных книг