Страница 1 из 2
Подружить Oracle и PHP
Добавлено: 05 ноя 2013, 10:38
ceskf
Добрый день. Не могу настроить связку. Скопировал Instant Client, прописал пути в Path, в опенсервере изменил path+winPath но все равно ошибка
OCIEnvNlsCreate() failed. There is something wrong with your system - please check that PATH includes the directory with Oracle Instant Client libraries in
Добавлено: 05 ноя 2013, 11:08
Максим
А после того, как вы в Windows изменили Path, вы саму программу (не сервер) перезапускали?
Добавлено: 05 ноя 2013, 12:20
ceskf
Да. перезапускал.
Добавлено спустя 52 минуты 50 секунд:
oci_client_version() - 0.0.0.0.0
Добавлено спустя 12 минут 11 секунд:
Не знаю почему но проблема решилась сменой версии ПХП с 5.3 на 5.4. Если кто знает почему так произошло ответьте.
Добавлено: 05 ноя 2013, 14:07
Максим
Расширение для 5.4. Для каждой версии php они разные.
Добавлено: 08 апр 2014, 12:58
NEGr
Добрый день.
Не стал создавать новую ветку, решил написать в этой же.
Проблема та же: oracle.
Вводные:
ОС: Windows 7
Версия сервера:4.9.0
Версия Oracle:11.1.0
Версия PHP: 5.3.27(пробовал и другие версии)
Версия Apache:2.2.26(пробовал и другие версии)
Файл oci.dll на всякий случай был скопирован в папки с php и apache.
Строка extension=php_oci8_11g.dll в настройках php раскомментирована.
В настройках "Настройка использования переменой Path" выставлено: Свой Path.
При запуске скрипта :
<table border=1>
<tr>
<td><b>Номер кредита</b></td>
<td><b>ФИО</b></td>
</tr>
<?
$c=OCILogon("xxx", "xxx", "xxx");
$s = OCIParse($c, "select contract_nb, last_nm||' '||first_nm||' '||middle_nm from bpd.MW_DM_CUSTOMER_INFO where rownum<100");
OCIExecute($s);
while ($row = oci_fetch_array($s,OCI_NUM))
{
?>
<tr>
<td><?print $row[0];?></td>
<td><?print $row[1];?></td>
</tr>
<?
}
OCILogoff($c);
?>
</table>
выдает ошибку : Warning: ocilogon() [function.ocilogon]: OCIEnvNlsCreate() failed. There is something wrong with your system - please check that PATH includes the directory with Oracle Instant Client libraries in C:\OpenServer\domains\mylocalhost\BPD\oracle.php on line 7
При изменении в настройках "Настройка использования переменой Path" на Свой Path+Win выдает сообщение о завершении работы программы Apache HTTP Server. Хотя сам сервер остается в рабочем состоянии.
В Denver все работает без ошибок(хот ядо этого тоже пришлось поплясать с версией модуля oracle для php).
Информация из php_info при использовании настройки только Свой Path:
oci8
OCI8 Support enabled
Version 1.4.9
Revision $Id: 44bfa713983a99b3e59477f6532e5fb51b6dee94 $
Active Persistent Connections 0
Active Connections 0
Oracle Run-time Client Library Version 0.0.0.0.0
Oracle Instant Client Version 11.2
Temporary Lob support enabled
Collections support enabled
Directive Local Value Master Value
oci8.connection_class no value no value
oci8.default_prefetch 100 100
oci8.events Off Off
oci8.max_persistent -1 -1
oci8.old_oci_close_semantics Off Off
oci8.persistent_timeout -1 -1
oci8.ping_interval 60 60
oci8.privileged_connect Off Off
oci8.statement_cache_size 20 20
при использовании Свой Path +Win следующая:
oci8
OCI8 Support enabled
Version 1.4.9
Revision $Id: 44bfa713983a99b3e59477f6532e5fb51b6dee94 $
Active Persistent Connections 0
Active Connections 0
Oracle Run-time Client Library Version 11.1.0.6.0
Oracle Instant Client Version 11.2
Temporary Lob support enabled
Collections support enabled
Directive Local Value Master Value
oci8.connection_class no value no value
oci8.default_prefetch 100 100
oci8.events Off Off
oci8.max_persistent -1 -1
oci8.old_oci_close_semantics Off Off
oci8.persistent_timeout -1 -1
oci8.ping_interval 60 60
oci8.privileged_connect Off Off
oci8.statement_cache_size 20 20
Что я делаю не так????
Добавлено: 21 май 2014, 20:39
yarik.lev
Всем привет
В продолжение подтверждаю такую же ситуацию!
Warning: oci_connect(): OCIEnvNlsCreate() failed. There is something wrong with your system - please check that PATH includes the directory with Oracle Instant Client libraries in C:\OpenServer\domains\work.kl\test.php on line 16
вот данные с пхп инфо()
OCI8 Support enabled
Version 1.4.10
Revision $Id: cdb1302d3784cf3ece95ed7e5f70998212164e52 $
Active Persistent Connections 0
Active Connections 0
Oracle Run-time Client Library Version 0.0.0.0.0
Oracle Instant Client Version 10.2
Temporary Lob support enabled
Collections support enabled
А вот то, что меня смутило, может здесь ошибка?:
cscript /nologo configure.js "--enable-snapshot-build" "--disable-isapi" "--enable-debug-pack" "--without-mssql" "--without-pdo-mssql" "--without-pi3web" "--with-pdo-oci=C:\php-sdk\oracle\instantclient10\sdk,shared" "--with-oci8=C:\php-sdk\oracle\instantclient10\sdk,shared" "--with-oci8-11g=C:\php-sdk\oracle\instantclient11\sdk,shared" "--enable-object-out-dir=../obj/" "--enable-com-dotnet=shared" "--with-mcrypt=static" "--disable-static-analyze" "--with-pgo"
Клиент перекопировал везде, где только можна
ХЕЛП МИ!
Re: Подружить Oracle и PHP
Добавлено: 24 дек 2015, 12:30
Orion55
Оживлю тему.
Как всё-таки "скрестить" openserver, php и oracle? Все симптомы описаны выше.
По одной включаю библиотеки
extension=php_oci8.dll
extension=php_oci8_11g.dll
extension=php_pdo_oci.dll
При подключении любой ругается то на oci.dll, то на php.dll
Не запускается никак...
Re: Подружить Oracle и PHP
Добавлено: 24 дек 2015, 13:28
yarik.lev
Orion55 писал(а):Оживлю тему.
Как всё-таки "скрестить" openserver, php и oracle? Все симптомы описаны выше.
По одной включаю библиотеки
extension=php_oci8.dll
extension=php_oci8_11g.dll
extension=php_pdo_oci.dll
При подключении любой ругается то на oci.dll, то на php.dll
Не запускается никак...
А сходи ка в папку с самой пыхой(в мом случае это C:\OpenServer\modules\php\PHP-5.4) и посмотри какой там есть файлик
php.dll или
php5ts.dll?
Re: Подружить Oracle и PHP
Добавлено: 08 янв 2016, 18:45
Orion55
Расскажу более детально.
Есть база Oracle 10.2.0.5.0 находящаяся по адресу 192.168.1.10
В папку c:\instantclient_12_1_2 установлен Oracle Instant Client x32
Прописаны переменные среды
NLS_LANG=AMERICAN_AMERICA.AL32UTF8
ORACLE_HOME=c:\instantclient_12_1_2
PATH=…;c:\instantclient_12_1_2
TNS_ADMIN=c:\instantclient_12_1_2
В папке c:\instantclient_12_1_2 находится файл tnsnames.ora следующего содержания
ORCL =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.10)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = orcl)
)
)
Программа PLSQL Developer с базой Oracle соединяется без проблем.
Но необходимо получить доступ к базе из php.
Установлен OpenServer последней версии.
Установлен в качестве рабочих PHP 5.6 и Apache 2.4
Для подключения к Oracle раскомментировал в файле php.ini строку «extension=php_pdo_oci.dll»
Однако, при вводе в консоле команды «php -ri oci8»
Warning: PHP Startup: Unable to load dynamic library 'c:/openserver/modules/php/PHP-5.6/ext/php_pdo_oci.dll' - Не найден указанный модуль. in Unknown on line 0
Модуль в этом каталоге есть.
Аналогично при extension=php_oci8_12c.dll
Warning: PHP Startup: Unable to load dynamic library 'c:/openserver/modules/php/PHP-5.6/ext/php_oci8_12c.dll' - Не найден указанный модуль.
Модуль также присутствует.
Как подключиться из php к базе Oracle через pdo?
Re: Подружить Oracle и PHP
Добавлено: 08 янв 2016, 20:03
yarik.lev
Orion55 писал(а):Расскажу более детально.
Есть база Oracle 10.2.0.5.0 находящаяся по адресу 192.168.1.10
В папку c:\instantclient_12_1_2 установлен Oracle Instant Client x32
Прописаны переменные среды
NLS_LANG=AMERICAN_AMERICA.AL32UTF8
ORACLE_HOME=c:\instantclient_12_1_2
PATH=…;c:\instantclient_12_1_2
TNS_ADMIN=c:\instantclient_12_1_2
В папке c:\instantclient_12_1_2 находится файл tnsnames.ora следующего содержания
ORCL =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.10)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = orcl)
)
)
Программа PLSQL Developer с базой Oracle соединяется без проблем.
Но необходимо получить доступ к базе из php.
Установлен OpenServer последней версии.
Установлен в качестве рабочих PHP 5.6 и Apache 2.4
Для подключения к Oracle раскомментировал в файле php.ini строку «extension=php_pdo_oci.dll»
Однако, при вводе в консоле команды «php -ri oci8»
Warning: PHP Startup: Unable to load dynamic library 'c:/openserver/modules/php/PHP-5.6/ext/php_pdo_oci.dll' - Не найден указанный модуль. in Unknown on line 0
Модуль в этом каталоге есть.
Аналогично при extension=php_oci8_12c.dll
Warning: PHP Startup: Unable to load dynamic library 'c:/openserver/modules/php/PHP-5.6/ext/php_oci8_12c.dll' - Не найден указанный модуль.
Модуль также присутствует.
Как подключиться из php к базе Oracle через pdo?
Проверь, есть ли это в пазе:"C:\OpenServer\modules\php\PHP-5.6;", возможно поможет, еще есть вариант что длл имеет определенные зависимости, тоесть для запуска ей чегото не хватает, oci.dll например. Все эти зависимости можно пересмотерть с помощью утилитки
http://www.dependencywalker.com/