|
Песнь о CGI-скриптах
Сегодня такие вещи как гостевая книга, поиск по серверу, форма для отправки
сообщений - неотъемлемый атрибут практически любого серьезного сайта.
Проблема внедрения этих и других прибамбасов, разумеется, всячески возбуждает
воображение начинающего вебмастера, лишая его сна, аппетита и тяги к пиву.
К сожалению, изучение HTML-исходников страниц конкурентов ничего, кроме
ссылок на некий "cgi-bin", не дает, да еще в телеконференциях иногда встречается
упоминание о каких-то cgi-скриптах. Эта сатья и посвящена основам использования
этих самых cgi-скриптов во славу и процветание вашего сайта. Для начала,
думаю, надо разобраться с понятиями (вообще разборки и понятия - сегодня
очень актульно :-)). CGI-скрипт - это программа, которая выполняется на
Web-сервере по запросу клиента (то есть посетителя Web-сайта). Программа
эта принципиально ничем не отличается от обычных программ, которые установлены
на вашем компьютере - будь то MS Word или игра Quake. CGI - это не язык
программирования, на котором написан скрипт, а Common Gateway Interface
- специальный интерфейс, с помощью которого и происходит запуск скрипта
и взаимодействие с ним. Правда есть один довольно неприятный момент. На
сервере, где находится ваш сайт, должно быть разрешено выполнение cgi-скриптов.
Дело в том, что скрипт, как и любая другая программа, может выполнять
системные команды на сервере, что представляет потенциальную угрозу безопасности.
Как сказал один мой знакомый админ: "Одними cgi-скриптами я могу взломать
систему за 5 минут". Так что если вы разместили свой сайт на бесплатном
сервере, например, Xoom или Chat.Ru, то вы не сможете запускать скрипты.
Впрочем, некоторые бесплатные сервера допускают использование CGI, например,
I-Connect. Ну, а если вы платите за размещение страницы, то, как правило,
использование cgi-скриптов разрешено (если нет - то и платить провайдеру
за поддержку страницы, на мой взгляд, не стоит). Как работает CGI-скрипт?
Я, конечно, могу процитировать какое-нибудь техническое руководство, но
пользы от этого будет мало. Поэтому расскажу, как все происходит, своими
словами. Итак, посетитель вашей страницы заполняет поля формы, например,
для записи в гостевую книгу. После этого он нажимает кнопку "Submit",
которая и запускает cgi-скрипт. Скрипт выполняет запрограммированные действия
- в данном случае считывает данные из формы и пишет их в файл гостевой
книги - и посылает в броузер посетителя обычный HTML-код, например, сообщение
"Спасибо, что вы оставили запись в гостевой книге". Преимуществ CGI-скриптов
перед JavaScript и Java на мой взгляд, три, и они весьма значительны:
так как программа выполняется сервером, нет никакого значения, какой у
посетителя броузер - древний Lynx или новейший Internet Explorer. Нет
никаких глюков и сообщений об ошибках; cgi-скрипты позволяют реализовать
гораздо более широкий набор функций; код cgi-скрипта закрыт для конкурентов
:-) На каком же языке может быть написана CGI-программа? Ответ вас приятно
удивит: практически на любом. Главное, чтобы сервер мог выполнить эту
программу, то есть на сервере должен быть установлен компилятор или интерпертатор
соответствующего языка программирования. Для систем на базе Unix это обычно
C/С++, Perl, Shell; для серверов под управлением Windows NT - те же Perl,
С/С++ и любая Windows-система программирования, поддерживающая написание
cgi-приложений, например, Visual Basic или Delphi. Лично я предпочитаю
язык Perl. Он является интерпретируемым, то есть программы на Perl не
требуют компиляции. Это очень удобно: вы отлаживаете программу на своей
домашней машине (где, к примеру, установлена Windows), а затем просто
копируете ее на сервер (где, скорее всего, установлен один из клонов Unix
- FreeBSD, Linux, Sun Solaris, HP-UX и т.п.). При смене провайдера проблем
с переносом скриптов также не будет. Если же вы решите использовать компилятор,
например, C/C++, то вам нужно будет компилировать исходный текст программы
на сервере, для чего необходим telnet-доступ к серверу, который провайдеры
давать очень не любят. "Да, но я не знаю Perl" - скажете вы. Ха! Для того,
чтобы наладить работу скриптов на вашем сайте, знания языка программирования
особенно не нужно. В Сети лежит просто немеренное количество абсолютно
бесплатных скриптов на любой вкус - от гостевых книг до сложных баз данных.
Все, что вам нужно - хотя бы начальные знания английского языка. Скачать
любой скрипт можно с сайта CGI-Resources.Com. Это специализированный каталог,
содержащий ссылки на тысячи скриптов на самых разных языках программирования.
Предположим, вы решили использовать скачанный из Сети скрипт. Чтобы он
у вас нормально работал, нужно сделать следующее: в начале скрипта вам
нужно будет указать некоторые данные, необходимые для запуска скрипта,
например, путь к интерпретатору Perl (обычно /usr/local/bin/perl/ или
просто /usr/bin/perl/), URL вашего сайта, имя файла, в который будут записываться
результаты выполнения скрипта и т.п. Все строки, которые нужно заменить,
обычно выделены комментариями, так что вы их легко найдете В зависимости
от конфигурации Web-сервера, имя скрипта должно иметь определенное расширение
и/или скрипт должен находиться в определенном каталоге. Например, имя
скрипта должно иметь расширение .cgi и скрипт должен лежать в каталоге
cgi-bin. Проконсультируйтесь у администратора вашего сервера о требованиях,
предъявляемых к скриптам. Так как скрипт - это программа, нужно присвоить
ему атрибут "исполняемый". Если скрипт пишет данные в какой-нибудь файл
(например, файл гостевой книги), то этот файл должен быть доступен для
записи.
|