[SOLVED] Включение поддержки Firebird в PHP без установки Firebird 2

Добрый день!

Есть такая проблема нужно включить в php поддержку firebird, но при этом firebird используется не из дерева портежей - стоит версия 1,55 (на той же машине). Но включение флага firebird в php, влечёт за собой установку firebird 2 как зависимость и без этого php не скомпилится.

В текущем состоянии phpinfo() выдаёт '--without-fbsql'.

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

Пробовал раскомментировать в php.ini строчку с соответствующим расширением, и обнаружил что вообще никаких расширений под Генту нет.

В общем, пока что самая раздражающая меня ошибка в сценарии это "Call to undefined function ibase_connect()"

Что можно сделать? Компилить php вручную? Данный вариант лишает преимуществ Генту, хотя в случае с firebird оказался единственным возможным решением.

P.S. Патчи на ebuild ни разу не делал и в общем-то это не решит проблему с обновлением версий php - каждый новый ebuild патчить тоже не лучшее решение. Хотя, если это единственный вариант - придётся смириться.

Update

fbsql никакого отношения собственно не имеет к firebird - это FrontBase. Interbase вообще не упоминается в конфигурации и добавление опции --with-interbase=/opt/firebird не помогло - никакого упоминания про interbase в выводе phpinfo не появлось, равно как и функции ibase_xxx недоступны.

Update-r1

Докопался до eclass'ов, сделал собственный в локальном оверлее. В нём убрал зависимость firebird и в путях расположения firebird /usr заменил на /opt (опция выглядит как --with-interbase=/opt). Посмотрим, что из этого получится - запустил компиляцию.

Примечание для идущих по пути PDO Firebird - этот драйвер нерабочий, а потому просто отключён (соответствующая ему строка закомментирована).

Update-r2

Таки нужно указывать /opt/firebird - иначе не компилируется, не находит ibase.h

Update-r3-final

Таки ура! Скомпилировалось, но для этого пришлось клонировать ebuild файл и eclass соответствующей версии и исправлять в еклассе путь к базе данных, убрав зависимость в firebird второй версии. В свете последних ошибок и изучения структуры пакета php подозреваю, что можно было обойтись без исправления путей и создания клонов, если воспользоваться use-флагом interbase и созданием ссылок на include firebird'а в /opt. Но дополнительные эксперименты пока проводить не буду, слишком долго ждал пока заработает ))

firebird там нужен постольку

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

Compute:
Bosch M2.8.1 -> custom Bosch M2.8.3 clone from Russia.
Speed about 260 km,Ram 2 pers.,HDD - 70 kg,210 FLOPS ;)

Что значит экспорт homedir?

Что значит экспорт homedir? configure php ловит что-то в переменных окружения?

-= Concordia victoriam gignit =-

/

Aleks Revo написал(а):
P.S. Патчи на ebuild ни разу не делал и в общем-то это не решит проблему с обновлением версий php - каждый новый ebuild патчить тоже не лучшее решение. Хотя, если это единственный вариант - придётся смириться.

Тут не патчи делать надо.
Обновление же в твоём случае (FireBird второй ветки не канает) в любом случае будет... проблемой.
Есть подозрение, что с обновлением пых-пыха тоже будет не всё гладко.

Далее: для сборки пых-пыха с поддержкой той или иной базы НЕОБХОДИМ [как минимум] клиент этой СУБД.

Твоё решение:
1. Берёшь ебилд понравившейся тебе версии пых-пыха;
2. Кладёшь его в локальный оверлей (под другим именем и с добавлением keyword'а);
3. Ручками (для простоты безусловно) прописываешь недостающую опцию ./configure;
4. Добавляешь ебилд в /etc/portage/package.keywords;
5. Маскируешь наглухо пых-пых в основной ветке;
6. И вот оно --- практически счастье ;)

:wq
--
Live free or die

Единственный момент, php

Единственный момент, php желательно периодически обновлять, поскольку выход новых версий - это зачастую исправление багов. Что ж, видимо придётся это ставить как-то на поток. Пошёл учить маны по созданию своих оверлеев. Или может кто кинет ссылку на правильный путь?

-= Concordia victoriam gignit =-

Ты мне лучше вот что скажи:

Ты мне лучше вот что скажи: рабочая СУБД как ставилась (ща как обвиню в 14443 ереси)?
А что, клиент 2.х с базой 1.х работает неправильно?

Обновлять пых-пых --- да не вопрос. Я только к тому, что автоматизировать процесс не получится.

Данный вопрос я сам в своё время долгонько исследовал.
Уже давно взят курс на автоматизацию работы в том числе с оверлеями (ага, делегирование ответственности).

Если же нужен чисто локальный, управляемый ручками --- то (в примере для него выделяю каталог # mkdir -p /usr/local/portage/custom/):
1. Создаёшь каталог (ну и задаёшь соответствующие права доступа);
2. Прописываешь оверлей в /etc/make.conf:
PORTDIR_OVERLAY="/usr/local/portage/custom"
3. Создаёшь там каталог для пых-пыха:
# mkdir -p /usr/local/portage/custom/dev-lang/php
4. Кладёшь туда (не забыв переименовать) ебилд выбранной версии.

...ну и далее по описанному мной ранее.

:wq
--
Live free or die

Давно уже было - не помню

Давно уже было - не помню ))
Скачал с сайта tar.gz, распаковал, скомпилил, нужное прописал в xinetd, /usr/lib покопировал библиотеки.

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

