2017-04-27 24 views
1

우분투 16.10/nginx를/php7.0/오라클 내가 PHP를 통해 오라클 databas에 연결을 시도하고OCIEnvNlsCreate는() 실패 - 확인하시기 바랍니다 ORACLE_HOME과> LD_LIBRARY_PATH

11 XE. 그리고 다음과 같은 오류가 발생합니다.

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

경고 : oci_connect() : OCIEnvNlsCreate()는 실패했습니다. 시스템에 문제 이 있습니다 - 라인에 /var/www/blah.php에서 올바른 디렉토리 (26)

경고 ORACLE_HOME 및 LD_LIBRARY_PATH가 설정되어 있는지 확인하고 포인트하십시오 : oci_connect() : 오류를하는 동안

정말 변수를 요청 라인 (26)에 ORA-01804 /var/www/blah.php에 오류 텍스트를 검색하기 위해, 그들은 비어 있습니다. 이 코드는 빈 문자열을 반환합니다.

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

그러나 phpinfo()에서 표시됩니다.

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

나는 각 파일에 환경 변수를 쓸 수 있지만,이 옵션을 선택하지 않습니다.

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"); 

어떻게해야합니까?

+0

마침내 문제를 해결 했습니까? 그렇다면 어떻게? 감사 – andcl

답변

0

우리는 같은 인프라를 해달라고하지만 난 그냥이 같은 문제를 해결 :

  • 아파치
  • CentOS7
  • PHP 5
  • 오라클 12cR1

메시지는 말한다 :

/etc/sysconfig/httpd :

는 ORACLE_HOME 및 LD_LIBRARY_PATH가 올바른 디렉토리

아파치에서 설정 및 지점되어 있는지 확인하십시오, 당신은 환경 변수를 설정할 수있는 파일이 있습니다. nginx에 대한 설정 파일이 있어야합니다.

필요한 환경 변수를 추가했습니다.

  • ORACLE_HOME이 /oracle/product/12.1.0/dbhome_1
  • 오라클 클라이언트가 /oracle/product/12.1에 설치 한 것으로 가정.0/클라이언트

추가 :

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 

또한 추가 : 난 그냥 아파치의 서비스 아파치를 다시 시작 /etc/sysconfig/httpd를 업데이트 한 후

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

를하고는했다 :

$ sudo systemctl restart httpd 

나는 그가 그것을 희망한다. lps!