Categories: Шпаргалки

Включение поддержки Firebird + PHP версии 7.2 и ниже на Linux

Данные действия помогут установить модуль поддержки Firebird в PHP разных версий под управлением операционной системы Linux на примере Ubuntu и CentOS 7 или 8. Предполагается, что у нас уже установлен PHP.

Начиная с версии PHP 7.3, поддержка Firebird осуществляется только через PDO. Подробнее читайте в инструкции Работа с Firebird в PHP через PDO .

Рассмотрим процесс пошагово:

Установка и подключение модуля

В зависимости от системы вводим разные команды.

а) Ubuntu:

apt-get install firebird-dev gcc wget php-dev make

б) CentOS

Подключаем расширенный репозиторий:

yum install epel-release

Устанавливаем необходимые пакеты:

yum install firebird-devel gcc wget php-devel make

* где:

  • firebird-devel(dev) — средства для разработчика Firebird.
  • gcc — набор компиляторов, понадобится для сборки php-дополнения;
  • wget — утилита для загрузки файлов, будем использовать для скачивания исходников php;
  • php-devel(dev) — набор для разработчика php, содержит нужный нам phpize, с помощью которого будем компилировать расширение для php.
  • make — пакет для сбора приложения из исходников.

Смотрим установленную версию php:

php -v

Теперь открываем браузер и заходим на сайт http://museum.php.net . Выбираем установленную версию php (например, 5 или 7) и находим исходники той же версии, которая установлена у нас в системе CentOS и была получена предыдущей командой. Копируем ссылку на архив:

Если мы используем актуальную версию PHP, найти ссылку на загрузку его исходника можно на странице www.php.net/releases/index.php .

Переходим во временный каталог:

cd /tmp

Используя скопированную ссылку, скачиваем исходник для php:

wget http://museum.php.net/php5/php-5.4.16.tar.gz

* у меня была установлена версия php-5.4.16.

Теперь распаковываем скачанный архив:

tar -xvf php-*.tar.gz

И переходим в следующий каталог:

cd php-*/ext/interbase/

* напомню, что 5.4.16 — моя версия установленной программы. В вашем случае это может быть 5.6…, 7.2… или любая другая версия.

Запускаем компиляцию расширения:

phpize

Добавляем опции в исходник:

./configure —with-interbase=shared,/opt/firebird

Запускаем сборку исходника:

make

Копируем файл модуля из исходника в рабочий каталог php:

cp modules/interbase.so /usr/lib64/php/modules/

Создаем новый конфигурационный файл для расширения:

vi /etc/php.d/interbase.ini

и добавляем в него такую строку:

extension=interbase.so

Проверяем, что поддержка interbase firebird появилась в PHP:

php -r «phpinfo();» | grep Firebird

Мы должны увидеть что-то на подобие:

Firebird /InterBase Support => dynamic
Compile-time Client Library Version => Firebird API version 25
Run-time Client Library Version => LI-V6.3.9.27139 Firebird 2.5

Перезагружаем интерпретатор PHP, например, Apache:

systemctl restart httpd

… или php-fpm:

systemctl restart php-fpm

Пример кода php

Соединяемся с базой:

ibase_connect(«192.168.1.4:mybase», «SYSDBA», «masterkey») or die(«IBase connect error»);

* где 192.168.1.4 — IP-адрес сервера Firebird; mybase — имя базы данных, к которой идет подключение; SYSDBA и masterkey — соответственно, имя пользователя и пароль для подключения к базе данных.

Делаем запрос на выборку:

$result = ibase_query(«SELECT * FROM users»);

* в данном запросе предполагается, что мы обращаемся к таблице users . Результат запроса помещаем в переменную $result .

Перебираем массив полученных результатов:

while ($mass = ibase_fetch_object($result)) {
print_r($mass);
}

Возможные ошибки

fatal error: ibase.h: No such file or directory

Проблема может возникнуть при сборке модуля для php-7.2, когда мы выполняем команду make .

Причина

В каталоге с распакованным исходником нет нужного файла (ibase.h).

Решение

Находим в системе файл ibase.h командой:

find / -name «ibase.h»

В моем случае, файл был найден по пути:

/usr/include/firebird/ibase.h

Создаем симлинк на данный файл в каталоге с исходником:

ln -s /usr/include/firebird/ibase.h /tmp/php-*/ext/interbase/

* где /usr/include/firebird/ibase.h — путь, который был найден с помощью команды find; /tmp/php-*/ext/interbase/ — путь до распакованного исходника.

Читайте также

Другие инструкции, которые могут вас заинтересовать.

1. Установка Firebird на Linux CentOS 7

2. Примеры SQL-запросов в Firebird

admin

Recent Posts

Что такое Zulip

Zulip — программное обеспечение для реализации корпоративного чата. Разработан в 2012 году, в 2014 был…

2 месяца ago

Что такое Zookeeper

Zookeeper — cервис-координатор, который позволяет обеспечить контроль синхронизации данных. Разработан на Java компанией Apache Software…

2 месяца ago

Что такое Zimbra

Zimbra — программное обеспечение для реализации почтового сервиса или, если сказать точнее, автоматизации совместной деятельности…

2 месяца ago

Что такое Zabbix

Zabbix — бесплатная система мониторинга. Позволяет отслеживать состояние сетевых узлов, компьютеров и серверов. Возможности: Поддержка…

2 месяца ago

Что такое YouTube

YouTube — компания-владелец одноименного портала для просмотра и хранения видео. Чтобы пользоваться данным порталом достаточно…

2 месяца ago

Что такое yota

Yota — провайдер, предоставляющий доступ к сети Интернет по беспроводной связи. Впервые, сервис начал работать…

2 месяца ago