제목 | linuxOS + nginx + PHP7 + CI 에서 WindowOS + Oracle 로 원격접속 설정할 때.. | ||
---|---|---|---|
카테고리 | CI 2, 3 | ||
글쓴이 | packesign | 작성시각 | 2019/05/21 12:35:20 |
|
|||
기존에 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
|
kaido
/
2019/05/21 13:33:41 /
추천
0
oci8 파일도 다운받아서 넣으셔야 합니다 phpinfo() 해서 oci8 드라이버가 안보이면 설치가 안되신것입니다. |
nginx+php에서 오라클 연동이 안됐습니다. ci 말고 php파일로 오라클 연결하는 구문 만들어서 테스트 해보세요.
거기서도 안되면 오라클 연동이 안된거고 되면 ci단 문제입니다.
https://arian.io/installing-nginx-with-php-fpm-on-rhel-with-oci8/