Песнь о 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. Проконсультируйтесь у администратора
вашего сервера о требованиях, предъявляемых к
скриптам.
Так как скрипт - это программа, нужно присвоить
ему атрибут "исполняемый".
Если скрипт пишет данные в какой-нибудь файл
(например, файл гостевой книги), то этот файл
должен быть доступен для записи.
Статья Станислава Жаркова
Pro.Net.ru
Если у Вас не коммерческий
проект, что и подразумевается для начинающнго
вебмастера, то Вы можете воспользвоваться
бесплатным CGI-хостингом. То есть, получить быстро
и бесплатно гостевые книги, доски объявлений,
чаты и прочее...
X
Point CGI |
Быстро и легко создайте себе,
что хотите 14 CGI Scripts. |
CGI For Me |
Велеколепное место, если Вы не
знаете CGI или у вас нет доступа к CGI. Вы сможете
создать себе WWWBoard, Free For All Links, Polls, Counters, Guestbooks, Clocks,
Postcards, Search Engines, and LOTS more! |
CGI Free |
Еще один отличный сервис
включает random images, browser redirections, random links, random quotes, and a
few other things |
|