Маркетер
  • Маркетинг
  • Digital
  • Реклама
  • Public Relations
  • Менеджмент
  • Новости
  • Маркетинг
  • Digital
  • Реклама
  • Public Relations
  • Менеджмент
  • Новости
YouTube 154 Подписчики
Telegram 241 Подписчики
VK 0 Подписчиков
Маркетер
Маркетер
  • Маркетинг
  • Digital
  • Реклама
  • Public Relations
  • Менеджмент
  • Новости
  • CGI и Perl

Среда CGI

  • 07.09.2001

Автор статьи:

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

Web-сервер.
При слове сервер в голове невольно возникает образ мощного постоянно включенного компьютера величиной с книжный шкаф. Web-сервер это вовсе не просто кусок мощного железа! Прежде всего, это программа, которая принимает запросы от клиентов вроде GET index.html и выдает ответ. Либо в ответе будет действительно index.html, 404, еще какое-нибудь сообщение об ошибке, либо …, да, в общем, что угодно! Эта программа может быть запущена как демон, т.е. работать постоянно, или просто, для экспериментов Web-мастера на локальной машине. Как видите, Web-серверу вовсе не обязательно быть подключенным к глобальной сети :-)) Он может работать через специальный 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 можно попробовать написать http://denfinity.narod.ru/cgi.html простейший 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 ULR предыдущей страницы
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, требующие настройки. Они будут подробно рассмотрены в следующей статье…

alexvolkov

Предыдущий материал
  • DHTML

Динамические элементы

  • 07.09.2001
  • alexvolkov
Read More
Следующий материал
  • Проектирование

Дизайн или контент

  • 07.09.2001
  • alexvolkov
Read More
Вас также может заинтересовать
Read More
  • CGI и Perl

Perl: жадный и торопливый возвращенец

  • Алексей Волков
  • 21.09.2004
Read More
  • CGI и Perl

Perl: найти и не сдаваться

  • Алексей Волков
  • 09.09.2004
Read More
  • CGI и Perl

Perl: бороться и искать

  • Алексей Волков
  • 08.09.2004
Read More
  • CGI и Perl

CGI-программирование

  • alexvolkov
  • 06.09.2001
Read More
  • CGI и Perl

CGI+SSI, пример счетчика

  • alexvolkov
  • 06.09.2001

Добавить комментарий

Для отправки комментария вам необходимо авторизоваться.

Свежие посты
  • Дайджест постов Сергея Людкевича
    • 12.09.24
  • Как юристы тормозят бизнес
    • 30.08.24
  • Продвижение оптовых кампаний в Яндекс Директ
    • 06.03.24
  • Cарафанное радио
    • 13.01.24
  • 5-55: История компании
    • 01.03.23
Маркетер
  • О проекте
  • Информационное спонсорство
  • Рекламным агентствам
  • Ссылки
(с) ООО "Маркетер". Официальный сайт. Маркетер: Статьи про рекламу, маркетинг, public relations, интернет

Введите ключевые слова для поиска и нажмите Enter