Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Oracle 11g PHP oci_connect nie działa OCIEnvNlsCreate()

Czy OCIEnvNlsCreate() nie powiodło się? Witaj w piekle...

Wiem, że wątek jest stary, ale problem nadal występuje. I zazwyczaj odpowiedzi na ten problem przekierowują na strony osób trzecich, zwykle 404.

Zacznijmy od problemu. Sam błąd jest dość ogólny. Jego dokumentacja podsumowuje "lib crashed... nie wiem dlaczego". Istnieje szeroka gama rozwiązań, w tym między innymi konfiguracja, ponowna instalacja i modlenie się o „wstaw tutaj losowe imię boga”.

Oto krótka lista najczęstszych rozwiązań:

1. Umieść zmienną w pliku .php.

    putenv("LD_LIBRARY_PATH=$newld");

where $newld is the link to your library.

2. Usuń zmienną LD_LIBRARY_PATH , jeśli istnieje (tak, tak jak pokazano w 1.), z pliku php i umieść go w swoim apache2.conf lub httpd.conf lub /etc/environment lub w innym pliku, który posiada twoja dystrybucja/wersja dla zmiennych środowiskowych. Prosty przewodnik można znaleźć tutaj lub wszędzie w Internecie. Dlaczego?

jak podano w dokumentacji instalacyjnej. Następnie uruchom ponownie Apache. Jest oparty na dystrybucji/wersji, ale najprawdopodobniej polecenie to service httpd restart .

  1. Zainstaluj ponownie oci8 . Tyle razy, ile potrzeba. Nie zmuszaj tego. Wymuszanie tylko pogarsza sprawę. Spróbuj też go skompilować (także pobierz pakiet użyj ./configure -'all the fancy commands you'll need to use' a następnie make install ).

  2. Upewnij się, że masz właściwą LD_LIBRARY_PATH . Zabawna rzecz do powiedzenia, prawda? Prawdopodobnie nie zauważyłeś, że Oracle utworzył folder client/lib/ w N różnych lokalizacjach który zawiera mniej więcej te same pliki, a jedyną różnicą między nimi jest to, że wybranie wszystkich folderów oprócz jednego spowoduje wspomniany błąd . Kontrola zdrowia psychicznego?

  3. Ponownie zainstaluj php/apache . Prawdopodobnie masz starą instalację, która powoduje problemy. Więc użyj apt-get purge php* lub yum remove php* lub cokolwiek zrobi tę samą sztuczkę dla twojej dystrybucji, będzie dobrym początkiem.

EDYTUJ Po aktualizacji PHP problem pojawił się ponownie, tym razem z innym rozwiązaniem.

  1. EDYTUJ KONFIG.SYST. Edytuj plik /etc/sysconfig/httpd. Dodaj te 2 wiersze na końcu:

    export LD_LIBRARY_PATH=/ścieżka/do.libexport ORACLE_HOME=/ścieżka/do/domu

  2. ZREZYGNUJ I PRZECZYTAJ INSTRUKCJĘ można go znaleźć tutaj .

Jeśli żadna z tych rzeczy nie pomoże, przejrzyj ścianę smutku , dla rozwiązania...



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Wyrocznia i paginacja

  2. Uzyskaj najlepsze wyniki dla każdej grupy (w Oracle)

  3. Szaleństwo wersji sterownika Oracle jdbc

  4. Usuwanie duplikatów wierszy z Oracle

  5. oracle plsql:jak przeanalizować XML i wstawić do tabeli