php7+oci8

Проблемы с установкой, настройкой и работой системных и сетевых программ.

Модераторы: GRooVE, alexco

Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
teejay
рядовой
Сообщения: 11
Зарегистрирован: 2013-09-18 20:56:55

php7+oci8

Непрочитанное сообщение teejay » 2019-02-23 10:04:50

Всем добрый день.
Есть сервер на

Код: Выделить всё

FreeBSD 11.2-RELEASE-p3 FreeBSD 11.2-RELEASE-p3 #0
root@amd64-builder.daemonology.net:/usr/obj/usr/src/sys/GENERIC  amd64
ещё есть сервер с базой Oracle. Есть желание установить на фрю php (версия не принципиальна) и подружить с Ораклом. Проблема заключается в том, что раньше с php5 шло расширение oci8 для работы с Ораклом, теперь его нет в портах. Поэтому решил попробовать собрать php73 из исходников с этим расширением. Для этого начал с установки Oracle instant client, sqlplus, sdk:
загрузил в ядро

Код: Выделить всё

15    1 0xffffffff82b8e000 31e50    linux64.ko
16    1 0xffffffff82bc0000 2d28     linux_common.ko
установил

Код: Выделить всё

linux_base-c7
далее установил всё от оракла и настроил окружение:

Код: Выделить всё

ORACLE_HOME=/usr/local/oracle/instantclient_11_2
LD_LIBRARY_PATH=/compat/linux/lib64:/usr/local/lib:/usr/local/oracle/instantclient_11_2
PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin:/root/bin:/usr/local/oracle/instantclient_11_2
из rpm от CentOS7 взял libaio.so.1.0.0, libaio.so.1.0.1.
Проверил возможность подключения к базе при помощи родной утилиты от Ораклы SQLPlus, всё заработало без проблем.
Пришло время собирать из исходников сам php73. Для начала сконфигурировал всё по умолчанию:

Код: Выделить всё

./configure
./make
./make test

...
=====================================================================
TEST RESULT SUMMARY                                                 
---------------------------------------------------------------------
Exts skipped    :   49                                               
Exts tested     :   26                                               
---------------------------------------------------------------------
                                                                     
Number of tests : 16122             10739                            
Tests skipped   : 5383 ( 33.4%) --------                             
Tests warned    :    0 (  0.0%) (  0.0%)                             
Tests failed    :   69 (  0.4%) (  0.6%)                             
Expected fail   :   36 (  0.2%) (  0.3%)                             
Tests passed    : 10634 ( 66.0%) ( 99.0%)                            
---------------------------------------------------------------------
Time taken      :  415 seconds                                       
=====================================================================
Всё вроде впорядке, дялее попробовал собрать php7 с опцией

Код: Выделить всё

./configure --with-oci8=instantclient,/usr/local/oracle/instantclient_11_2 --enable-opcache=no
А вот сборка не проходит, ругается на библиотеку:

Код: Выделить всё

/usr/bin/ld: warning: libnnz11.so, needed by /usr/local/oracle/instantclient_11_2/l
ibclntsh.so, not found (try using -rpath or -rpath-link)                           
/usr/bin/ld: warning: libdl.so.2, needed by /usr/local/oracle/instantclient_11_2/li
bclntsh.so, not found (try using -rpath or -rpath-link)                            
/usr/bin/ld: warning: libm.so.6, needed by /usr/local/oracle/instantclient_11_2/lib
clntsh.so, not found (try using -rpath or -rpath-link)                             
/usr/bin/ld: warning: libpthread.so.0, needed by /usr/local/oracle/instantclient_11
_2/libclntsh.so, not found (try using -rpath or -rpath-link)                       
/usr/bin/ld: warning: libnsl.so.1, needed by /usr/local/oracle/instantclient_11_2/l
ibclntsh.so, not found (try using -rpath or -rpath-link)                           
/usr/bin/ld: warning: libc.so.6, needed by /usr/local/oracle/instantclient_11_2/lib
clntsh.so, not found (try using -rpath or -rpath-link)
/usr/local/oracle/instantclient_11_2/libclntsh.so: undefined reference to `snzdafn_
assemble_filename'                                                                 
/usr/local/oracle/instantclient_11_2/libclntsh.so: undefined reference to `geteuid@
GLIBC_2.2.5'                                                                       
/usr/local/oracle/instantclient_11_2/libclntsh.so: undefined reference to `memcmp@G
LIBC_2.2.5'                                                                        
/usr/local/oracle/instantclient_11_2/libclntsh.so: undefined reference to `strdup@G
LIBC_2.2.5'                                                                        
/usr/local/oracle/instantclient_11_2/libclntsh.so: undefined reference to `lseek64@
GLIBC_2.2.5'                                                                       
/usr/local/oracle/instantclient_11_2/libclntsh.so: undefined reference to `sigactio
n@GLIBC_2.2.5'                                                                     
/usr/local/oracle/instantclient_11_2/libclntsh.so: undefined reference to `nztwClos
eWallet'   
...
но указанные библиотеки есть:

Код: Выделить всё

ldd libclntsh.so
libclntsh.so:
libnnz11.so => /usr/local/oracle/instantclient_11_2/libnnz11.so (0x803a000
00)
libdl.so.2 => /compat/linux/lib64/libdl.so.2 (0x803dcd000)
libm.so.6 => /compat/linux/lib64/libm.so.6 (0x803fd1000)
libpthread.so.0 => /compat/linux/lib64/libpthread.so.0 (0x8042d3000)
libnsl.so.1 => /compat/linux/lib64/libnsl.so.1 (0x8044ef000)
libc.so.6 => /compat/linux/lib64/libc.so.6 (0x804708000)
libaio.so.1 => /compat/linux/lib64/libaio.so.1 (0x800643000)
ld-linux-x86-64.so.2 (0x804acb000)
Возможно ли решить данную проблему и подружить php с Ораклом?
Библиотека рассчитана на Линукс, пробовал делать

Код: Выделить всё

brandelf -t FreeBSD libclntsh.so
не помогает. В интернетах не много информации о том как подружить Оракл с FreeBSD, но большая её часть уже не очень актуальна, такое ощущение, что раньше, с точки зрения поддержки этой базы данных было лучше, а теперь совсем туго:(

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35454
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

php7+oci8

Непрочитанное сообщение Alex Keda » 2019-03-05 22:51:59

всегда было хреново
теперь же - совсем никак =(
Убей их всех! Бог потом рассортирует...

Аватара пользователя
kharkov_max
капитан
Сообщения: 1862
Зарегистрирован: 2008-10-03 14:56:40

php7+oci8

Непрочитанное сообщение kharkov_max » 2019-03-07 9:31:49

Тоже был мелкий сайт на php для бд оркле. Если верно помню то с версии php5.2 osi перестали поддерживать. Промучался с вариантами и переписал сайт на java... Там все работает...