sql >> Databáze >  >> RDS >> Oracle

Oracle 11g PHP oci_connect selže OCIEnvNlsCreate()

Selhala funkce OCIEnvNlsCreate()? Vítejte v pekle...

Vím, že vlákno je staré, ale problém stále přetrvává. A obvykle odpovědi na tento problém přesměrovávají na stránky třetích stran, obvykle 404s.

Začněme problémem. Samotná chyba je docela obecná. Jeho dokumentace shrnuje „lib se zhroutil...nevím proč“. Existuje široká škála řešení, mimo jiné včetně konfigurace, přeinstalace a modlení „sem vložte náhodné jméno boha“.

Zde je krátký seznam nejběžnějších řešení:

1. Vložte proměnnou do souboru .php.

    putenv("LD_LIBRARY_PATH=$newld");

where $newld is the link to your library.

2. Odeberte proměnnou LD_LIBRARY_PATH , pokud existuje (ano, tak, jak to bylo ukázáno v 1.), z vašeho php souboru a umístěte jej do svého apache2.conf nebo httpd.conf nebo /etc/environment nebo jakéhokoli souboru, který má vaše distribuce/verze pro proměnné prostředí. Jednoduchý průvodce naleznete zde nebo všude na internetu. Proč?

jak je uvedeno v instalační dokumentaci. Poté také restartujte apache. Je to založené na distribuci/verzi, ale nejpravděpodobněji je příkaz service httpd restart .

  1. Přeinstalujte oci8 . Kolikrát je potřeba. Nenuťte to. Nucení to jen zhoršuje. Zkuste jej také zkompilovat (také známý jako balíček si stáhněte pomocí ./configure -'all the fancy commands you'll need to use' a poté make install ).

  2. Ujistěte se, že máte správnou LD_LIBRARY_PATH . Vtipné to říct, že? Pravděpodobně jste si nevšimli, že Oracle vytvořil složku client/lib/ na N různých místech který obsahuje víceméně stejné soubory a jediný rozdíl mezi nimi je ten, že výběr všech těchto složek kromě jedné povede ke zmíněné chybě . Kontrola zdravého rozumu?

  3. Přeinstalujte php/apache . Je pravděpodobné, že máte nějakou starou instalaci, která způsobuje problémy. Použijte tedy apt-get purge php* nebo yum remove php* nebo cokoli, co dělá stejný trik pro vaši distribuci, bude dobrý začátek.

UPRAVIT Po upgradu PHP se problém znovu objevil, tentokrát s jiným řešením.

  1. UPRAVIT SYSCONFIG Upravte soubor /etc/sysconfig/httpd. Přidejte tyto 2 řádky na konec:

    exportovat LD_LIBRARY_PATH=/cesta/k.libexport ORACLE_HOME=/cesta/do/domov

  2. VZDEJTE SE A PŘEČTĚTE SI NÁVOD lze jej nalézt zde .

Pokud žádná z těchto věcí nepomůže, neváhejte procházet zeď smutku , pro řešení...



  1. jak získat stránkovaný výběr na slick + postgresql

  2. vytvořit dotaz, získat výsledky znovu vytvořit dotaz

  3. Pivoting dat pomocí dvou sloupců

  4. Jaký datový typ MySQL použít pro ukládání booleovských hodnot