CI 묻고 답하기

제목 linuxOS + nginx + PHP7 + CI 에서 WindowOS + Oracle 로 원격접속 설정할 때..
카테고리 CI 2, 3
글쓴이 packesign 작성시각 2019/05/21 12:35:20
댓글 : 2 추천 : 0 스크랩 : 0 조회수 : 18560   RSS

기존에 CI 를 이용해서 개발했을 때는 localhost 에 mysql / mssql 등으로 연결해서

프로젝트들을 진행해왔습니다. 그런데 이번에는 제목에서 언급한대로

 

DB 환경은 WindowOS + Oracle DB 이고

DEV 환경은 linuxOS + nginx Server 입니다.

 

Oracle DB 하고만 원격연동하면 되는거라 한국사용자포럼 과 구글링을 이용했는데

계속해서 에러메세지만 출력됩니다..ㅠㅠ

 

https://www.cikorea.net/bbs/view/source?idx=7486

위 페이지를 참조했습니다. nginx 환경이라 그런지는 모르겠는데 php.ini 에

extension=php_oci8.dll / extension=php_oracle.dll 와 같은 언급이 없어서

직접 써 넣었습니다. 이후 nginx 를 재시작했습니다.

/application/config/database.php 를 수정한 로직은 아래와 같습니다.

 

$active_group = 'oracle';

$query_builder = TRUE;

 

$dbhost = "xxx.xxx.xxx.xxx";     // IP of my host database

$sidname= "XXXXX";     // SID of my host database

$dbport = "1521";     // Oracle port

$dbname= "XXXXXXXXX";     //My database Name

$dbConnString = "

(DESCRIPTION =

   (ADDRESS_LIST =

      (ADDRESS = (PROTOCOL = TCP)(HOST = ".$dbhost.")(PORT = ".$dbport."))

   )

   (CONNECT_DATA =

      (SID = ".$sidname.")

      (SERVICE_NAME = ".$dbname.")

   )

)";

$db['oracle']['hostname'] = $dbConnString;

$db['oracle']['username'] = "XXXX";     // my oracle username

$db['oracle']['password'] = "XXXX";     // my oracle password

$db['oracle']['database'] = "XXXXXXXXX";     //My database Name

$db['oracle']['dbdriver'] = "oci8";

$db['oracle']['dbprefix'] = "";

$db['oracle']['pconnect'] = TRUE;

$db['oracle']['db_debug'] = TRUE;

$db['oracle']['cache_on'] = FALSE;

$db['oracle']['cachedir'] = "";

$db['oracle']['char_set'] = "utf8";

$db['oracle']['dbcollat'] = "utf8_general_ci";

 

참조했던 페이지 내용중에서 mysql DB 정보가 없어서 전부 주석처리해서

database.php 소스 내에서 실제 로직은 상기사항이 전부입니다.

$active_group 을 'default' 로 정의하면

You have specified an invalid database connection group (default) in your config/database.php file.

위와 같은 에러가 출력되길래 $db 객체의 키값인 'oracle' 로 수정했더니

 

A PHP Error was encountered

Severity: Notice

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

Filename: database/DB.php

Line Number: 201

Backtrace:

File: /ROOT_DIR/application/controllers/Tutorials.php

Line: 11

Function: database

File: /ROOT_DIR/index.php

Line: 315

Function: require_once

--------------------------------------------------------------------------------------------------------------------------------------

An uncaught Exception was encountered

Type: Error

Message: Call to undefined function oci_pconnect()

Filename: /ROOT_DIR/system/database/drivers/oci8/oci8_driver.php

Line Number: 238

Backtrace:

File: /ROOT_DIR/application/controllers/Tutorials.php

Line: 11

Function: database

File: /ROOT_DIR/index.php

Line: 315

Function: require_once

--------------------------------------------------------------------------------------------------------------------------------------

A PHP Error was encountered

Severity: Core Warning

Message: PHP Startup: Unable to load dynamic library '/usr/lib64/php/modules/php_oracle.dll' - /usr/lib64/php/modules/php_oracle.dll: cannot open shared object file: No such file or directory

Filename: Unknown

Line Number: 0

Backtrace:

 

위처럼 3가지 에러가 출력됩니다.

현재도 포럼내 여러가지 글들을 참고하면서 수정중인데 동일한 현상이 계속 발생중입니다..

참고로 Tutorials.php 는 제가 테스트를 위해서 추가한 페이지입니다.

CI 의 system 쪽 수정이라던가 아니면 nginx 서버세팅에서의 수정이 필요한 걸까요?

nginx 와 oracle 은 처음이다보니까 막막하네요ㅠㅠ

고수 여러분들의 답변 부탁드리겠습니다!

관련링크 http://nginx
http://oracle
http://원격연동
 다음글 파일 업로드를 upload 라이브러리를 사용하면서, v... (5)
 이전글 ci3 에 보안 취약점이 있을가요? (2)

댓글

변종원(웅파) / 2019/05/21 12:40:14 / 추천 0

nginx+php에서 오라클 연동이 안됐습니다. ci 말고 php파일로 오라클 연결하는 구문 만들어서 테스트 해보세요.

거기서도 안되면 오라클 연동이 안된거고 되면 ci단 문제입니다.

https://arian.io/installing-nginx-with-php-fpm-on-rhel-with-oci8/

kaido / 2019/05/21 13:33:41 / 추천 0

oci8 파일도 다운받아서 넣으셔야 합니다

phpinfo() 해서 oci8 드라이버가 안보이면 설치가 안되신것입니다.