2017-04-27 10 views
1

ubuntu 16.10/nginx/php7.0/oracle 11 xeOCIEnvNlsCreate() fehlgeschlagen - überprüfen Sie bitte, dass ORACLE_HOME und> LD_LIBRARY_PATH

Ich versuche, auf die Oracle databas über PHP zu verbinden. Und ich bekomme folgende Fehler.

$conn = oci_connect('login', 'pass', 'localhost/xe'); 

Warning: oci_connect(): OCIEnvNlsCreate() fehlgeschlagen. Es ist etwas falsch mit Ihrem System - überprüfen Sie bitte, dass ORACLE_HOME und LD_LIBRARY_PATH gesetzt und zeigen Sie auf die richtigen Verzeichnisse in /var/www/blah.php auf der Leitung 26

Warnung: oci_connect(): Fehler beim Versuch, Text für Fehler ORA-01804 in /var/www/blah.php am 26. Zeile abzurufen

Wirklich Variablen verlangen, werden sie leer sein. Dieser Code gibt eine leere Zeichenfolge zurück.

$test = getenv('LD_LIBRARY_PATH')." ".getenv('ORACLE_HOME'); 
print ("$test"); 

Aber in phpinfo() werden sie angezeigt.

http://img.radiokot.ru/files/21274/medium/19bdtra7xs.PNG

kann ich Umgebungsvariablen für jede Datei schreiben, aber das ist keine Option.

putenv("ORACLE_HOME=/u01/app/oracle/product/11.2.0/xe"); 
putenv("LD_LIBRARY_PATH=-Wl,-rpath,/u01/app/oracle/product/11.2.0/xe/lib -L/u01/app/oracle/product/11.2.0/xe/lib -lclntsh"); 

Was kann ich tun?

+0

Haben Sie das Problem endlich gelöst? In diesem Fall, wie? Vielen Dank – andcl

Antwort

0

Wir haben nicht die gleiche Infrastruktur haben, aber ich gelöst gerade das gleiche Problem in:

  • Apache
  • CentOS7
  • PHP 5
  • Oracle 12cR1

Die Meldung sagt:

bitte

prüfen, ob ORACLE_HOME und LD_LIBRARY_PATH gesetzt und zeigen Sie auf die richtigen Verzeichnisse

In Apache gibt es eine Datei, in der Sie die Umgebungsvariable einstellen: /etc/sysconfig/httpd. Es muss eine Konfigurationsdatei für nginx geben.

Ich habe die erforderlichen Umgebungsvariablen hinzugefügt. Unter der Annahme, dass

  • ORACLE_HOME /oracle/product/12.1.0/dbhome_1
  • Oracle-Client installiert wurde unter /oracle/product/12.1 ist.0/Client

Anzahl:

ORACLE_HOME=/oracle/product/12.1.0/dbhome_1 
LD_LIBRARY_PATH=/oracle/product/12.1.0/dbhome_1/lib:/oracle/product/12.1.0/dbhome_1/network/lib:/oracle/product/12.1.0/client/lib 

Ich habe auch:

TNS_ADMIN=/oracle/product/12.1.0/dbhome_1/network/admin 
ORACLE_SID=<your sid> 

Nach /etc/sysconfig/httpd Aktualisierung ich Apache Service httpd gerade neu gestartet und das war es:

$ sudo systemctl restart httpd 

Ich hoffe es lps!

Verwandte Themen