리눅스에다 오라클을 설치하였는데 로컬에서 tnsping이 되질 않는군요.
리눅스 한대에서 php와 오라클이 목적인데.... 잘 안되는군요.
tnsping이 안되서 그런지 php로 된 오라클 연결 페이지를 호출하면
"Warning: _oci_open_server: ORA-12154: TNS:could not resolve service
name in
> /usr/local/apache/htdocs/dbc.php3 on line 5 "라는 에러가 나는군요.
(오라클은 거의 모르고 PHP와 연동하는게 목적임다.)
####dbc.php3######
1 <html>
2 <body>
3 <?
4 $db = "ORCL";
5 $conn = OCILogon("scott", "tiger", $db);
6
7 function read_data($conn) {
8
9 $stmt = OCIParse($conn, "select * from scott.emp");
10 OCIExecute($stmt, OCI_DEFAULT);
11
12 while (OCIFetchInto($stmt, &$column))
13 echo " < [".count($column)."] ";
14 echo $column[0]. ", ";
15 echo $column[1]. ", ";
16 echo $column[2]. ">";
17 OCIFreeStatement($stmt);
18 }
19
20 read_data($conn);
21 OCILogOff($conn);
22 ?>
23 </body>
######################################
설치환경은 wow 6.2 + apache 1.3.12 + Oracle 8.1.5 + PHP 4.02
오라클은 잘모르는데 그냥 책을 보고서 기본적인 셑팅을 했습니다.
DB는 ORCL로 생성했구요...유저와 비번은 scott/tiger
로 Demo table도 생성했고.... 오라클 DB내에서는 쿼리도 잘되고.....
phpinfo()로 환경설정을 보면 중간에 OCI8 어쩌구 저쩌구 나와있구...
위에 있는 소스를 아무리 실행할라고 해도 도무지 않되서 여기 게시판에 있
는 내용을 참조해서 오라클홈 아래 .../network/admin/ 아래다
listener.ora , tnsnames.ora , sqlnet.ora 파일을 새로 만들었습니다.
###########listener.ora ###########
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.3)(PORT = 1521))
)
)
)
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = /home/oracle/app/oracle/product/8.1.5)
(PROGRAM = extproc)
)
(SID_DESC =
(GLOBAL_DBNAME = ORCL)
(ORACLE_HOME = /home/oracle/app/oracle/product/8.1.5)
(SID_NAME = ORCL)
)
)
#####################################################
##############tnsnames.ora #################
ORCL.dba.abc.com =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.3)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = ORCL)
)
)
####################################################
############sqlnet.ora #######################
NAMES.DEFAULT_DOMAIN = dba.abc.com <-------실제 리눅스 호스트명
SQLNET.AUTHENTICATION_SERVICES= (NTS)
########이 파일은 무슨 용도인지 잘모르겠습니다.#########
위의 내용처럼 설정하고 리스너를 실행시키면 별다른 에러없이 잘떨어집니
다.
lsnrctl status해봐도 별 문제없고.....
그런데 tnsping ORCL 이나 tnsping 192.168.0.3 (이렇게 실행하는거 맞죠?)
를 실행
하면 "TNS-03505: Failed to resolve name"라는 에러 지긋지긋하게 나는군
요.
그래서 PHP에서 커넥트하질 못하는 건가요? 참고로 서버는 딱 한대입니다.
누군가는 한대에서 돌릴때는 리스너 설정이 필요없다고도 하고 누구는 해야
한다고도 하고......
뭐가 잘못된 거지요.....차라리 OS부터 새로 설치하는게 나을까요???
가르침을 주시면 정말 감사하겠습니다..........^^