Песнь о CGI-скриптах
Песнь о CGI-скриптах
Сегодня такие вещи, как гостевая книга, поиск по серверу,
форма для отправки сообщений - неотъемлемый атрибут практически любого
серьезного сайта. Проблема внедрения этих и других прибамбасов, разумеется,
всячески возбуждает воображение начинающего вебмастера, лишая его сна,
аппетита и тяги к пиву. К сожалению, изучение 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.
- Если скрипт пишет данные в какой-нибудь файл (например, файл гостевой
книги), то этот файл должен быть доступен для записи, то есть нужно
установить соответствующий атрибут (аналогично атрибуту "исполняемый").
Copyright © Станислав Жарков 1998-2000.
//pro.net.ru
E-mail: stas@pro.net.ru
|