Я только что установил соединение sqlplus с удаленной базой данных Oracle и начал решать проблемы с настройкой php-соединения с той же базой данных.
При настройке sqlplus connect, хост AVAYAPDSDB был создан и использован. Прямо сейчас я пытался использовать его при подключении к хосту от php и столкнулся с проблемой, которая появилась на этом сайте среди других пользователей, но не решена или не прокомментирована должным образом.
Так. Мой запрос:
$dbh = odbc_connect("DRIVER={Oracle 11g ODBC driver};DSN=AVAYAPDSDB","******","******");
Вывод в браузере trase таков:
Warning: odbc_connect(): SQL error: [unixODBC][Driver Manager]Can't open lib '/usr/lib/oracle/11.2/client64/lib/libsqora.so.11.1' : file not found
Я удваиваю && Тройной проверил этот файл .so в этом каталоге или нет, и даже пытался переместить его в менее глубокий каталог, как / USR / Lib & / USR / lib64 с изменением маршрута к водителю в odbcinst.ini, но все еще без прогресса.
вот директория оракула / lib:
[root@cc-allplus lib]# ls -l
total 187144
-rw-r--r-- 1 root root 368 Aug 24 2013 glogin.sql
-rw-r--r-- 1 root root 53865194 Aug 24 2013 libclntsh.so.11.1
-rw-r--r-- 1 root root 7996693 Aug 24 2013 libnnz11.so
-rw-r--r-- 1 root root 1973074 Aug 24 2013 libocci.so.11.1
-rw-r--r-- 1 root root 118738042 Aug 24 2013 libociei.so
-rw-r--r-- 1 root root 164942 Aug 24 2013 libocijdbc11.so
-rw-r--r-- 1 root root 1502287 Aug 24 2013 libsqlplusic.so
-rw-r--r-- 1 root root 1469542 Aug 24 2013 libsqlplus.so
-rw-r--r-- 1 root root 1003582 Aug 24 2013 libsqora.so.11.1
-rw-r--r-- 1 root root 2091135 Aug 24 2013 ojdbc5.jar
-rw-r--r-- 1 root root 2739616 Aug 24 2013 ojdbc6.jar
-rw-r--r-- 1 root root 66779 Aug 24 2013 xstreams.jar
Вот мой ldd этого файла:
[root@cc-allplus lib]# ldd /usr/lib/oracle/11.2/client64/lib/libsqora.so.11.1
ldd: warning: you do not have execution permission for `/usr/lib/oracle/11.2/client64/lib/libsqora.so.11.1'
linux-vdso.so.1 => (0x00007fff0ddff000)
libdl.so.2 => /lib64/libdl.so.2 (0x00007f25b694b000)
libm.so.6 => /lib64/libm.so.6 (0x00007f25b66c6000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f25b64a9000)
libnsl.so.1 => /lib64/libnsl.so.1 (0x00007f25b6290000)
libclntsh.so.11.1 (0x00007f25b3920000)
libodbcinst.so.1 => /usr/lib64/libodbcinst.so.1 (0x00007f25b3709000)
libc.so.6 => /lib64/libc.so.6 (0x00007f25b3375000)
/lib64/ld-linux-x86-64.so.2 (0x0000003b8fe00000)
libnnz11.so (0x00007f25b2fa7000)
libaio.so.1 => /lib64/libaio.so.1 (0x00007f25b2da6000)
Чтобы не выглядеть слишком уверенно, вот мой odbcinst.ini, который очень хорошо работает с sqlplus:
[Oracle 11g ODBC driver]
Description = Oracle ODBC driver for Oracle 11g
Driver = /usr/lib/oracle/11.2/client64/lib/libsqora.so.11.1
Setup =
FileUsage =
CPTimeout =
CPReuse =
Driver Logging = 7
..и odbc.ini:
[AVAYAPDSDB]
Driver = Oracle 11g ODBC driver
DSN = Oracle 11g ODBC driver
ServerName = ccpdsdko
UserID = reporter
Password = reporter
Некоторые люди просили проверить, был ли установлен LD_LIBRARY_PATH .. ну, мой установлен:
[root@cc-allplus lib]# echo $LD_LIBRARY_PATH
:/opt/IBM/informix/lib:/opt/IBM/informix/lib/cli:/opt/IBM/informix/lib/esql:/opt/IBM/informix/lib:/opt/IBM/informix/lib/cli:/opt/IBM/informix/lib/esql:/usr/lib/oracle/11.2/client64/lib/
Я был бы очень благодарен за любую помощь! На этом сайте есть несколько сообщений на эту тему, но последний комментарий там был датирован 2014 годом … и проблема не была решена, или не были хорошо прокомментированы решение
Проверьте состояние SELinux с помощью команды:
# getenforce
Если ответ принудительный, вы можете попробовать выполнить команду:
# setenforce 0
Эта команда временная; вы будете заблокированы после перезагрузки системы.
Других решений пока нет …