![]() |
|
![]() ![]() ![]() |
|
Azbuka |
|
||||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 55 Регистрация: 20.9.2005 Репутация: нет Всего: 2 |
Среда CGI. Давайте подойдем вплотную к рассмотрению вопроса о CGI-программировании. Прежде всего, для написания эффективно работающих CGI-скриптов необходимо правильно настроить Web-сервер. Потом, с полной уверенностью, можно смело начинать написание CGI-программ. Да, именно так - настроить Web-сервер. Ведь новичкам склонно считать, что стоит только поместить CGI-программу в их директорию (вместе с сайтом), скажем на том же narod.ru и их можно будет вызывать ;-)
Web-сервер. При слове сервер в голове невольно возникает образ мощного постоянно включенного компьютера величиной с книжный шкаф. Web-сервер это вовсе не просто кусок мощного железа! Прежде всего, это программа, которая принимает запросы от клиентов вроде GET index.html и выдает ответ. Либо в ответе будет действительно index.html, 404, еще какое-нибудь сообщение об ошибке, либо ..., да, в общем, что угодно! Эта программа может быть запущена как демон, т.е. работать постоянно, или просто, для экспериментов Web-мастера на локальной машине. Как видите, Web-серверу вовсе не обязательно быть подключенным к глобальной сети ![]()
Дальше сразу следует описание директории-корня:
где Options - дополнительные опции директории, Allow - позволяет блокировать доступ в эту директорию некоторым хостам, сразу всем или, как в примере - разрешить доступ со всех хостов. Такие же правила остаются и для описания других каталогов. Вообще в этом файле можно менять многие параметры работы сервера: нагрузку на сервер, описания виртуальных хостов, доступ в директории с авторизацией, страницы-сообщения об ошибках и еще уйму полезных вещей, которые будут обсуждаться позже. cgi-bin. Обычно это название носит директория, из которой можно выполнять CGI-скрипты. Описывается по принципу описания обычной директории в файле httpd.conf. Небольшая особенность отличает ее от простой директории: в список опций добавляется директива ExecCGI, означающая разрешение на запуск программ из данной директории. Если директория cgi-bin находиться выше корня сервера в файловой системе, то используется ScriptAlias:
После того, как вы правильно описали директорию 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 |
||||||
|
|||||||
![]() ![]() ![]() |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Администрирование Web серверов и Web служб | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |