CI 묻고 답하기

제목 ci 오라클 연동관련하여 질문올립니다.
카테고리 CI 2, 3
글쓴이 정수리 작성시각 2018/12/04 11:19:45
댓글 : 6 추천 : 0 스크랩 : 0 조회수 : 19740   RSS

mysql로 연결하는 것을

 

oracle로 연동해야 된다고하여 변경해서 테스트를 해볼려고 하는데

 

생각처럼 잘되지 않네요.

 

20번이라는 테스트환경에서 25번에 있는 oracleDB에 연동하여 테스트를 할려고 합니다.

 

http://www.codeigniter-kr.org/bbs/view/source?idx=7486

 

이곳을 참조하여 

 

php.ini에서 

 

extension=php_oci8.dll(주석풀었습니다.)

extension=php_oracle.dll(php.ini에 없더라구요)

 

아파치를 재시작 후 

$config['hostname'] = 'xxx.xx.xx25';
$config['username'] = '패스워드';
$config['password'] = '아이디';
$config['database'] = '';
$config['dbdriver'] = 'oci8';
$config['dbprefix'] = '';
$config['pconnect'] = TRUE;
$config['db_debug'] = TRUE;
$config['cache_on'] = FALSE;
$config['cachedir'] = '';
$config['char_set'] = 'utf8';
$config['dbcollat'] = 'utf8_general_ci';
$config['swap_pre'] = '';
$config['autoinit'] = TRUE;
$config['stricton'] = FALSE;

설정을 한 후 테스트 해보았지만

Message: Use of undefined constant OCI_COMMIT_ON_SUCCESS - assumed 'OCI_COMMIT_ON_SUCCESS'

Filename: database/DB.php

 

이런 에러가 출력이 됩니다.

 

검색을 해본 후 

 

$config['hostname'] = 'xxx.xx.xx25'; 이부분을

 

$config['hostname'] = '(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=주소)(PORT=1521))(CONNECT_DATA=(SID=디비명)))';

변경한후 테스트해보아도 안되네요 ㅜㅜ

 

저런에러가 출력되는 이유가 어떤 것이 원인 일까요"?

 다음글 HTTP2 를 ubuntu에 적용했습니다 (1)
 이전글 로그인시 비밀번호 비교중 문제(해결후 방법 첨부) (3)

댓글

빛그림 / 2018/12/04 11:53:56 / 추천 0
php.ini에 dll 화일을 설정하는 것은 apm이 윈도우 환경일때 이고, 리눅스 환경일때는 so 확장자의 화일을 설정해야 하는데 dll화일을 설정하셨다면, 웹서버의 OS가 윈도우가 맞겠지요?
정수리 / 2018/12/05 09:43:53 / 추천 0

@빛그림 

답변 감사합니다. 출장때문에 이제 확인했네요 ㅜㅜ

웹서버 os는 리눅스 입니다;;

변종원(웅파) / 2018/12/05 11:11:45 / 추천 0
정수리/ 리눅스이면 빛그림님 말씀처럼 확장자가 so인 파일로 설정하셔야 합니다.
정수리 / 2018/12/05 13:27:56 / 추천 0

@변종원

답변감사합니다.

php.ini를 확인해보니 

;extension =php_oci8.dll 이부분만 있어서

extension=oci8.so 입력해준후 아파치를 재실행하여 테스트해보았지만

똑같은 오류가 발생합니다,

서버내에 oci8 설치가 안되어 있어서 그런것 같아 그런것 같네요.

그래서 서버팀에 말씀드리니

원격으로 연결하는데 설치할 필요가 있냐고 말씀하시더라구요;;

제가 아직 실력이 부족해서인지 이해가 안되더라구요

개발A서버에서 B서버있는 오라클에 연결할려면

그래도 A서버에 오라클 연동에 필요한 관련 파일(oci8.so)을 설치해야 되지 않나요?

kaido / 2018/12/05 14:23:02 / 추천 0

네 호출하는 A서버에서 oci8 이 필요합니다.

oci8은 오라클에서 만든 php에서 오라클을 호출하기 위해 만든 확장 파일 입니다.

oci8 아니면 pdo 로도 호출은 됩니다만 pdo는 pconnect가 안되어서 퍼포먼스 아작 납니다. [대략 +1초 정도 추가됨]

NZY / 2018/12/14 13:40:22 / 추천 0

1. 리눅스에 oci8.so 설치하는 방법은 아래 링크에서 확인하시면 됩니다.

http://ellordnet.tistory.com/161?category=126535