Страница 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/