Федеральное агентство по образованию
Государственное образовательное учреждение
высшего профессионального образования
“Хабаровский государственный технический университет”
АДМИНИСТРИРОВАНИЕ В ИНФОРМАЦИОННЫХ СЕТЯХ
Установка web-интерфейса к серверу InterBase v.6.0 в Linux
Методические указания по выполнению лабораторной работы № 15
для студентов специальности 071900
“Информационные системы и технологии”
Хабаровск
Издательство ХГТУ
2005
УДК 681.58:681.32Администрирование в информационных сетях: Установка web-интерфейса к серверу InterBase v. 6.0 в Linux. Методические указания по выполнению лабораторной работы №15 для студентов специальности 071900 «Информационные системы и технологии» / Сост. Г. К. Конопелько, – Хабаровск: Изд-во Хабар. гос. техн. ун-та, 2005. – ХХ с.
Методические указания составлены на кафедре «Автоматика и системотехника». Включают порядок выполнения лабораторной работы, общие сведения, задание на лабораторную работу, требования по оформлению отчета, контрольные вопросы, перечень необходимой для выполнения задания литературы.
Печатается в соответствии с решениями кафедры "Автоматика и системотехника" и методического совета института информационных технологий.
© Хабаровский государственный
технический университет, 2005
Установка web-интерфейса к серверу
Interbase v. 6.0 в Linux
Цель работы: научиться устанавливать компоненты для организации web-интерфейса к серверу InterBase на основе языка Perl.
Лабораторная работа выполняется в локальной сети на рабочей станции с операционной системой Linux версии 7 или более поздней. В лабораториях кафедры АиС операционная система Linux работает на компьютерах под управлением программного пакета VMware. Этот пакет позволяет создавать так называемые «виртуальные машины» – мнимые компьютеры, не зависящие от выполняющейся в текущее время на данном компьютере операционной системы (ОС). Для запуска ОС Linux необходимо запустить VMware на рабочей станции, выбрать из списка требуемую операционную систему и нажать кнопку «Power ON».
Порядок выполнения лабораторной работы
Подготовка и допуск к работе. К выполнению лабораторной работы допускаются студенты, которые подготовились к работе и имеют не более двух невыполненных предыдущих заданий.
Перед работой студент должен:
· предъявить преподавателю полностью оформленный отчет о предыдущей работе;
· ответить на вопросы преподавателя.
Студенты, которые не выполнили одно из вышеперечисленных требований, к работе не допускаются.
Отчёт по работе должен содержать:
- Текст задания.
- Перечень всех использованных в лабораторной работе команд и инструкций.
- Вывод по работе.
Общий алгоритм работы с базой данных в этом случае можно представить в следующем виде:
1. Подключение к базе данных с помощью функции connect.
2. Подготовка запроса к выполнению с помощью функции prepare.
3. Выполнение запроса с помощью функции execute.
4. Выборка данных (для запросов, содержащих команду SQL select) с помощью функций fetch.
5. Завершение работы с базой данных – функции finish и disconnect.
DBI является модулем доступа к базам данных для языка программирования Perl. В нем определен ряд методов, переменных и соглашений, составляющих единообразный интерфейс баз данных, не зависящий от конкретной используемой базы данных. Важно помнить, что DBI представляет собой просто интерфейс, нечто вроде прослойки между приложением и одним или несколькими модулями драйверов (DBD) баз данных. Самую большую часть работы выполняют именно драйверы. DBI предоставляет стандартный интерфейс и структуру, в рамках которой действуют драйверы. API, или интерфейс прикладного программирования, определяет интерфейс вызовов и переменные, которые должны использоваться сценариями Perl. API реализован в расширении Perl DBI (рис. 1).
Рис. 1. Архитектура приложения DBI.
DBI «пересылает» вызовы методов соответствующим драйверам для фактического исполнения. DBI отвечает также за динамическую загрузку драйверов, проверку наличия ошибок и их обработку, предоставление выполняемых по умолчанию реализаций методов и выполняет другие задачи, не связанные с конкретными базами данных.
В каждом драйвере реализованы методы DBI с использованием функций частного интерфейса ядра соответствующей базы данных. Заботиться о драйверах нужно только разработчикам сложных приложений, работающих с несколькими базами данных, или разработчикам общих библиотечных функций.
Основные принципы работы. Чтобы использовать DBI, нужно сначала загрузить модуль DBI:
use DBI;
use strict;
(Директива use strict не является обязательной, но настоятельно рекомендуется к использованию.)
Затем необходимо соединиться с источником данных и получить дескриптор соединения:
$dbh = DBI->connect($data_source, $username, $password) || die $DBI::errstr;
или
$dbh = DBI->connect($data_source,$username,$password,\%attr)||die $DBI::errstr;
Переменная $data_source может быть описана одним из следующих способов:
$data_source = dbi:DriverName:database_name;
$data_source = dbi:DriverName:database_name@hostname:port;
$data_source = dbi::DriverName::database=database_name;host=hostname;port=port;
Если определена переменная окружения DBI_AUTOPROXY (а драйвером в $data_source не является Proxy), то запрос на соединение автоматически изменяется следующим образом:
dbi:Proxy:$ENV{DBI_AUTOPROXY}:dsn=$data_source;
и передается модулю DBD::Proxy. DBI_AUTOPROXY обычно устанавливается в виде «hostname=... port=... ». Если $username или $password имеют неопределенные значения (а не просто пусты), то DBI подставляет значения из переменных окружения DBI_USER и DBI_PASS соответственно. DBI выдает предупреждение, если переменные окружения не определены. Однако систематическое использование этих переменных не рекомендуется по соображениям безопасности. Этот механизм предназначен, в основном, для облегчения тестирования.
DBI->comect автоматически инсталлирует драйвер, если он еще не инсталлирован. При инсталляции драйвера возвращается действующий дескриптор драйвера, либо происходит аварийное завершение программы с выводом сообщения об ошибке, состоящего из строки install_driver и описания возникшей проблемы. Таким образом, DBI->connect аварийно завершается при неудачной инсталляции драйвера, а при неудаче соединения просто возвращается undef, и в $DBI::errstr помещается сообщение об ошибке.
Затем драйверу передаются на обработку аргументы $data_source (с удаленным префиксом «dbi:...: »), $username и $password. В DBI не определена какая-либо интерпретация содержимого этих полей. Драйвер может интерпретировать поля $data_source, $username и $password любым образом и устанавливать любые нужные значения по умолчанию, соответственно ядру базы данных, к которому осуществляется доступ. (Например, Oracle использует переменные окружения ORACLE_SID и TWO_TASK, если $data_source не задана.)
Атрибуты AutoCoimt и PrintError по умолчанию включены для каждого соединения.
Перед установкой соединения с базой данных можно определить какие драйверы (DBD) установлены в системе:
@ary= DBI->data_sources($dnver);
@агу = DBI->data_sources($dnver, \%attr);
Метод data_sources возвращает список всех источников данных (баз данных), доступных через указанный драйвер. Драйвер будет загружен, если это не было сделано раньше. Если значение $driver пустое или undef, то используется значение переменной окружения DBI_DRIVER.
Источники данных возвращаются в форме, пригодной для передачи методу connect (т. е. имеют префикс dbi:$driver:). Следует иметь в виду, что многие драйверы не умеют определять, какие источники данных доступны. Такие драйверы возвращают пустой или неполный список.
Для базы данных InterBase v. 6.0 соединение сервером может быть выполнено по следующему сценарию:
my $DBPATH = '/MyDataBases/InterBaseDB//MyFirsDB.gdb';
$user='SYSDBA';
$password='masterkey';
my ($dbh, $sth);
my $dbh = DBI->connect("dbi:InterBase:$DBPATH", $user, $password)
|| die "Can't connect to $data_source: $DBI::errstr";
DBI позволяет приложению «готовить» команды для последующего выполнения. Подготовленная команда отождествляется с дескриптором команды, находящимся в переменной Perl. Обычно это переменная $sth.
$sth = $dbh->prepare("SELECT * FROM MyFirstTable");
$sth->execute();
В DBI нет понятия «текущего сеанса». У каждого сеанса есть дескриптор, т.е. $dbh, возвращенный методом connect. Этот объект используется для вызова методов, относящихся к базе данных.
Большинство данных возвращается сценарию Perl в виде строк. (Значения Null возвращаются как undef.) Это позволяет обрабатывать произвольные числовые данные без потери точности. Учтите, что Perl может не обеспечивать такой же точности, когда строка используется как число.