Автор статьи: Жарков Станислав
Сегодня такие вещи, как гостевая книга, поиск по серверу, форма для отправки сообщений неотъемлемый атрибут практически любого серьезного сайта. Проблема внедрения этих и других прибамбасов, разумеется, всячески возбуждает воображение начинающего вебмастера, лишая его сна, аппетита и тяги к пиву. К сожалению, изучение HTML-исходников страниц конкурентов ничего, кроме ссылок на некий «cgi-bin», не дает, да еще в телеконференциях иногда встречается упоминание о каких-то cgi-скриптах. Эта статья и посвящена основам использования этих самых cgi-скриптов во славу и процветание вашего сайта.
Для начала, думаю, надо разобраться с понятиями. CGI-скрипт это программа, которая выполняется на Web-сервере по запросу клиента (то есть посетителя Web-сайта). Программа эта принципиально ничем не отличается от обычных программ, которые установлены на вашем компьютере будь то MS Word или игра Quake. CGI это не язык программирования, на котором написан скрипт, а Common Gateway Interface специальный интерфейс, с помощью которого и происходит запуск скрипта и взаимодействие с ним.
Правда, есть один довольно неприятный момент. На сервере, где находится ваш сайт, должно быть разрешено выполнение cgi-скриптов. Дело в том, что скрипт, как и любая другая программа, может выполнять системные команды на сервере, что представляет потенциальную угрозу безопасности. Как сказал один мой знакомый админ: «Одними cgi-скриптами я могу взломать систему за 5 минут». Так что если вы разместили свой сайт на бесплатном сервере, например, Xoom или Chat.Ru, то вы не сможете запускать скрипты. Впрочем, некоторые бесплатные сервера допускают использование CGI. Ну, а если вы платите за размещение страницы, то, как правило, использование 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. Например, на Pro.Net.ru скрипты размещаются в каталоге cgi-bin и могут иметь любое расширение (или не иметь его вообще). Проконсультируйтесь у администратора вашего сервера о требованиях, предъявляемых к скриптам;
- Так как скрипт это программа, нужно присвоить ему атрибут «исполняемый» (через пункт меню «CHMOD» или «Атрибуты файла») FTP-клиента или командой «chmod» в telnet.
- Если скрипт пишет данные в какой-нибудь файл (например, файл гостевой книги), то этот файл должен быть доступен для записи, то есть нужно установить соответствующий атрибут (аналогично атрибуту «исполняемый»).
Этих действий вполне достаточно, например, для запуска гостевой книги моего написания, которая работает на этом сайте (взять ее можно здесь http://www.softinca.nnov.ru/gb/ ).