Среда для CGI-программирования
Как вы уже знаете CGI-программы это не совсем обычные программы. Хотя их можно выполнять просто из командной строки, все-таки они предназначены для того, чтобы их выполнял Web-сервер в ответ на запрос броузера. Для успешного создания CGI-программ вам понадобиться специальное программное обеспечение. Ниже приведен список необходимых и просто полезных программ.
Собственно Web-сервер. Для того чтобы выполнить программу и передать её результат браузеру, вам необходим Web-сервер.
Интерпретатор или компилятор языка. Если вы пишете программы на языке Perl, вам понадобиться интерпритатор языка Perl. Если же вы решили писать на языке компилирующего типа, вам необходим соответствующий компилятор.
Библиотеки или программы для автоматического преобразования данных, введеных в форму в структуру данных, присущую выбранному языку. Конечно, вы можете заняться этим вручныю, но наличие такой библиотеки сэкономит вам много времени и убережет от ошибок.
Web-сервер сам по себе
Слово сервер имеет два близких, но не совпадающих значения. В первом значении - это компьютер, который предоставляет некоторые услуги другим компьютерам, например сервер сети обеспечивает другим компьютерам доступ к своим файлам. На этом сайте мы чаще говорим о Web-сервере, на котором хранятся Web-страницы и Web-приложения, доступ к которым можно получить с помощью броузера.
Второе значение слова сервер - это программа, обеспечивающая такой доступ. В терминологии UNIX такая программа называется демоном HTTP. Эта программа принимает от клиента запросы и выдает им в ответ требуемые ресурсы.
Web-серверы
Все ваши CGI-программы в конечном счнте предназначены для того, чтобы их выполнял Web-сервер. Сервер обрабатывает запрос броузера, находит на диске запрашиваемый ресурс и отправляет его назад броузеру. Он же выполняет запрошенную CGI-программу. Существует довольно много разных Web-серверов, но самые распространенные - это Apache для UNIX и Microsoft Internet Information Server (IIS) для Windows. Большинство Web-серверов весьма похожи по своим свойствам.
Структура каталога Web-сервера
Очень важно понимать структуру файлов и каталогов, связанную с Web-сервером. Если вы не разберетесь с этим вопросм вы не будете знать, куда помещать свои CGI-программы. Большинство Web-серверов имеют аналогичную структуру. У них есть определенное место для HTML-файлов и для программ.
Структура каталогов сервера Apache для UNIX и Windows изображенна на данном рисунке:
Каталог htdocs
предназначен для хранения статичных HTML-файлов; его обычно называют каталогом документов (document root). Каталог cgi-bin
предназначен для хранения программ.
Такова стандартная структура сервера, но если вы хотите, можете её настроить по другому. Например, можно так изменить настройки, что в качестве CGI-прогамм будут выполняться все файлы из каталога htdocs
, если у них есть соответствующие расширение. Кроме того, можно создавать псевдонимы (aliases), в результате чего любой каталог может рассматриваться как подкаталог htdocs
.
Другие Web-серверы имеют аналогичную структуру, и почти каждый сервер позволяет менять настройки.