Логотип   Простое и понятное управление
  Уникальные возможности по настройке
  Open Server скачали уже 1 022 197 раз!

Форум

Добро пожаловать, Гость!

Подружить Oracle и PHP

Обсуждение общих вопросов связанных с программой
ceskf
Сообщения: 2
C нами: 3 года 1 мес

Непрочитанное сообщение ceskf » 05 ноя 2013, 10:38

Добрый день. Не могу настроить связку. Скопировал 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

Аватара пользователя
Максим
Сообщения: 4878
C нами: 5 лет 11 мес
Контакты:

Непрочитанное сообщение Максим » 05 ноя 2013, 11:08

А после того, как вы в Windows изменили Path, вы саму программу (не сервер) перезапускали?

ceskf
Сообщения: 2
C нами: 3 года 1 мес

Непрочитанное сообщение ceskf » 05 ноя 2013, 12:20

Да. перезапускал.

Добавлено спустя 52 минуты 50 секунд:
oci_client_version() - 0.0.0.0.0

Добавлено спустя 12 минут 11 секунд:
Не знаю почему но проблема решилась сменой версии ПХП с 5.3 на 5.4. Если кто знает почему так произошло ответьте.

Аватара пользователя
Максим
Сообщения: 4878
C нами: 5 лет 11 мес
Контакты:

Непрочитанное сообщение Максим » 05 ноя 2013, 14:07

Расширение для 5.4. Для каждой версии php они разные.

NEGr
Сообщения: 12
C нами: 2 года 9 мес

Непрочитанное сообщение NEGr » 08 апр 2014, 12:58

Добрый день.
Не стал создавать новую ветку, решил написать в этой же.

Проблема та же: 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


Что я делаю не так????

yarik.lev
Сообщения: 4
C нами: 2 года 6 мес

Непрочитанное сообщение yarik.lev » 21 май 2014, 20:39

Всем привет
В продолжение подтверждаю такую же ситуацию!

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"

Клиент перекопировал везде, где только можна
ХЕЛП МИ!

Orion55
Сообщения: 7
C нами: 11 мес 17 дней

Непрочитанное сообщение Orion55 » 24 дек 2015, 12:30

Оживлю тему.
Как всё-таки "скрестить" openserver, php и oracle? Все симптомы описаны выше.

По одной включаю библиотеки
extension=php_oci8.dll
extension=php_oci8_11g.dll
extension=php_pdo_oci.dll

При подключении любой ругается то на oci.dll, то на php.dll
Не запускается никак... :-(

yarik.lev
Сообщения: 4
C нами: 2 года 6 мес

Непрочитанное сообщение yarik.lev » 24 дек 2015, 13:28

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?

Orion55
Сообщения: 7
C нами: 11 мес 17 дней

Непрочитанное сообщение Orion55 » 08 янв 2016, 18:45

Расскажу более детально.

Есть база 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?

yarik.lev
Сообщения: 4
C нами: 2 года 6 мес

Непрочитанное сообщение yarik.lev » 08 янв 2016, 20:03

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/


Вернуться в «Обсуждение Open Server»

Кто сейчас на конференции

Сейчас этот форум просматривают: Yahoo [Bot] и 1 гость