Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Среда CGI, Web-сервер 
:(
    Опции темы
Azbuka
Дата 7.5.2007, 11:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 55
Регистрация: 20.9.2005

Репутация: нет
Всего: 2



Среда CGI. Давайте подойдем вплотную к рассмотрению вопроса о CGI-программировании. Прежде всего, для написания эффективно работающих CGI-скриптов необходимо правильно настроить Web-сервер. Потом, с полной уверенностью, можно смело начинать написание CGI-программ. Да, именно так - настроить Web-сервер. Ведь новичкам склонно считать, что стоит только поместить CGI-программу в их директорию (вместе с сайтом), скажем на том же narod.ru и их можно будет вызывать ;-)

Web-сервер. При слове сервер в голове невольно возникает образ мощного постоянно включенного компьютера величиной с книжный шкаф. Web-сервер это вовсе не просто кусок мощного железа! Прежде всего, это программа, которая принимает запросы от клиентов вроде GET index.html и выдает ответ. Либо в ответе будет действительно index.html, 404, еще какое-нибудь сообщение об ошибке, либо ..., да, в общем, что угодно! Эта программа может быть запущена как демон, т.е. работать постоянно, или просто, для экспериментов Web-мастера на локальной машине. Как видите, Web-серверу вовсе не обязательно быть подключенным к глобальной сети smile) Он может работать через специальный IP-адрес 127.0.0.1, являющийся петлей, то есть отправленные пакеты приходят самому себе. При этом сервер корректно работает: выдает нужные файлы, запускает CGI-скрипты и т.п. Немного отступив от основной темы сайта, рассмотрим настройку Web-сервера Apache for Linux. Поставляется Apache в стандартном дистрибутиве любого Linux. Рекомендую Slackware Linux 7x. Все настройки Apache изменяются в файле /path/to/apache/conf/httpd.conf. Основное на данном этапе - описание директорий и корня сервера. Корень Web-сервера есть некий подкаталог файловой системы, от которого Web-сервер начинает отсчет доступных клиентам файлов. Если корнем сервера в файловой системе является /home/httpd/html/, следовательно, на запрос http://servername документ по умолчанию (index.html) будет взят из /home/httpd/html/index.html. Вот типичный пример секции описания корня Web-сервера в файле httpd.conf:

Код

DocumentRoot "/home/httpd/html"


Дальше сразу следует описание директории-корня:

Код

<Directory "/home/httpd/html">
Options Indexes FollowSymLinks Includes
AllowOverride None
Order allow,deny
Allow from all
</Directory>


где Options - дополнительные опции директории, Allow - позволяет блокировать доступ в эту директорию некоторым хостам, сразу всем или, как в примере - разрешить доступ со всех хостов. Такие же правила остаются и для описания других каталогов. Вообще в этом файле можно менять многие параметры работы сервера: нагрузку на сервер, описания виртуальных хостов, доступ в директории с авторизацией, страницы-сообщения об ошибках и еще уйму полезных вещей, которые будут обсуждаться позже.

cgi-bin. Обычно это название носит директория, из которой можно выполнять CGI-скрипты. Описывается по принципу описания обычной директории в файле httpd.conf. Небольшая особенность отличает ее от простой директории: в список опций добавляется директива ExecCGI, означающая разрешение на запуск программ из данной директории. Если директория cgi-bin находиться выше корня сервера в файловой системе, то используется ScriptAlias:

Код

ScriptAlias /cgi-bin "/home/httpd/cgi-bin/"

<Directory "/home/httpd/cgi-bin/">
AllowOverride None
Options Indexes FollowSymLinks ExecCGI
Order allow,deny
Allow from all
</Directory>


После того, как вы правильно описали директорию cgi-bin можно попробовать написать простейший CGI-скрипт, если Вы этого еще не сделали, и положить его в директорию cgi-bin в файловой системе. Проверьте права доступа на директорию cgi-bin и на сам CGI-скрипт. Необходимо, чтобы и директория и скрипт имели включенным право на исполнение от имени пользователя Web-сервера (обычно это nobody): rwxr-xr-x. Запустите Web-сервер (httpd) и вызовите скрипт из броузера http://servername/cgi-bin/first.cgi.

Переменные окружения. Из выше написанного можно сделать вывод, что CGI-скрипт представляет собой самую обычную программу, в которой мы имеем совокупность кода, HTML-тегов и обязательное взаимодействие с Web-сервером. Оказывается, что CGI-скрипты имеют доступ к т.н. переменным окружения сервера (environment variables), из которых можно извлекать весьма полезную информацию о пользователе, сервере и о соединении. Почти сразу возникает вопрос о том, как принять данные, отправленные по методу GET. Ответ на этот вопрос как раз кроется в ENV. Вы обращаетесь к переменным окружения так: $ENV{'KEYWORD'} - из Perl, или getenv("KEYWORD") - из C/C++, где KEYWORD какое-либо из ключевых слов:

GATEWAY_INTERFACE    Спецификация CGI
SERVER_NAME    Имя сервера
SERVER_ADMIN    Адрес e-mail администратора
SERVER_SOFTWARE    Название и версия сервера
SERVER_PROTOCOL    Версия протокола HTTP или HTTPS
SERVER_PORT    Номер порта
REQUEST_METHOD    Метод (GET или POST)
PATH_INFO    Дополнительная информация скрипту (путь)
SCRIPT_NAME    Имя скрипта
SCRIPT_FILENAME    Полный путь к скрипту
QUERY_STRING    Строка данных при методе GET
REMOTE_HOST    Машина клиента
REMOTE_ADDR    IP-адрес клиента
AUTH_TYPE    Тип аутентификации
REMOTE_USER    Имя пользователя
CONTENT_TYPE    Кодировка данных из формы
CONTENT_LENGTH    Размер присоединенных данных
PATH_TRANSLATED    Конвертированная версия пути
HTTP_USER_AGENT    Программа-броузер клиента
HTTP_REFERER    URL предыдущей страницы
HTTP_PROXY_CONNECTION    Соединение через прокси
HTTP_IF_MODIFIED_SINCE    Если документ был изменен
HTTP_HOST    DNS имя хоста
HTTP_FROM    Адрес электронной почты пользователя
HTTP_COOKIE    Cookie броузера
HTTP_CONNECTION    Тип установленной связи
HTTP_ACCEPT    Перечень принимаемых mime-типов

Самыми часто используемыми переменными среды являются QUERY_STRING и REMOTE_ADDR. Часто необходимо запретить повторное голосование или накрутку счетчика. Кроме переменных окружения есть еще полезные, а порой необходимые возможности среды CGI, требующие настройки. Они будут подробно рассмотрены в следующей статье... 

Источник: http://www.codenet.ru
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Администрирование Web серверов и Web служб | Следующая тема »


 




[ Время генерации скрипта: 0.0793 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.