프로그램 개발서

[코드이그나이터] 개발,시험,운영 환경 구분하는 ENVIRONMENT 설정 본문

Web

[코드이그나이터] 개발,시험,운영 환경 구분하는 ENVIRONMENT 설정

rairen 2020. 3. 6. 10:38

코드이그나이터에는 개발환경, 시험환경, 운영환경을 구분하기 위한 상수가 존재합니다.

루트 경로에 존재하는 index.php에서 ENVIRONMENT 명칭으로 지정이 되어있습니다.

해당 값은 서버 변수의 CI_ENV 값을 가져와서 저장을 하는데 없으면 development로 기본값이 지정되도록 작성되어있습니다.

 

이제 여기서 CI_ENV값을 지정하는 작업을 할 겁니다.

 

1. 코드이그나이터 설치

우선 첫번째로는 코드이그나이터를 프로젝트에 설치합니다.

 

2. .htaccess파일 생성

URL과 파일간의 경로 찾아가는 것을 문제를 위해서 생성하는 것도 있지만

이번에 설명하는 것은 .htaccess에서 설정하므로 필수적으로 생성해주서야 합니다.

 

.htaccess파일을 생성하였다면 해당파일에 코드를 작성하면됩니다.

내용은 아래와 같습니다.

<IfModule mod_rewrite.c>
 RewriteEngine On
 #RewriteBase /
 RewriteCond $1 !^(index\.php|assets|data|database|robots\.txt)
 RewriteCond %{REQUEST_FILENAME} !-f
 RewriteCond %{REQUEST_FILENAME} !-d
 RewriteRule ^(.*)$ /index.php/$1 [L]
</IfModule>

# CI 환경변수 (development, testing, production)
# Host가 .test로 끝날 경우 개발
# Host가 .test.com로 끝날 경우 테스트
SetEnvIfNoCase Host \.test CI_ENV=development
SetEnvIfNoCase Host \.test.com CI_ENV=testing
SetEnvIfNoCase Host \.[도메인] CI_ENV=production

우선 mod_rewrite.c는 경로 재작성을 위한 모듈을 실행하는 것이므로 넘어가겠습니다.

 

중요한것은 그 아래에 작성한 SetEnvIfNoCase입니다.

Host가 .test로 끝난다고 하면 CI_ENV=development를 가지게 됩니다.

하지만 test.com으로 끝난다고 하면 CI_ENV=testing을 가지게 되지요.

실제로 홈페이지 운영할 도메인을 지정하여 CI_ENV=production 값을 지정하면 코드이그나이터는 운영하는 값에 맞추어 동작하게 됩니다.

 

반응형