반응형
PHP oci_connect() TNS: 연결 식별자(ORA-12154)를 확인할 수 없습니다.
우분투 서버에서 PHP 코드를 테스트하고 있는데 "tnsping" 명령으로 오라클 데이터베이스 연결이 확인됩니다.
Used TNSNAMES adapter to resolve the alias
Attempting to contact (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.3.14)(PORT = 1521)) (CONNECT_DATA = (SERVICE_NAME = ORCL) (SID = ORCL)))
OK (10 msec)
그러나 PHP의 occi_connect 함수는 다음과 같은 경고를 표시합니다.
경고: oci_connect(): ORA-12154: TNS: 라인 62의 /usr/local/ipm5/wui/manager/123.bih에 지정된 연결 식별자를 확인할 수 없습니다.
물론 OCI8은 활성화되어 있으며(phpinfo를 통해 확인됨) 일부 환경(PATH
,ORACLE_BASE
,ORACLE_HOME
,ORACLE_SID
,TNS_ADMIN
,LD_LIBRARY_PATH
) 변수를 다음과 같이 설정합니다./etc/bash.bashrc
추천해주실 분 계신가요?무엇이 문제인지.
ORCL 대신 전체 문자열을 oci_connect에 넣을 수 있습니다.
(DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.3.14)(PORT = 1521)) (CONNECT_DATA = (SERVICE_NAME = ORCL) (SID = ORCL)))
PHP 코드:
oci_connect($username, $password, '(DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.3.14)(PORT = 1521)) (CONNECT_DATA = (SERVICE_NAME = ORCL) (SID = ORCL)))');
phpinfo() output "Environment" 부분을 확인합니다. ORACRAL_HOME, TNS_ADMIN이 없다면 php_module로 컴파일된 아파치에 대해 PHP 실행 환경에서 사용할 수 있도록 해야 합니다.
export ORACLE_HOME=/path/to/oracle_home
export TNS_ADMIN=/path/to/tns_admin
apachectl start
php-cgi 또는 php-fpm의 경우
export ORACLE_HOME=/path/to/oracle_home
export TNS_ADMIN=/path/to/tns_admin
/script/to/start/fpm
이는 연결할 수 없는 원격 데이터베이스를 사용하거나 VPN 연결에 액세스해야 하는 경우에도 발생할 수 있습니다.
언급URL : https://stackoverflow.com/questions/20345605/php-oci-connect-tnscould-not-resolve-the-connect-identifier-ora-12154
반응형
'programing' 카테고리의 다른 글
매크로에서 사용할 수 있는 트릭에는 어떤 것이 있습니까? (0) | 2023.11.07 |
---|---|
C/C++에서 OpenGL 셰이더를 위한 손쉬운 프레임워크 (0) | 2023.11.07 |
Python으로 Excel에서 병합된 셀 읽기 (0) | 2023.11.07 |
그래들을 통해 지프스터 프로젝트를 만들고 있는데, 첫 번째 프로젝트는 잘 실행되지만 두 번째 프로젝트는 예외가 있습니까? (0) | 2023.11.07 |
비주얼 스튜디오 코드로 Debug & Run Angular2 타입스크립트? (0) | 2023.11.07 |