HOSTHOST.BIZ Качественный хостинг в России и США от $1.00

Ваш надёжный путеводитель по просторам сети интернет - каталог NEVSKY.NAME

   :: NES BY MAIL :: Доступ к Интернету через электронную почту.
 www4mail :: getweb :: mail2ftp :: agora :: ftpmail :: iMail

В начало | Архив рассылки | Справочники | Help-файлы | Статьи

Разные статьиПолезные программыГостевая книга | Друзья

  :: Поиск по сайту.

  :: Рассылка.

на Subscribe.ru
на Content.mail.ru
на MailList.ru
  
Ваша реклама на этом месте
  
  :: Статистика.
[an error occurred while processing this directive] Рейтинг@Mail.ru Яндекс цитирования
 
  :: Разные статьи :: Особенности CGI-режиссуры

.: Особенности CGI-режиссуры

Тимур Денисов

Несмотря на то, что число бесплатно доступных CGI-скриптов уже измеряется тысячами, их использует далеко не каждый владелец web-ресурса. Хотя наверняка практически у всех возникало желание видеть на своем сайте гостевую книгу, чат, конференцию или собственный счетчик посетителей.

Очень многие приступали к установке скриптов, однако с этим шло не так просто, как с web-страницами. Методом научного тыка не проходило, причем оказывается, на каком попало сервере скрипт не запустишь, он, то есть сервер, должен чему-то там удовлетворять. Не обошлось и без других серьезных проблем. При этом ощущалась острая нехватка, точнее, практически полное отсутствие какой-либо сопутствующей информации. В итоге, некоторые владельцы сайтов отказались от идеи интерактивности в принципе, другие воспользовалась существующими web-сервисами гостевых книг и чем-то подобным, и лишь очень немногие преодолели все препятствия, получив в награду работающий на своем сайте скрипт.

Весь объем доступных в Интернете материалов, так или иначе касающихся темы CGI-скриптов, можно разделить на три группы: для профессиональных программистов; для тех, кто желает научиться программировать на каком-нибудь языке; для искателей FAQ и полезных советов. Найдется всего пара-тройка материалов, специально посвященных установке скриптов, однако и они вызывают у читателя множество вопросов.

А ведь для того чтобы установить на сервере скрипт, совершенно не обязательно владеть языком программирования, на котором этот скрипт написан. Аналогично: мы регулярно инсталлируем в Windows самые разные программы, не имея никакого представления о том, какой язык использовался в их разработке. Правда, процесс установки скрипта на сервере не так прост, как двойной щелчок на SETUP.EXE, но в то же время далеко не смертелен.

В истинности этого утверждения вы убедитесь, ознакомившись с настоящим материалом. В нем мы на примерах рассмотрим и обмозгуем процесс установки на сервере скрипта гостевой книги, а также попробуем заполнить существующий информационный пробел по данной теме. Повествование не будет выдержано строго в жанре action — мы разбавим его разного рода комментариями, чтобы вы не просто научились запускать гостевую книгу, но, что более важно, в дальнейшем устанавливать любой CGI-скрипт самостоятельно.

Условия учений максимально приближены к боевым — используется бесплатно доступный Perl-скрипт, так сказать, зарубежного производства, и общедоступный, опять же, «буржуйский» сервер, предоставляющий пространство для web-сайтов.

Сервер

Любая компьютерная программа — это прежде всего написанный разработчиком код. В отличие от привычных нам в Windows исполняемых файлов с расширением EXE, полученных в результате компиляции кода программы, скрипты так и остаются в своем первозданном виде, то есть всего лишь кодом, созданным на определенном языке программирования. А это значит, что скрипт — существо нежное и хрупкое, и для того чтобы он заработал, за ним надо поухаживать, как за тепличным цветком. В этом, собственно, и заключается процесс его подготовки к работе — указание ваших параметров в коде программы.

Как минимум скрипту понадобится интерпретатор — специальная программа, которая выполняет инструкции, в соответствии с полученным сценарием (script в переводе с английского означает «сценарий»). Таким образом наше главное требование к web-серверу — наличие в нем интерпретатора того языка программирования, на котором написан скрипт. Точнее, не просто наличие, но и доступ к нему, что обеспечивается интерфейсом CGI. Для нас эти вещи взаимосвязанные, а значит, если сообщается, что сервер разрешает использование Perl, само собой подразумевается, что есть и CGI.

