не находит php_oci8.dll ...

Shredder2003

Новичок
не находит php_oci8.dll ...

всё это на WinXP
PHP5 +Apachi2 + клиент Oracle
сам пхп работает, но при попытке воспользоваться
функциями OCI говорит, что он их не знает:

Fatal error: Call to undefined function OCILogon() in C:\Program Files\Apache Group\Apache2\htdocs\form1.php on line 6

php_oci8.dll и
php_oracle.dll у меня прописаны в php.ini (раскомментированы :)),
и путь dir_extension я указал...

В phpinfo() информация об оракл-экстеншене не показывается
хотя оракл клиент рабочий, в Toad`e коннектится.
ORACLE_HOME и
ORACLE_SID в переменных окружения винды прописал
SQL Plus при указании третьего параметра коннектится

при запуске апачи:
"PHP Startup: Unable to load dynamic library 'C:\php\ext\php_oci8.dll' - Не найдена указанная процедура."

снёс апачи2. , поставил апачи1.3 - бесполезно

Уж я эти библиотеки (oci8 и oracle) раскидал в windows
и в windows\system - ну не находит он их, и всё!

при запуске php.exe:
"Точка входа в процедуру OCILobClose не найдена в библиотеке DLL OCI.dll. "
и затем:
"PHP Startup: Unable to load dynamic library 'C:\php\ext\php_oci8.dll' "

Люди добрыя!!! Помогите!
 

tony2001

TeaM PHPClub
попробуй из консоли выполнить php.exe и посмотреть что будет.
проверь точно ли есть ORACLE_HOME и правильно ли он указывает на директорию с клиентом (см. тот же phpinfo() - там эти переменные должны быть).
уверен ли ты, что C:\php\ext\php_oci8.dll существует (насколько я помню, экстеншены переехал и в c:\php в PHP5).
 

Shredder2003

Новичок
Originally posted by tony2001
попробуй из консоли выполнить php.exe и посмотреть что будет.
проверь точно ли есть ORACLE_HOME и правильно ли он указывает на директорию с клиентом (см. тот же phpinfo() - там эти переменные должны быть).
уверен ли ты, что C:\php\ext\php_oci8.dll существует (насколько я помню, экстеншены переехал и в c:\php в PHP5).
1. консоль- без разницы
2. в php_info() - переменные Oracle_HOME и _SID не отображаются. переменные окружения я задал через "мой комп\свойства\дополнительно\переменные среды"
задал я их правильно.
но в php_info(), повторю, они не отображаются
но он выводит такую строку:
"oracle
Oracle Support enabled "
3. я уверен, что C:\php\ext\php_oci8.dll существует

P.S. регистр имени переменной (ORACLE_HOME, например) не имеет значения. не правда ли?
 

tony2001

TeaM PHPClub
>переменные окружения я задал через "мой комп\свойства\дополнительно\переменные среды"
после этого перегружался?

>но в php_info(), повторю, они не отображаются
значит, их нет.

>"oracle Oracle Support enabled "
это не то. это ты включил зачем-то php_oracle.dll, хотя он рассчитан на Oracle <= 8
 

Shredder2003

Новичок
переменные окруженя прописал для all users,
и после этого появились в php_info():

Environment
Variable Value
ALLUSERSPROFILE C:\WINDOWS\Documents and Settings\All Users
CLASSPATH C:\PVSW\BIN\PVJDBC2X.JAR;C:\PVSW\BIN\PVJDBC2.JAR
CommonProgramFiles C:\Program Files\Common Files
COMPUTERNAME SHREDDER
ComSpec C:\WINDOWS\system32\cmd.exe
NUMBER_OF_PROCESSORS 1
ORACLE_HOME c:\orant
oracle_sid orabaan

>это не то. это ты включил зачем-то php_oracle.dll, хотя он рассчитан на Oracle <= 8
у меня клиент 7, это нужно для работы (импорт из текстового файла не реализован в старших версиях)

!!!ничего не изменилось!!!
выдаёт ту же ошибку:
"Fatal error: Call to undefined function OCILogon() in C:\Program Files\Apache Group\Apache2\htdocs\form1.php on line 6"
 

tony2001

TeaM PHPClub
Shredder2003
ну так и используй тогда php_oracle.dll и соответствующие функции, если у тебя настолько старый Оракл.
забудь про OCI8 - даже из названия следует, что к тебе этот модуль не относится.
 

Shredder2003

Новичок
не просто апач перезапустил, а перезагрузился

-~{}~ 25.08.04 15:17:

прошу прощения, системный глюк :)
у меня __клиент 8.0__, это нужно для работы (импорт из текстового файла не реализован в старших версиях)
 

tony2001

TeaM PHPClub
Shredder2003
нет переменных в phpinfo() - нет варенья.
сделай так, чтобы они были видны и модуль подгрузится.
 

Shredder2003

Новичок
Originally posted by tony2001
Shredder2003
нет переменных в phpinfo() - нет варенья.
сделай так, чтобы они были видны и модуль подгрузится.
повторю:
переменные окруженя прописал для all users,
и после этого появились в php_info():

Environment
Variable Value
ORACLE_HOME c:\orant
oracle_sid orabaan

и сразу встречный вопрос:
достаточно ли для работы всего двух переменных:
ORACLE_HOME и oracle_sid ?
 

tony2001

TeaM PHPClub
не oracle_sid, а ORACLE_SID.
регистр имеет значение.

еще хорошо бы NLS_LANG прописать ему правильный.
 

Shredder2003

Новичок
Originally posted by tony2001
не oracle_sid, а ORACLE_SID.
регистр имеет значение.

еще хорошо бы NLS_LANG прописать ему правильный.
прописал все 3, в верхнем регистре, отображаются в php_info()

но всё же:

"Fatal error: Call to undefined function OCILogon() in C:\Program Files\Apache Group\Apache2\htdocs\form1.php on line 6"

!!!
 

tony2001

TeaM PHPClub
эта ошибка - следствие.
не надо её показывать всё время, она не несет никакой информации, нужна её причина.
надо показывать то, что написано в логах апача по поводу загрузки модуля.

при установке клиента, я надеюсь, Oracle Call Interface был поставлен?
 

Shredder2003

Новичок
упс... Oracle Call Interface установил,
перезагрузился
без изменений
а в логах апаче пишет:
PHP Warning: PHP Startup: Unable to load dynamic library 'C:\php\ext\php_oci8.dll' - Не найдена указанная процедура.

in Unknown on line 0
 

tony2001

TeaM PHPClub
значит, всё еще не видит библиотек OCI.
что находится в c:\orant ? там в lib должна быть библиотека с именем libclntsh.dll или каким-то подобным.
 

Shredder2003

Новичок
кажется, приближаемся к решению...
там сидит оракл, но папки lib там нет
(вот bin есть и oci.dll есть :) )
и нет библиотеки с подобным названием
вопрос: неужели для работы с пхп надо устанавливать некие дополнительные расширения\модули\библиотеки в оракл?
 

tony2001

TeaM PHPClub
Shredder2003
как это ни странно, но PHP таки нужно что-то, кроме sqlplus & tnsnames.ora.
а именно - библиотеки Oracle Call Interface.
 

Shredder2003

Новичок
Oracle Call Interface я поставил,
но вот libclntsh.dll-подобного файлика нет
и c:\orant\lib папки нету
 

Shredder2003

Новичок
при установке Oracle Call Interface появляется папка
C:\orant\OCI80
и в ней
C:\orant\OCI80\INCLUDE
C:\orant\OCI80\LIB
C:\orant\OCI80\SAMPLES

но в C:\orant\OCI80 и всех вложенных вообще нет никаких dll
 
Сверху