Программирование >>  Программный интерфейс приложений 

1 ... 121 122 123 [ 124 ] 125 126 127 ... 264


После изменения списочного состава Исторической Лиги необходимо эту команду повторить и обновить версию на Web-узле. В качестве альтернативной стратегии можно предложить процесс сгоп, который бы выполнялся периодически. Например, для периодического выполнения сценария gen dir каждые сутки в 4 часа утра создадим в crontab-файле такую запись:

о 4 * * * /u/paul/samp db/gen dir > /usr/local/apache/htdocs/directory.html

Пользователь, выполняющий это задание процесса сгоп, должен иметь право на выполнение сценариев, расположенных в каталоге sarap db, и на запись файлов в дерево документов Web-сервера.

Работа с интерфейсом DBI в Web-приложениях

Сценарии DBI, написанные нами до сих пор, в основной своей массе предназначались для использования в режиме командной строки, но интерфейс DBI также удобен и в других контекстах, таких как разработка Web- приложений. Когда вы пишете DBI-сценарии, которые могут быть запущены с помощью Web-броузера, то открываете новые и очень интересные возможности взаимодействия со своими базами данных.

Например, при отображении данных в табличной форме можно каждое заглавие столбца запросто превратить в гиперссьшку, которая вызывается для изменения сортировки данных в этом столбце. Это позволит изменять ракурс просмотра данных одним щелчком, не вводя при этом никаких запросов. Существует возможность задать форму, в которой пользователь сможет сам задавать критерии поиска по базе данных, после чего отображать страницу, содержащую результаты выборки. Эти и другие подобные функции смогут значительно расширить возможности интерактивного доступа к содержимому вашей базы данных. Кроме того, интерактивные возможности Web-броузеров обычно выше интерактивных возможностей терминальных окон, что также сопутствует улучшению получаемого на экран вывода.

В этом разделе будут созданы следующие сценарии для Web-приложений.

Универсальный броузер таблиц базы данных samp <lb. Это не связано с какой-то узкоспециальной задачей, но иллюстрирует несколько концепций Web-программирования и предоставляет удобные средства просмотра содержимого таблиц.

Броузер оценок позволит просматривать любую оценку за любой тест или викторину. Удобно как средство быстрого просмотра результатов оценочных тестов и очень удобно при необходимости построения оценочной кривой экзамена, что позволит отметить на бумагах ранг самого экзамена.



Сценарий подбора членов Исторической Лиги по научным интересам. Это осуществляется самим пользователем с помощью поисковой фразы. Версия такого сценария, работающая из командной строки, нами уже создана, но Web-версия будет очень поучительна и как просто ссылка, позволяющая произвести сравнение двух подходов к одной задаче.

Напишем эти сценарии с помощью модуля CGl.pm Perl, который является простейшим способом связи DBI-сценариев с Web. (Как получить модуль, рассказано в приложении А, Получение и инсталляция программного обеспечения .) Модуль CGl.pm называется так потому, что он позволяет создавать сценарии, использующие CGI-протокол. Этот протокол определяет связь Web-сервера с другими программами. Модуль CGl.pm обрабатывает многие детали интерфейса между Web-сервером и создаваемым сценарием. Например, сбор значений параметров, передаваемых как ввод в ваш сценарий. Модуль CGl.pm также обеспечивает удобные методы генерации вывода HTML, которые уменьшают вероятность создания ошибочной HTML-страницы по сравнению с написанием HTML-страницы вручную.

В этой главе вы узнаете довольно много о модуле CGl.pm. Этих знаний может быть достаточно для создания Web-приложений, но, конечно, далеко не все возможности модуля CGLpm будут здесь освещены. Более глубокое изложение материала об этом модуле можно увидеть в других изданиях или посетив Web-узел по адресу:

http: stein.oshl.org/WWW/software/CGI/

Настройка сервера Apache для работы с CGI-сценариями

Кроме интерфейса DBI и модуля CGLpm, для написания сценариев, работающих с Web, нам потребуется еше один компонент: Web-сервер. Все приведенные здесь сценарии будут разрабатываться на примере сервера Apache. Для работы с другими серверами команды придется немного изменить.

Различные части инсталляции сервера Apache обычно размещаются в каталоге /usr/local/apache. В нашем случае нас будут интересовать больше всего следующие подкаталоги этого каталога: htdocs (каталог размещения дерева документов HTML), cgi-bin (каталог размещения сценариев и профамм, которые запускаются Web-сервером) и conf (каталог размещения конфигурационных файлов). Эти каталоги могут располагаться и в другом месте. Но при этом придется произвести соответствующую настройку.

Необходимо произвести проверку того, что каталог cgi-bin не находится внутри дерева документов сервера Apache. В противном случае сценарии нельзя запрашивать как простой текстовый файл. Это вопрос



безопасности. Нельзя позволить пользователям запросто просматривать ваши сценарии, пользуясь дырами в зашите.

Для того чтобы установить CGI-сценарий для работы с сервером Apache, разместите его в каталоге cgi-bin, затем поменяйте владельца сценария на пользователя, под которым работает сервер Apache, и изме-нше права доступа, чтобы его мог запускать на выполнение и модифицировать только сам пользователь. Например, если сервер Apache работает как пользователь www, можно применить следующие команды:

% chown www script name % chmod 500 script name

Эти команды можно выполнить, работая в качестве пользователей www или root. Если у вас таких прав нет, можно попросить системного администратора сделать это для вас.

После того как этот сценарий установлен, нужно указать со своего броузера соответствующий URL на Web-сервер. Обычно URL имеет такой вид:

http: your.host.name/cgi-bin/script name

Вызов сценария из Web-броузера инициирует его выполнение Web-сервером. Вывод, полученный от работы сценария, возвращается обратно и отображается в виде Web-страницы на броузере.

Для улучшения работы CGI-сценариев с помощью modperl необходимо сделать следующее.

1. Проверить версии имеющегося профаммного обеспечения. Это должны быть: Perl 5.004, CGI.pm 2.36, и modperl 1.07.

2. Убедиться в том, что модуль mod perl откомпилирован и включен в исполнимый файл сервера Apache.

3. Создать каталог, в который будут сохраняться сценарии. Я использую для этих целей каталог /usr/local/apache/cgi-perl. Каталог cgi-perl не должен быть размещен внутри дерева документов сервера Apache по той же самой причине, по которой и каталог cgi-bin - из соображений безопасности.

4. Указать серверу Apache, что необходимо связать с mod perl сценарии, размещенные в каталоге:

Alias /cgi-perl/ /usr/local/apache/cgi-perl <Location /cgi-perl>

SetHandler peri-script

PerlHandler Apache::Registry

Options ExecCGI </Location>

Работая с последней версией сервера Apache, использующей один конфигурационный файл, разместите эти директивы в файле httpd.conf. Если ваша версия сервера Apache использует устаревший подход к хранению конфигурационной информации в фех файлах, поместите директиву Alias в файле srm. conf, а сфоки Location в файле access. conf.



1 ... 121 122 123 [ 124 ] 125 126 127 ... 264

© 2006 - 2024 pmbk.ru. Генерация страницы: 0.003
При копировании материалов приветствуются ссылки.
Яндекс.Метрика