Бесплатных серверов с поддержкой CGI предостаточно и с помощью такого сайта, как FreeWebspace.Net (http://www.freewebspace.net/), вы сами можете сделать выбор. Мы же будем использовать Hypermart.Net (http://www.hypermart.net/), предоставляющий 50 Мб дискового пространства и разного рода другие услуги, но самое важное, удовлетворяющий нашему главному требованию, — поддержке Perl. Данный сервис примечателен еще и тем, что предоставляет бесплатно доменные имена третьего уровня, то есть http://ВашеИмя.hypermart.net.

Итак, мы будем устанавливать скрипт по следующим координатам: http://timden.hypermart.net/. Чтобы сделать его работоспособным, обязательно нужно знать некоторые параметры нашего сервера, как минимум, следующие:

поддерживаемая версия Perl;

путь к интерпретатору Perl;

полный путь к html-директории сайта;

полный путь к директории CGI-BIN;

URL-директории CGI-BIN: http://timden.hypermart.net/cgi-bin.

Однако, чем большей информацией о сервере вы владеете, тем больше скриптов и их возможностей сможете использовать. Перечислим их основные особенности:

путь к mail-программе;

путь к Date;

путь к mkdir;

путь к rmdir;

путь к Perl 4-й версии;

тип платформы сервера: UNIX;

поддерживается модуль CGI.pm;

поддерживается SSI.

Совсем не значит, что для установки конкретного скрипта вам понадобится все вышеперечисленные сведения, однако знакомство с ними поможет вам выбрать CGI-программу, обычно предъявляющую определенные требования к возможностям сервера. Также стоит отметить, что многие приведенные здесь параметры актуальны лишь для данного сервера. Прежде всего, мы имеем в виду пути к UNIX-программам Date, mkdir, rmdir — обычно Perl и сам «знает», где они находятся. Что касается доступа к почтовому клиенту, то многие серверы подобной услуги не предоставляют. Поддержка 4-ого Perl (то есть устаревшей версии) является в общем-то малополезным сервисом.

Все вышеуказанные параметры найдены в хелпах Hypermart.Net, хотя, признаться, не в одном месте :-). Аналогично: параметры вашего сервера ищите в разделе «Помощь», она наверняка где-то есть. Если же ничего не удалось обнаружить, пишите письма администратору... В случае, когда и это не помогает, придется пускаться в самостоятельное плавание, но об этом мы поговорим позже.

Скрипт

Когда же вы узнаете о способностях вашего сервера, вы поймете, какой скрипт вам нужен, а еще важнее — какой не нужен. Например, если сервер поддерживает только Perl, не стоит искать свою будущую гостевую книгу среди PHP-скриптов. А если серьезно, внимательное изучение требований скрипта к параметрам сервера избавит вас от многих проблем. К примеру, скрипт, жизненно важный для Perl версии 5.004, в девяти из десяти случаев не заработает под Perl 5.003. Но если даже чудо случиться, он не будет исполнять ряд своих обязанностей. Казалось бы, мелочь — какая-то одна тысячная в номере версии. А такие пустяки способны довести до безумия, так как ситуация, когда «все сделал, как написано, а оно вообще не работает», неизбежна, если проявишь небрежность в деле установки CGI-скриптов. Справедливости ради отметим, что зачастую требования к версии обобщаются — Perl 5.***.