Спасибо, буду пробовать.

-= Concordia victoriam gignit =-

Кстати, в силу возраста

Кстати, в силу возраста FireBird 1.x есть вероятность того, что в одной из новых версий пых-пыха его поддержку сломают.
Как уже было с поддержкой Oracle 8.

:wq
--
Live free or die

Не исключено, придётся тогда

Не исключено, придётся тогда отказаться и от обновления php.
Хотя, насколько я понял, вечно за эту софтинку цепляться не будут и планируется её замена на что-то более современное. Только когда это будет - тоже неведомо, говорят об этом уже давно ))

-= Concordia victoriam gignit =-

> 3. Ручками (для простоты

> 3. Ручками (для простоты безусловно) прописываешь недостающую опцию ./configure;

Прописать опцию не помогло - где-то он её перекрывает. В ebuild-файле так и не нашёл, где обрабатывается use-флаг firebird.

-= Concordia victoriam gignit =-

/

Aleks Revo написал(а):
> 3. Ручками (для простоты безусловно) прописываешь недостающую опцию ./configure;

Прописать опцию не помогло - где-то он её перекрывает. В ebuild-файле так и не нашёл, где обрабатывается use-флаг firebird.

Дешёвый вариант не прошёл :(
Придётся почитать документацию (про написание ебилдов)... Думаю, начинать надо где-то отсюда.

Ув. тов. alexxy также рекомендовал app-doc/pms (ну и конечно в обязательно порядке app-doc/abs-guide).

:wq
--
Live free or die

К сожалению у firebird нет

К сожалению у firebird нет мейнтейнера в gentoo, прийдетца собирать самому :)

З.Ы. Кто знает как стать мейнтейнером в gentoo? :)

Working on Gentoo Linux for Asus P535 and Qtopia :-)

oleg_kaa написал(а): К

oleg_kaa написал(а):
К сожалению у firebird нет мейнтейнера в gentoo, прийдетца собирать самому :)

З.Ы. Кто знает как стать мейнтейнером в gentoo? :)

проще простого - становишся оффициальным разработчиком и выбираеш что ты будеш "маинтайнить"

Вот я не могу понять как ним

Вот я не могу понять как ним стать :) Это какой обряд надо провести? :)
Типа зайти на irc #gentoo и сказать что я хочу быть мейнтейнером firebird или во время полной луны завыть и написать ебилд :)

Working on Gentoo Linux for Asus P535 and Qtopia :-)

Нет, тут как в Интиледжент

Нет, тут как в Интиледжент Сервис :), рекомендации от двух идейно выдержанных членов организации нужны :)

Если серьёзно : http://www.gentoo.org/proj/en/devrel/recruiters/index.xml

Попробуйте выловить pva (http://www.gentoo.ru/user/232) в качестве ментора.

Для майнтенса одного огнептыца ,имхо,можно (и нужно ?)и без статуса майнтайнера прожить.

Есть санрайс для начала и пхп-експериментал для для жизни, есть оверлеии для старого софта

Compute:
Bosch M2.8.1 -> custom Bosch M2.8.3 clone from Russia.
Speed about 260 km,Ram 2 pers.,HDD - 70 kg,210 FLOPS ;)

я бы сказал что для нового

я бы сказал что для нового разработчика http://www.gentoo.org/proj/en/devrel/quiz/ представляется гораздо более правильной отправной точкой...

.

oleg_kaa написал(а):
К сожалению у firebird нет мейнтейнера в gentoo, прийдетца собирать самому :)

s/собирать/писать ебилд/
Или ты подписываешь обвинение в ереси 14443?

oleg_kaa написал(а):
З.Ы. Кто знает как стать мейнтейнером в gentoo? :)

Кстати, относительно востребованных, но не имеющих мэйнтейнера ебилдов вопрос актуален.
Что скажет тов. alexxy?

:wq
--
Live free or die

[quote=Anarchist Что скажет

[quote=Anarchist
Что скажет тов. alexxy?

это знает только он сам.
А что скажет товарищ pva, я примерно представляю :)

Compute:
Bosch M2.8.1 -> custom Bosch M2.8.3 clone from Russia.
Speed about 260 km,Ram 2 pers.,HDD - 70 kg,210 FLOPS ;)

Ога, товарищ pva пошлет всех

Ога, товарищ pva пошлет всех любоватся восходами =)

А кто обновляет

А кто обновляет dev-db/firebird?

или этот человек ушёл из разработчиков Gentoo?

-= Concordia victoriam gignit =-

Им занимался какой то Вильям,

Им занимался какой то Вильям, но он ушел :)

Working on Gentoo Linux for Asus P535 and Qtopia :-)

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".