Unable to load dynamic library ...php_oci8.dll

danilov_vo

Новичок
Unable to load dynamic library ...php_oci8.dll

Помогите плиз!! ПХП не видит данную библиотеку, хотя все прописано как в мануалах.
Платформа Windows
переменные среды:
LD_LIBRARY_PATH - путь к php_oci8.dll;
LD_PRELOAD указывает на тот же путь, что и LD_LIBRARY_PATH;
NLS_LANG = AMERICAN_AMERICA.CL8MSWIN1251;
ORACLE_HOME = D:\oracle\ora92;
ORACLE_SID = UDP_NEW;
PATH - тоже добавил путь что и LD_LIBRARY_PATH на всякий случай.

phpinfo отрабатывает нормально, все переменные окружения показывают соответственные значения. В php.ini extension_dir то же, что и LD_LIBRARY_PATH

версия апача: Oracle HTTP Server Powered by Apache/1.3.22 (Win32) PHP/5.1.4 mod_plsql/3.0.9.8.5d mod_ssl/2.8.5 OpenSSL/0.9.6b mod_fastcgi/2.2.12 mod_oprocmgr/1.0 mod_perl/1.25

в логах пишет: PHP Warning: PHP Startup: Unable to load dynamic library 'd:\oracle\ora92\Apache\php\php_oci8.dll'

Плиз, подскажите спецы... На SQL.ru чет малчат все((((

-~{}~ 14.06.06 14:30:

хм.. странна.. форум-то вроде нехилый... или в отпусках все??? господа специалисты??

-~{}~ 15.06.06 10:13:

Точка входа в процедуру OCILobRead2 не найдена в библиотеки DLL OCI.dll

это так php_oci8.dll ругаеться... подозрение на конфликт версий... подскажите плиз, как решить данную проблему... может заменой php_oci8.dll?? и где взять необходимую версию. Оракл версии 9.2.0.4.0, а php_oci8.dll с ZendCore v2.1.0
 

tony2001

TeaM PHPClub
никакого LD_LIBRARY_PATH под виндой нет, есть только PATH.
решение - поставить Oracle Instant Client.

>php_oci8.dll с ZendCore v2.1.0
ZendCore версии 2.1.0 не существует в природе.
ZendCore и ZendEngine - две разные вещи.
 

coolpunk

Новичок
та же проблема, только Oracle 8.1.7. Клиент оракла стоит и работает (проверено на софте, использующем Oracle).
Apache в логе пишет:
PHP Warning: PHP Startup: Unable to load dynamic library 'D:\PHP5\ext\php_oci8.dll' - Не найдена указанная ПРОЦЕДУРА.
in Unknown on line 0
 

coolpunk

Новичок
tony2001
Я же писал - клиент стоит и работает.
или "Oracle Instant Client" - это что-то другое?
Запускаю Oracle Universal Installer, нажимаю установленные продукты, вижу: Oracle8i Client 8.1.7.0.0.
Или надо какую-то особенную компоненту клиента ставить?
В PATH всё прописано.
 

SmartDiver

Новичок
надо документацию внимательнее читать
Требования (к версии 5.1.4)
Вам понадобятся клиентские библиотеки Oracle для того, чтобы использовать этот модуль. Пользователям Windows будут необходимы библиотеки минимум версии 10 для того, чтобы использовать php_oci8.dll.
тупость конечно дикая, потому что лично у меня стоит клиент 9 и сервак тоже 9 версии
 

tony2001

TeaM PHPClub
либо пользователи 10-ки будут ограничены функциональностью 9-ки, либо пользователи 9-ки будут вынуждены скачать 35 Мб.
мне пришлось выбрать второе, как наименьшее из двух зол.
я уже неоднократно повторял - вы сами выбрали "лёгкий путь" Windows и precompiled DLLs, теперь вам приходиться платить за это.
 

SmartDiver

Новичок
Тони, я вот скачал 10-й клиент и все равно не могу подключиться к серверу 9-ка....
Ошибка как у всех: Warning: oci_connect(): OCIEnvNlsCreate() failed. There is something wrong with your system - please
check that LD_LIBRARY_PATH includes the directory with Oracle Instant Client libraries in...

Переменные среды само собой выставил. Перерыл много форумов в инете уже. Ответа пока нет.

p.s. забыл добавить, скрипты запускаю в режиме CLI, так что про настройки httpd.conf можно не упоминать. LD_LIBRARY_PATH вычеркнул из safe_mode на всякий случай уже, переменные среды в WINDOWS установлены, так же устанавливаю их и с помощью putenv() в самой проге
 

tony2001

TeaM PHPClub
libnnz10.so (кажется, nnz10.dll под виндой) должна быть в PATH.

-~{}~ 01.08.06 15:57:

>так же устанавливаю их и с помощью putenv() в самой проге
вот это точно никак не поможет.
 

SmartDiver

Новичок
все... победил проблему эту
у меня на тачке установлен полный клиент оракла версии 9.2
я скачал инстант клиента 10 версии
оставил переменные среды
LD_LIBRARY_PATH=C:\php\oracle
ORACLE_HOME=c:\oracle\ora92
ORA_NLS33=c:\php\oracle
выкинул всякие NLS установки из переменных
воткнул в реестр:
REGEDIT4

[HKEY_LOCAL_MACHINE\SOFTWARE\Oracle]
"ORACLE_HOME"="C:\\oracle\\ora92"
"NLS_LANG"="AMERICAN_AMERICA.CL8MSWIN1251"
"ORACLE_HOME_NAME"="OraHome92"

и все заработало слава алаху :)
 
Сверху