PHP odbc драйвер как общее расширение - PullRequest
0 голосов
/ 14 декабря 2018

Я использую php с версией 5.6.31 во встроенном проекте с yocto-linux в качестве операционной системы.То, что я хочу сделать, это иметь драйвер odbc в качестве разделяемой библиотеки вместо жесткой ссылки.Причина этого в том, что у меня есть 2 разных варианта использования с использованием PHP, один из которых требует custom-odbc-driver.Поскольку я строю его для встроенного домена из-за недостатка места, я не хочу добавлять его статически в бинарном PHP.Существует руководство по компиляции расширения php как общего .

Мой вопрос: можем ли мы иметь драйвер odbc в качестве разделяемой библиотеки?Руководство упомянуло, что не всем, кроме немногих расширений можно поделиться.Я пытался собрать PHP с флагом конфигурации --with-custom-odbc=shared, но он завершился неудачно с фатальной ошибкой:

odbc.h: Нет такого файла или каталога.

--with-custom-odbc флаг требуетсяпуть с установкой odbc.Если у нас может быть драйвер odbc в качестве разделяемой библиотеки, какой флаг конфигурации следует использовать для его описания?

1 Ответ

0 голосов
/ 22 декабря 2018

установить unixODBC-devel:

$ sudo yum install unixODBC unixODBC-devel

$ sudo repoquery --installed -l unixODBC-devel
/usr/include/autotest.h
/usr/include/odbcinst.h
/usr/include/odbcinstext.h
/usr/include/sql.h
/usr/include/sqlext.h
/usr/include/sqltypes.h
/usr/include/sqlucode.h
/usr/include/unixodbc_conf.h
/usr/include/unixodbc_conf_x86_64.h
/usr/include/uodbc_extras.h
/usr/include/uodbc_stats.h

$ odbcinst -j
unixODBC 2.3.1
DRIVERS............: /etc/odbcinst.ini
SYSTEM DATA SOURCES: /etc/odbc.ini
FILE DATA SOURCES..: /etc/ODBCDataSources
USER DATA SOURCES..: ~/.odbc.ini

$ odbcinst -q -d
[PostgreSQL]
[MySQL]

и настроить PHP с параметрами:

./configure --with-unixODBC=shared,/usr

, когда unixODBC недоступен как пакет, его можно построить из исходный код :

$ wget http://www.unixodbc.org/unixODBC-2.3.7.tar.gz
$ tar -xvzf unixODBC-2.3.7.tar.gz
$ cd unixODBC-2.3.7
$ ./configure --help

$ ./configure
$ make
$ sudo make install

есть даже unixodbc-gui-qt интерфейс для него.

...