|
Программирование >> Программный интерфейс приложений
После изменения списочного состава Исторической Лиги необходимо эту команду повторить и обновить версию на 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.
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0.003
При копировании материалов приветствуются ссылки. |