Один из наиболее удобных ресурсов для поиска CGI-скриптов — каталог The CGI Resource Index (http://www.cgi-resources.com/), в котором представлены разработки, сгруппированные в соответствии с языком программирования: Perl, C, C++, Visual Basic и даже такие экзотические, как AppleScript, Python и Tcl, плюс скрипты для Unix shell. Самая многочисленная группа — Perl — содержит описания более 2600 программ, классифицированных в зависимости от назначения по многим категориям.

В интересующей нас категории — Guestbooks — собрано более восьмидесяти программ. Все скрипты участвуют в рейтинге, благодаря чему можно выбрать самый популярный, — именно его мы и инсталлируем, если, конечно, нас удовлетворят системные требования и возможности.

Итак, претендент на роль главного героя — бесплатный скрипт с длинным названием Lars Ellingsen’s Guestbook System. Его рейтинг — 9.56 по десятибалльной шкале, и наибольшее количество (более 2800) проголосовавших. Первым делом, ознакомимся с системными требованиями, их оказалось немного: Perl версии 5.002 и выше, тип сервера — UNIX или Windows NT. То есть наш UNIX-сервер и Perl 5.003 этому вполне удовлетворяют.

Познакомимся же с нашим избранников поближе. Согласно краткому описанию, представленному в каталоге The CGI Resource Index, эта гостевая книга обладает широкими возможностями конфигурации и очень проста в установке, с e-mail уведомлением, удалением «плохих» слов, расширенным html-фильтром, отдельным файлом конфигурации и поддержкой разных языков интерфейса.

На web-странице программы (http://www.stud.ntnu.no/~larsell/guestbook) изучаем подробную ее характеристику. Во-первых, обнаруживаем большое число языков, и, что самое интересное, есть поддержка русского (в кодировках koi8-r и windows-1251) и даже украинского (windows-1251). Тут же предлагается рассмотреть действующие образцы гостевой книги для любого языка. Итак, мы видим, что посетитель гостевой книги может оставить следующую информацию: имя, страну проживания, e-mail, адрес web-страницы и, собственно, текст сообщения, при добавлении записи есть возможность предварительного просмотра. Автоматически определяется и отображается в записях гостевой книги имя хоста посетителя, а также время добавления записи.

Возможности скрипта по-настоящему широкие. Среди них: определение обязательных для заполнения имен полей; настраиваемый вид страницы просмотра записей, добавления и предварительного просмотра; отправка по e-mail подтверждения-благодарности добавившему сообщение; уведомление админа; сортировка записей в обратном порядке; антиспам; определение числа записей на странице и их максимального количества в гостевой книге; фильтр всех или выбранных html-тэгов (BLINK, META, SCRIPT, FORM, APPLET, OBJECT, EMBED, BGSOUND); особые параметры отображения картинок; защита от дублирования сообщений и еще много других возможностей.

В общем, вполне достойная гостевая книга, которой не грех отдать предпочтение. А в процессе установки мы подробно ознакомимся со всеми параметрами конфигурации.

Софт

Что ж, теперь у нас есть и скрипт, и сервер, осталось разобраться с инструментарием. Как минимум нам понадобятся две программы: одна — для редактирования файлов скрипта, вторая — для загрузки и управления файлами на сервере. Чтобы править код программы, подойдет любой простейший текстовый редактор, работающий с неформатированным текстом. Например, стандартный «Блокнот» Windows или какой-нибудь имеющийся в вашем компьютере редактор HTML-кода. Теоретически можно использовать даже MS Word, однако на практике это приведет к лишним неудобствам, которые, хотя и преодолимы, но отнимут массу времени, сил и нервов.

Наилучший вариант — воспользоваться специальным Perl-отладчиком, таким как Perl Builder (http://www.solutionsoft.com/). Помимо удобства восприятия кода программы, благодаря «подсветке» и другим приятностям, он, с помощью Perl-интерпретатора (http://www.activestate.com/), обнаружит ошибки в синтаксисе программы, которые трудно избежать в процессе конфигурации. Также в окне отладчика вы сможете запускать скрипты и открывать в браузере результаты их работы.

Полезна и возможность сохранения отладчиком текстов в UNIX-формате, что критично именно для исполняемых файлов на UNIX-серверах. Визуально тексты файлов в UNIX- и Windows-форматах ничем между собой не различаются. А все дело как раз в том, чего мы не видим, — разный признак конца текущей строки текста: в Windows он состоит из двух символов, а в UNIX — из одного. Понятно, что обычный текстовый редактор в среде Windows сохраняет текст вашего скрипта в Windows-формате. Однако Perl-интерперетатор сервера, работающего в среде UNIX, будет воспринимать непонятные ему символы конца строки как ошибку в синтаксисе программы. В результате, скрипт, где, на первый взгляд, все в порядке, не запустится, и UNIX-сервер выдаст ошибку «500 — Internal Server Error». Решить проблему можно, сохранив тексты в UNIX-формате. Такой функцией обладает и упомянутый отладчик Perl Builder, и многие редакторы HTML-кода, к примеру, известный HomeSite (http://www.allaire.com/) — необходимо лишь активизировать ее в опциях программы.

Однако все эти мучения с форматами стоит претерпевать, если для загрузки файлов на сервер вы будете пользоваться web-интерфейсом (предлагается многими бесплатными хостинг-сервисами), или же ваш сервер работает не на платформе Windows.

Повторюсь еще раз — все не так страшно. Если для загрузки скриптов на сервер вы используете FTP-клиент, то проблема форматов вас не коснется. Итак, необходимо загружать текстовые файлы в режиме ASCII, в результате чего символы перевода строки будут приведены в понятный для UNIX-системы вид.

Помимо «форматной» пользы, он установит права доступа к файлам, а именно CHMOD (с чем мы скоро столкнемся). Да и вообще, он удобен — операции с файлами на сервере вы будете производить так же, как на локальном диске, в «Проводнике» Windows. Наиболее популярным FTP-клиентом в настоящее время является CuteFTP ( http://www.cuteftp.com/), однако его интерфейс смущает начинающего пользователя своими наворотами, поэтому удобнее воспользоваться чем-нибудь попроще, например, LeapFTP (http://www.leapware.com/). Кстати, сегодня встроенными FTP-клиентами обладают даже HTML-редакторы, например, тот же HomeSite.

Итак, мы рассмотрели минимальный набор программного обеспечения, однако комплект инструментов web-программиста, ступившего на тернистый путь использования или разработки CGI-скриптов, может быть гораздо шире и достоин отдельного описания.

Что ж, теперь мы полностью готовы к установке на сервере CGI-скрипта, и ничего не остается, как приступить к делу. Но... уже в следующий раз.

(Продолжение следует)

Источник: http://www.mycomp.com.ua/

   :: Copyright.
Со всеми пожеланиями и предложениями просим обращаться сюда. Карта сайта | Последнее обновление: 28.08.2007
Web-master: Сергей Невский (Sergey Nevsky) from Cherepovets | Хостинг предоставлен ХостингКласс!