WebMaster/Programming/Perl/
Итак ...приступим...
Краткие сведения о том что надо знать чтоб писать
CGI скрипты:
Ну вопервых надо знать что такое интернет и как он работает (а
вы знаете? ;))) ) Ну и чуть-чуть умения програмировать(это самое
главное)
На кого ориентировано данное учебное пособие -спросите
вы ? Ну в принципе на достаточно широкую аудиторию тех, кто занимается
Интернет-программированием и кто хотел бы освоить премудрости
интерфейса CGI. Данная книга будет весьма полезна для web-дизайнеров,
системных администраторов интернет-серверов, программистов и для
простых пользователей интернет, которые хотели бы сделать свой
сайт по-настоящему достойным называться хорошим сайтом.
Так как интернет в основном строится на операционной системе UNIX
, то изложеный сдесь материал может быть без особых модификаций
реализован на практически любой UNIX-системе.
Кроме того, я также делаю предположение , что ваш web-сервер поддерживает
интерфейс CGI и для вас эта поддержка включена. (на "халявных"
серверах администраторы отключают CGI и SSI для пользовательских
директорий - просто это такая политика - предоставлять только
ОЧЕНЬ МИНИМАЛЬНЫЙ сервис.) Так что если вы хотите изучать CGI
то вам нужет нормальный ,полнофункциональный сервер. Если же вы
сами являетесь системным администратором на своем сервере , то
для вас, естественно нет проблем, ведь включить CGI для какой-нибудь
директории - это просто подправить одну строчку в файле конфигурации
сервера.
Замечание:
Если же вы используете Windows
NT ,то материал данной книги вам будет тоже очень полезен,
однако будьте готовы к тому что в некоторые скрипты придется вносить
значительные изменения. В некоторых случаях,когда сказывается
то , что возможности NT по работе с сетью намного хуже, чем у
UNIX,то некоторые скрипты вовсе нельзя будет использовать.
Давайте вместе писанем какой нибудь простенький скриптик а потом
я вам расскажу где сдесь собака порылась....
Ну сначала в своем домашнем каталоге создайте директорию cgi-bin:
cd public_html
mkdir cgi-bin
chmod 0777 cgi-bin
Последняя строчка будет очень важна.
Возьмите редактор и наберите:
#!/usr/bin/perl
#first.cgi
print "Content-Type: text/html\n\n";
print "<HTML><BODY>";
print "<H1>Hello you!!!</H1>";
print "</BODY></HTML>";
Сохраните его в директории cgi-bin под именем first.cgi .Ну как
сохранили?
А теперь сделайте его исполняемым(ведь это программа):
chmod +x first.cgi
Ну вот,подходим к торжественному моменту.... наберите
в строке браузера http://www.ваш.сервер.ru/~ваш_логин/cgi-bin/first.cgi
и посмотрите чо будет. Будет одно из двух ,либо скрипт заработает
и вы увидите сгенерированую им страничку (поздравляю,в нашем полку
прибыло!) либо Internal Server Error -тогда не расстраивайтесь,вы
что-то сделали не так.
Вам тогда пригодится пособие по ловле блох.
Ну вопервых проверку синтаксиса можно осуществить следующим образом:
perl -с first.cgi
Perl вам сразу выдаст либо сообщения об ошибках(ну
бывает,точку с запятой пропустили, скобочки или кавычки забыли
закрыть...) это сразу по ходу дела поправимо.
Более грубая с логической точки зрения это пропустить вывод пустой
строки, которая отделяет заголовок от тела:
print "Content-Type: text/html\n\n"; #Все Правильно
print "Content-Type: text/html\n"; #ОШИБКА!!!
Разберем скрипт:
Первая строка #!/usr/bin/perl Просто указывает где в системе расположен
компилятор Perl. Обычно он находится /usr/bin/perl или /usr/local/bin/perl
,выяснить это можно одной из комманд which perl или whereis perl
ну или (что очень долго) запустить полный поиск find / -name perl
-print.
Вторая строка это просто коментарий -вы можете тыкать чо угодно
после знака #, однако я пишу обычно во второй строке название
скрипта, что очень удобно.
Затем идет print "Content-Type: text/html\n\n"; Это
заголовок указывающий тип содержимого.
Все что скрипт печатает в свой стандартный вывод STDOUT идет на
обработку к серверу. Пустая строка отделяет заголовок от тела,которое
в нашем случае представляет собой
<HTML><BODY>
<H1>Hello you!!!</H1>
</BODY></HTML>
Сервер обработает ответ скрипта и на базе него сформирует
и пошлет браузеру ответ.(Сервер обычно не изменяет тела сообщения,он
только дополняет заголовок нужными для работы протокола HTTP полями)
Ну вот азы уже освоены,все не так трудно и удручающе
как могло показаться на первый раз
Вы теперь можете сами потренироваться в написании таких вот простеньких
скриптов чтоб набить руку.