Настройка связки
InterBase 6.0 for Linux и Perl 5.005_03
на сервере RedHat 6.2
     Настройка данной связки ставит перед собой целью возможность создания
динамических страниц формируемых с помощью информации SQL сервера IB DataBase 6.0
бесплатно распростаняемого компанией
InterBase
на работающем сервер под управлением
Linux Redhat 6.2
В состав операционной системы
Linux Redhat 6.2 обязательно входит язык программирования
Perl
Он является неотъемлемой частью системы. Более того, он зарекомендавал себя с самой лучшей стороны,
как простой, но очень
функциональный язык. Он с пресущей ему легкостью справиться и с нашей задачей.
Использование языка
Perl для выполнения различных задач для web сервера поддерживается модулем
CGI.
Для настройки всего перечисленного нам потребуются следующие пакеты:
1. Пакет сервера interbase-6.0-1.i386.rpm его размер 3 870 779 байт. Получить можно на www.InterBase.com
в разделе Downloads
2.Модуль для Perl'а IBPerl-08p3.tar.gz его размер 172 485. Взять его можно на том же сервере
пройдя по ссылкам...
Данный rpm сервера так называемый
Классический сервер
, существует еще и
Суперсервер.
Судя по материалам в Сети
Суперсервер
предрасположен для выполнения задач где требуется
высокое быстродействие,
в свою очередь
Классический сервер
признается как более надежный....
Еще следует сказать, что
Суперсервер
вероятно не запуститься (у меня он просто не хотел ставиться)
на системе
Redhat 6.0
Ну а для почтового сервера с 50 машинами в сети и выделенной линией к провайдеру
не актуально установка
Суперсервера
, к тому же с таким характером :(((.....
Вот наконец и приступаем к самому интересному..
Перед установкой новой версии необходимо убрать предыдущую версию сервера, ну а если забыли, то
rpm обязательно об этом скажет
Становимся прежде всего суперпользователем, или находим где нибудь администратора aka root.
Ставим пакет сервера с помощью команды
# rpm -ihv interbase-6.0-1.i386.rpm
Наверняка у вас все пройдет благополучно,инсталяция
Interbase на
Linux на редкость всегда проходила гладко
за исключением указанного выше
Суперсервера
на систему
Redhat 6.0. Но на этот раз все просто обязанно
пройти на ура,
В результате установки на вашем компьютере установиться
Interbase
в каталог
/opt/interbase/.
Знакомые с версиями для Windows
Interbase
обнаружат полное соответствие в именах файлов и катологах
между двумя версиями. Здесь следует отметить, что данная версия сервера не нуждается в файле лицензии,
в отличии от его бета-версии.
По умолчанию пороль для администратора сервера с именем
SYSDBA =
masterkey.
И что необходимо сделать в первую очередь, так это изменить его по соображениям защиты с помощью утилиты
gsec
c каталога
/opt/interbase/bin/ . С помощью утилиты
gsec можно так же добавить пользователей, присвоить им
необходимые права, вобщем невероятно полезная утилита, необходимо заметить, что она имеет два режима:
командной строки и интерактивный режим, когда команды выполняются в своего рода среде.
Немаловажно отметить наличие в файле
/etc/servises строки :
gds_db 3050/tcp # InterBase Database Remote Protocol
Эта строка является копией единственной не задокументированной строки в файле
servises.isc
.
Таким образом сервер будет функционировать по порту
3050.
Теперь сервер готов к работе, если Ваш компьютер подключен к сети то можно проверить его функционирование с любой машины
в сети. При запуске команды на сервере
# ps ax
в списке процессов должна присутствовать строка:
на пример :
6004 ? S 0:00 /opt/interbase/bin/gds_lock_mgr
которая сообщает о работе процесса сервера.
Теперь, когда мы имеем рабочий SQL сервер (на мой взгляд один из лучших), нам надо обеспечить
его функционирование с языком программирования
Perl
, т.к. это необходимо для
обеспечения создания динаммических страниц нашего web сайта. Для этого необходимо взяться за пакет
IBPerl-08p3.tar.gz
Это ничто иное, как исходники для создания модуля
IBPerl
необходимого для нашей задачи. Возможно это уже не самая свежая версия, но новее я пока не нашел :)
Командой
# tar xzf IBPerl-08p3.tar.gz
мы получаем систему каталогов с разархивированным содержанием пакета.
Как проделывали много раз, заходим в каталог и видем уже готовый IBPerl.pm, с начала я пошел по легкому пути,вернее
по неправильному пути, так что обсуждать его нет смысла :). Вобщем необходмо выполнить следующие команды:
# perl Makefile.PL
# make
# make install
Теперь я расскажу что мы будем иметь с установки этого пакета :
Сейчас у нас есть модуль, который позволит скриптам написаным на
Perl получать, вводить и редактировать
информацию из таблиц баз данных SQL сервера, при взаимодействии с другим модулем
CGI эта возможность
позволить не напрягаясь выполнить нашу задачу- связать WEB сервер и SQL сервер.
Проверить работу нового модуля можно запустив примеры из дистрибутива. При их запуске можно получить различные
предупреждения и даже ошибки, но здесь важно проверить работу именно модуля, т.е. что бы не было сообщения о том.
что
Perl не может найти нужный нам модуль
IBPerl.pm Скажу честно, у меня все встало с первого раза,
без ошибок.
Но на этом я не остановился, создав базу с компьютера под управлением Windows (так проще :((( ) с начала я добился
только факта вывода данных на монитор на сервере, но они упорно не хотели жить в браузере. После долгих раздумий и немного
пива я сделал следующее: перенес базу даных в каталог WEB сервера, у меня это /home/httpd/html/base/ т.е. базы данных
существуют наравне со страницами WEB сервера. Но и это не решило проблему :((( Затем я помотрел настройки
Squid'а
вот оно решение : есть в файле настроек
squid'a указания, под какими юзером и группой он работает, я присвоил файлам
баз данных эти параметры.
Файл
/etc/squid/squid.conf содержит следующее:
cache_effective_user nobody
cache_effective_group nobody
Соответственно мои действия носили следующий характер:
# chmod 755 base.gdb
# chown nobody base.gdb
# chgrp nobody base.gdb
И в результате я долго не мог поверить, я так долго об этом мечтал, и наконец то оно свершилось :))))!!!
Текст скрипта я взял из примера, который был в комплекте поставки дистрибутива модуля. Настроить его на мою
ситуацию не составило труда, поменял имя сервера, пароль, и sql выражение и готово :)))
Текст скрипта привожу полностью, Скрипт из рабочего телефонного справочника, база данных содержит
только одну таблицу с простой структурой, которая следут из sql выражения.
Более полное представление можно получить изучив примеры поставляемые с модулем. Их комплект
полностью показывает все возможности данного модуля для работы с базами данных SQL сервера.
Теперь я перечислю все команды указанные выше :
# rpm -ihv interbase-6.0-1.i386.rpm
# perl Makefile.PL
# make
# make install
# chmod 755 base.gdb
# chown nobody base.gdb
# chgrp nobody base.gdb
В дополнение немного изменив текст скрипта получаем практически универсальное средство для ведения баз данных
с помощью самого на мой взгляд лучшего SQL сервера
InterBase для самой лучшей ОС
Linux Red Hat.
Как можно догадаться, простой выборкой сведений по условию возможности данной технологии не ограничиваются,
Налицо межплатформенность, а возможности SQL сервера
Interbase просто огромны, таким образом имеет смысл
создание баз данных, с разграниченным доступом для пользователей в сети (Ethernet) и сведениями доступными
для посетителей сайта,когда механизм грантов снимает головную боль с разграничением прав на доступ
к информации любого количества запросов.Я позволю себе предположить, что крупные и
серьезные проекты в Сети, которые готовятся множеством людей, в разных городах и (или)
странах невозможно построить и поддерживать без применения SQL серверов. Все пакеты
использованные мною свободно распространяются и не составит труда ими обзавестись, таким
образом данная технология не ограничивается ни финансовыми ограничениями, ни техническими.
Обязан признать. что сказанное мною чистая правда и ничего кроме правды...
Владимир Бычков.
Администратор Свободненских электрических сетей СП Амурэнерго.
А написать мне можно очень просто :
root@svob.amur.elektra.ru
reboot@svob.amur.elektra.ru
vovan@svob.amur.elektra.ru