|
||||||||
Лекция 8CGI-скриптыОгромную помощь издателю в автоматизации многих процессов на сайте оказывают CGI-скрипты. С их помощью можно наладить автоматическое обновление страниц, архивирование старых записей, рассылку почтовых сообщений, каталогизацию записей, торговлю, учет и многое другое. Часть возможностей CGI автоматизирует и упрощает то, что можно делать и руками, например каталог ссылок или доска объявлений, но есть и уникальные применения CGI, которые крайне сложно или невозможно воплотить в "ручном" исполнении, например, чат, опросы, рейтинги и другие системы реального времени. CGI - это палочка-выручалочка любого крупного проекта. Что же это за чудо такое - CGI? На самом деле, ничего особенного - это один из шлюзов (на данный момент, самый распространенный) между HTML и исполняемым модулем (программой). Программа может быть написана практически на любом языке, но самым популярным на данный момент является язык Perl, который не требует компиляции (вернее, компилируется "на лету") и наилучшим образом приспособлен для разбора строковых переменных. Результатом работы скрипта чаще всего является HTML-страница или ее часть, письмо (его отправка и содержание), или запись в базе данных, но, по большей части, именно HTML-код. Как и другие программы, CGI-скрипты могут быть очень простыми, для написания которых не надо быть ассом программирования, а бывают и развернутые комплексы, над которыми трудится много человек, чтобы потом заработать на коммерческом распространении своей программы. Работающими скриптами пронизано все в Интернете. Гостевые книги, формы для отправки письма прямо с сайта, обсуждения, баннерные ротации - все это примеры как раз простых программ. Каталоги, поисковые системы, почтовые рассылки, доски объявлений - это примеры сложных скриптов, их уже не одолеть "с полпинка". Программы на языке Perl немного похожи на C++ (вобще эти языки имеют довольно много общего), поэтому если вы раньше программировали на C, то вам будет проще работать с Perl. Программы на Perl платформонезависимы, что совершенно необходимо для Интернета, где можно встретить сервера оснащенные, по крайней мере, шестью вариантами Unix, не считая систем на базе NT и других малораспространенных серверных ОС. Платформонезависимость достигается за счет компилирования программ "на лету" инсталлированным в системе интерпретатором. В то же время, программы распространяются непосредственно в их исходном виде, то есть, текстовыми файлами. Безусловно, есть небольшие различия между интерпретаторами для Win и интерпретаторами для разных версий Unix, однако необходимость в использовании платформозависимых функций возникает редко, и запись в описании к программе, декларирующая ее принадлежность к той или иной платформе, скорее всего, говорит о том, что для этой платформы скрипт тестировался, и его работа признана удовлетворительной. Вот тут мы подошли к самому главному: существует большое количество готовых скриптов, выставленных в Сети для свободного использовании при условии сохранения ссылки на авторство. Почему так делается - отдельный разговор, который не имеет значения в рамках данной лекции, для нас важно, что для интеграции скрипта на сайте вам достаточно уметь грамотно инсталлировать его на сервере. Выбирать нужный вам скрипт можно в одном из публичных архивов, где они уже заботливо собраны, рассортированы и снабжены описаниями. Список самых популярных CGI архивов вы найдете, как обычно, в конце лекции. Важно только четко представлять себе, что именно вы ищете, тогда у вас есть шанс найти нужный скрипт и значительно облегчить себе жизнь. Чтобы лучше ориентироваться в том, что вы можете найти и что вам даст тот или иной скрипт, я рекомендую вам прочесть несколько обзорных статей на эту тему, список которых я, опять же, поместил в конце лекции. Как выбирать скрипт? Первым делом необходимо понять, какие функциональные возможности вам нужны от программы. Простейший способ выяснить это - поглядеть на подобные же программы, установленные на других серверах. Если вы вдруг найдете у кого-либо точно такой скрипт, какой бы вы хотели иметь у себя, то попробуйте списаться с веб-мастером и спросите у него, где он взял программу. Вполне возможно, что вы получите точный адрес создателя скрипта. Иногда можно просто найти в конце страницы ссылку на автора, поскольку по условию бесплатного использования скрипта, вы обязаны обратную ссылку оставлять. Изучая скрипты, установленные на других серверах, обращайте особое внимание на то, как работает та или иная отдельная функция, насколько удобно работать с ней, насколько быстро работает скрипт в целом. Посмотрев на возможные варианты и сравнив их между собой, обратитесь в архив, чтобы найти себе программу по вкусу. Обратите внимание, что для каждого представленного в архиве скрипта (вне зависимости от архива - они все одинаковые) есть работающий пример, чтобы вы могли оценить функциональность программы. Часто на тестовых примерах вы можете получить права на доступ как у администратора, чтобы попробовать функции и этой части программы, - это будет единственная попытка попробовать программу в качестве администратора до того момента, как вы инсталлируете ее у себя на сервере. Однако прежде чем выбирать скрипт, нужно разобраться в его структуре. Любой perl-скрипт состоит из исполняемого модуля - отдельного файла, имеющего расширение pl или cgi. В действительности этих файлов в одном скрипте может быть не один десяток, как, например, в скрипте каталога Links2, но простые скрипты обычно имеют не более трех исполняемых файлов. Также в скрипте, который вы скачаете из публичного архива, будут шаблоны для генерации HTML-страниц (а может, и нет), файлы данных, которые программа использует в процессе работы, а также конфигурационные файлы. Из вышеперечисленного набора обязательным является только исполняемый модуль, а все остальное может и отсутствовать, однако такие скрипты не очень удобны в настройке. Удобнее всего (если вы не знаете perl и не сильны в программировании вообще) работать с теми скриптами, которые состоят из одного-двух исполняемых файлов, а для генерации страниц используют внешние HTML-шаблоны, которые вы сможете произвольно изменять. Такой скрипт легко и удобно настраивать, и проще подогнать к общему дизайну вашего сайта, а отсутствие большого количества исполняемых файлов (каждый ведь нужно настроить под ваш сервер) снижает вероятность ошибки. К сожалению, вы редко можете оценить такие параметры работы скрипта, как скорость и надежность (устойчивость) при большой нагрузке сервера. Вы также не знаете, насколько сильно он нагружает центральный процессор сервера (это важный параметр, потому что если ваш скрипт чересчур ресурсоемкий, то администратор может "отрубить" его без предупреждения). Недостатки программ в этой области вы обнаружите только инсталлировав их на сервере. Поэтому настоятельно рекомендую читать отзывы о скриптах, которые оставляют в архивах другие веб-мастера, а при случае, и самому оставить такой отзыв, поскольку это единственный источник информации о пользовательских качествах скрипта. Выбрав программу для инсталляции, приступайте к ее настройке. Первоначально нужно настроить базовые параметры, без которых программа просто не будет работать, - все они описаны в инструкции к скрипту. Обычно это:
Если ваш скрипт служебный: отправка почты, рассылка, счетчик или статистика, баннерная ротация и т.д., то на этом его настройка, в общем-то, и заканчивается, - осталось только подставить файлы данных и скрипт можно считать готовым к работе. Совсем другое дело, если ваш скрипт - публичный и генерирует HTML-страницы, например, доску объявлений, форум, поисковую систему и пр., тогда вам предстоит еще подогнать внешний вид создаваемых программой страниц под дизайн вашего сайта. Вот тут-то и всплывает удобство внешних шаблонов: их вы можете менять как угодно, работая с ними, как с обычными HTML-страницами, каковыми они, собственно, и являются. Вы можете использовать инструкции SSI, каскадные таблицы стилей, другие CGI скрипты (например, баннерную ротацию) и прочая, и прочая. Взаимодействие шаблонов с исполняемым файлом осуществляется посредством комментариев, специальным образом расставленных в теле страницы. Если же скрипт не оперирует внешними шаблонами, а создает страницы "на лету" в соответствии с заложенными в нем описаниями, то вам придется редактировать теги страницы непосредственно внутри скрипта. Очевидно, что в ходе такого редактирования, не имея навыков и опыта, легко совершить ошибку, обнаружить которую в теле программы с несколькими сотнями строчек кода будет непросто. Поэтому, несмотря на наличие в скрипте детального описания, что, где и как следует поменять, я рекомендую выбирать варианты, которые используют для генерации страниц внешние шаблоны. Указав все необходимые параметры, переходите к инсталляции. Запустите ftp-клиент и установите соединение с сервером. В директории для cgi-скриптов создайте новую поддиректорию (учтите, что ее название вы уже должны были указать в самой программе во время настройки, когда писали путь) и загружайте туда исполняемые файлы в соответствии с инструкцией, которая прилагалась к скрипту. Все файлы, написанные на perl, можно загружать только в текстовом режиме (!), в противном случае скрипт не будет работать. Обратите на это особенное внимание, потому что загрузка скриптов в битовом режиме - есть самая распространенная ошибка при инсталляции. Загрузив все необходимые файлы (включая шаблоны и файлы данных, если требуется) в соответствующие директории, установите атрибуты файлов. Атрибуты меняются командой change file attributes (контекстное меню CuteFtp или меню программы Far Manager), в документации к скрипту будут указаны некие CHMOD - это и есть атрибуты файлов. Для исполняемых файлов нужно установить 755, для файлов данных - 777, для шаблонов страниц - 644. То же самое касается и директорий, в которых эти файлы находятся: для директории с исполняемым файлом - 755, для директории с данными и шаблонами - 777 или 644 - это число должно соответствовать атрибутам файлов, которые в директории находятся. Если в директории есть файлы с разными атрибутами, то вы выбираете большее число. Теперь, когда ваш скрипт инсталлирован, займитесь проверкой его работоспособности. Если при запуске программы сервер выдаст вам ошибку 500, это означает, что где-то вы ошиблись при настройке скрипта, то есть ошибка возникла внутри исполняемого файла. Ошибка 404 означает, что программа не нашла один из исполняемых файлов, и вам следует проверить все пути, которыми оперирует скрипт. Ошибка 403, скорее всего, говорит о том, что вы неправильно выставили атрибуты для шаблонов или директории, где они находятся. Самые распространенные ошибки работы программы:
Некоторые скрипты могут некорректно воспринимать цифры в названии директории или файла, поэтому старайтесь не употреблять цифровые названия директорий, если в этом нет острой необходимости. Вот, вроде, и все. До следующих встреч.
Рекомендованная литература:
Ссылки по теме:
|
|
| ||||||
| (с) Федор Вирин. Ни одна часть данного сайта не может быть легально воспроизведена без разрешения автора. По всем вопросам обращайтесь mymany@postman.ru |