실은 1원짜리 팁도 안되는건데..
mysql 잘쓰다가 회사서버의 DB를 웹에서 불러올 일이 있어 자료를
찾았는데 없더군여...
혹 도움될까 해서 올립니다.. 걍 참고만 하세요..
1. 저의 환경...
- 사무실에서 사용하는 desktop (350Mhz,64MB,3.6G HDD, NIC 2장)
- redat계열(allix linux ?)
- 외부에서 로칼IP로 access하기 위하여 NIC LOCAL setup
- oracle 8.1.6.1 중에서 net8부분만 인스톨
- 메인서버는 로칼IP에 물려있습니다
오라클설치후
vi $ORACLE_HOME/network/admin/tnsnames.ora
ORCL723 =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = tcp)(HOST = 192.9.201.201)(PORT = 1521))
)
(CONNECT_DATA =
(SID=ORCL)
)
)
vi $ORACLE_HOME/network/admin/listener.ora
STARTUP_WAIT_TIME_LISTENER = 0
LISTENER =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = tcp)(HOST = 리눅스의 외부IP)(PORT = 1521))
(ADDRESS = (PROTOCOL = tcp)(HOST = 127.0.0.1)(PORT = 1523))
)
CONNECT_TIMEOUT_LISTENER = 10
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = ORCL )
(ORACLE_HOME = /u01/oracle8)
)
)
TRACE_LEVEL_LISTENER = OFF
# PASSWORD_LISTENER = (41923E287A1E5C90)
2. PHP 설치시 compile option에다가
--with-oci8=오라클이 설치된 홈디렉터리
--server-uid=id
--server-gid=오라클의 group명
추가해 주시구 인스톨하세요..
아파치 설치하시구여..(생략)
3. 위 config option에서 준 --server-uid=id의 id계정을 만듭니다.
가급적이면 nobody 를 지워버리구..
uid/gid를 맞춰줍니다.
/etc/passwd에서 id계정은 로그인 할 수 없도록 하시구요..
( not2b:x:500:99::/home/not2b:/bin/false 이런식으로...)
/etc/group에서 id그룹을 oracle의 그룹과 같이해주시구..
id 계정 로그인시 홈디렉터리의 .bashrc에다가
export ORACLE_HOME=/u01/oracle8
export ORACLE_SID=ORCL
export NLS_LANG=AMERICAN_AMERICA.KO16KSC5601
export TNS_ADMIN=$ORACLE_HOME/network/admin
export TWO_TASK=ORCL723
export ORA_CLIENT_LIB=shared
이렇게 넣어주시구여..
4. 아파치의 user nobody , group #-1 부분을
user id, group 오라클user의 group 이름으로 주세요.
5. 아파치 startup 시키구여
오라클 유저에서
lsnrctl start 하세여..
(저의 경우 리눅이가 gateway역활만 하므로 db는 startup
하지 않습니다. )
웹이 실행가능한 디렉토리에서
vi oratest.php
<?
$conn = ocilogon("scott","tiger","orcl723"); /* listerner 값그대로*/
if ($conn)
{
print "ok connected";
print "DB verson is " . ociserverversion($conn);
ocilogoff($con);
}
else
print "db connect error : " . $conn;
?>
http://myweb/oratest.php
ok connected
DB verson is Oracle7 Server Release 7.2.3.0.0 -
Production Release With the parallel query option
PL/SQL Release 2.2.3.0.0 - Production
요렇게 웹브라우저에 출력되면 성공이져...
(메인서버의 오라클이 7.2.3이라서리...리눅이는 8.1.6.1 이구여..)
허접한 팁이었습니다만....혹시 읽어보시구...
의문사항이나 수정할 부분이 있으시면
멜이나 문답게시판에 올려주세요..
--
@~@