Oracle
 sql >> база данни >  >> RDS >> Oracle

Oracle 11g PHP oci_connect се проваля OCIEnvNlsCreate()

Имате ли OCIEnvNlsCreate() неуспех? Добре дошли в ада...

Знам, че темата е стара, но проблема все още е налице. И обикновено отговорите на този проблем пренасочват към сайтове на трети страни, обикновено 404s .

Да започнем с проблема. Самата грешка е доста обща. Неговата документация обобщава до "lib се срина...не знам защо". Има широк набор от решения, включително, но не само, конфигуриране, преинсталиране и молба за „вмъкване на случайно име на бог тук“.

Ето кратък списък с най-често срещаните решения:

1. Поставете променливата във вашия .php файл.

    putenv("LD_LIBRARY_PATH=$newld");

where $newld is the link to your library.

2. Премахнете променливата LD_LIBRARY_PATH , ако съществува (да, както беше показано в 1.), от вашия php файл и го поставете във вашия apache2.conf или httpd.conf или /etc/environment или какъвто и да е файл, който вашата дистрибуция/версия има за променливите на средата. Лесно ръководство може да намерите тук или навсякъде в интернет. Защо?

както е посочено в документите за инсталиране. Също така рестартирайте Apache след това. Базира се на разпространение/версия, но най-вероятно командата е service httpd restart .

  1. Преинсталирайте oci8 . Колкото пъти е нужно. Не го насилвайте. Насилването само го влошава. Също така опитайте да го компилирате (известен още като изтегляне на пакета, използвайте ./configure -'all the fancy commands you'll need to use' и след това make install ).

  2. Уверете се, че имате правилния LD_LIBRARY_PATH . Смешно нещо, нали? Вероятно не сте забелязали, че Oracle създаде папката client/lib/ в N различни местоположения който съдържа повече или по-малко същите файлове и единствената разлика между тях е, че избирането на всички освен една от тези папки ще доведе до споменатата грешка . Здравна проверка?

  3. Преинсталирайте php/apache . Вероятно сте имали стара инсталация, която създава проблеми. Затова използвайте apt-get purge php* или yum remove php* или каквото и да прави същия трик за вашето разпространение, ще бъде добро начало.

РЕДАКТИРАНЕ След надстройката на PHP проблемът се появи отново, този път с различно решение.

  1. РЕДАКТИРАНЕ НА SYSCONFIG Редактирайте файла /etc/sysconfig/httpd. Добавете тези 2 реда в края:

    експортиране LD_LIBRARY_PATH=/path/to.libexport ORACLE_HOME=/path/to/home

  2. ОТКАЖЕТЕ СЕ И ПРОЧЕТЕТЕ РЪКОВОДСТВОТО може да се намери тук .

Ако нито едно от тези неща не помогне, не се колебайте да разгледате стената на скръбта , за решение...



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Извлечете различни стойности с LISTAGG в Oracle 12C

  2. Как да намерите най-припокриващия се период от време с периоди от време

  3. Има ли начин да се създаде автоматично увеличаващ се първичен ключ на Guid в база данни на Oracle?

  4. Колоната се актуализира въз основа на предишен запис

  5. ORA 01400 и ORA 02296:Не може да се вмъкне нула или да се променят свойствата на добавената колона на NOT NULL