코드이그나이터 기본 설정

2015. 12. 7. 13:30Programing/Mobile App _Web

코드이그나이터 설정

코드이그나이터의 기본 설정파일은 /aplication/config 내부에 있습니다.

config.php

먼저 config.php 파일을 설정해보도록 해보겠습니다. XSS와 CSRF 관련한 보안 설정도 있기 때문에 반드시 설정을 꼼꼼히 확인해야 하겠습니다.

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
//config.php 파일에 직접적으로 접근하는것을 방지합니다.

$config['base_url'] = 'http://www.example.com/';
//사이트의 기본 url을 지정합니다. 마지막 부분의 백슬래시도 써야하는것에 유의합니다.
//공란으로 두면 자동으로 인식한다고 합니다.

$config['index_page'] = '';
//index.php파일의 이름입니다. 보통 rewrite하기 때문에 공란으로 둡니다.

$config['uri_protocol'] = 'AUTO';
$config['url_suffix'] = '';
$config['language'] = 'english';
//기본 설정으로 둡니다.

$config['charset'] = 'UTF-8';
//반드시 euc-kr을 써야만 하는 경우가 아니라면 그대로 둡니다.

$config['enable_hooks'] = FALSE;
//코드이그나이터의 코어를 건드릴 때 사용합니다.

$config['subclass_prefix'] = 'MY_';
//코드이그나이터에서 사용자가 작성한 클래스에 붙는 접두사입니다.

$config['permitted_uri_chars'] = 'a-z 0-9~%.:_\-';
//url에 사용할 문자의 범위입니다.

$config['allow_get_array'] = TRUE;

$config['enable_query_strings'] = FALSE;
//기존의 쿼리문을 사용할지 설정합니다.

$config['controller_trigger'] = 'c';
$config['function_trigger'] = 'm';
$config['directory_trigger'] = 'd';
//기본설정 그대로 사용합니다.

$config['log_threshold'] = 0;
/*로그설정입니다. 0부터 4까지 있습니다. 로그의 양이 많으므로 사용시 참고합니다.
  0 = Disables logging, Error logging TURNED OFF
  1 = Error Messages (including PHP errors)
  2 = Debug Messages
  3 = Informational Messages
  4 = All Messages
*/

$config['log_path'] = '';
//공란으로 둘 시 application/logs/ 에 로그파일이 기록됩니다.

$config['log_date_format'] = 'Y-m-d H:i:s';
//로그 기록시 날짜 포맷을 정합니다.

$config['cache_path'] = '';
//코드이그나이터는 캐싱기능을 지원하는데 이 때 캐시가 저장될 디렉토리입니다.
//공란으로 둘 시 application/cache/ 에 저장됩니다.

$config['encryption_key'] = '';
//암호화 기능 사용시 사용되는 키입니다. 반드시 설정해주세요.

$config['sess_cookie_name'] = 'ci_session';
//세션 쿠키의 이름을 설정합니다.

$config['sess_expiration'] = 3600;
//세션 쿠키의 만료시간을 초단위로 지정합니다.

$config['sess_expire_on_close'] = TRUE;
//창을 닫을 때 만료되도록 설정합니다.

$config['sess_encrypt_cookie'] = TRUE;
//쿠키에 기록되는 정보를 암호화 할지 설정합니다. 반드시 설정해줍시다.

$config['sess_use_database'] = TRUE;
//세션을 쿠키뿐만 아니라 DB를 이용해서 관리하도록 합니다.
//쿠키는 변조 가능성이 있으므로 설정해주는것이 좋습니다.

$config['sess_table_name'] = 'ci_sessions';
/*세션 DB의 테이블명입니다. 반드시 테이블을 만들어줘야 사용가능합니다.
세션 테이블의 mysql 기본 프로토타입은 아래와 같습니다.
CREATE TABLE IF NOT EXISTS  `ci_sessions` (
	session_id varchar(40) DEFAULT '0' NOT NULL,
	ip_address varchar(16) DEFAULT '0' NOT NULL,
	user_agent varchar(120) NOT NULL,
	last_activity int(10) unsigned DEFAULT 0 NOT NULL,
	user_data text NOT NULL,
	PRIMARY KEY (session_id),
	KEY `last_activity_idx` (`last_activity`)
);
*/
$config['sess_match_ip'] = TRUE;
//세션에서 ip매칭할지 설정합니다.

$config['sess_match_useragent'] = TRUE;
//세션에서 useragent를 매칭할지 설정합니다.
//설정시 다른 브라우저에서 접속시 세션유지가 되지 않습니다.

$config['sess_time_to_update'] = 300;
//세션에서 last_activity 시간을 업데이트 하는 주기를 설정합니다.
//너무 작은 값을 입력하면 부하가 걸릴 수 있겠습니다.

$config['cookie_prefix'] = "my_";
//쿠키간 충돌을 방지하기위한 접두사를 설정합니다.

$config['cookie_domain'] = "www.example.com";
//쿠키의 도메인을 설정합니다.

$config['cookie_path'] = "/";
//쿠키의 경로를 지정합니다.

$config['cookie_secure'] = FALSE;
//HTTPS를 사용할 경우에만 사용

$config['global_xss_filtering'] = TRUE;
//크로스 사이트 스크립팅을 항상 설정합니다. 설정하는것을 추천합니다.
//부작용으로 몇몇 위지윅 프로그램의 script 태그가 안 먹힐 수도 있습니다.

$config['csrf_protection'] = TRUE;
//크로스 사이트 요청 변조를 방지할 지 설정합니다. 반드시 설정합니다.
//크로스 사이트 요청 변조는 제 3자가 폼 내용을 위조하여 전송하는것을 방지합니다.

$config['csrf_token_name'] = 'csrf_token_name';
//크로스 사이트 요청 변조 토큰명을 설정합니다.

$config['csrf_cookie_name'] = 'csrf_cookie_name';
//크로스 사이트 요청 변조 쿠키명을 설정합니다.

$config['csrf_expire'] = 7200;
//크로스 사이트 요청 변조 만료시간을 설정합니다.

$config['compress_output'] = TRUE;
//내용을 압축하여 전송합니다. 처리시간은 증가하나 전송시간과 트래픽이 감소합니다.
//서버단에서 압축이 가능하다면 설정하지 않는것이 좋다고 합니다.

$config['time_reference'] = 'gmt';
/*시간을 출력하는 함수들의 시간 기준을 설정합니다.
local : 서버시간
  gmt : gmt시간
*/

$config['rewrite_short_tags'] = FALSE;
//<?php shorttag를 사용할지 설정합니다.

$config['proxy_ips'] = '';
//프록시를 설정합니다.

database.php

다음은 데이터베이스 관련 설정을 해보죠. 세션DB도 그렇고 DB 접속을 편리하게 만들어줍니다. database.php 파일을 수정합니다.

<?php  if ( ! defined('BASEPATH')) exit('No direct script access allowed');
//직접적인 파일 접근을 막습니다.

$active_group = 'default';
$active_record = TRUE;

$db['default']['hostname'] = 'localhost'; //호스트
$db['default']['username'] = '';          //계정명
$db['default']['password'] = '';          //암호
$db['default']['database'] = '';          //db명
$db['default']['dbdriver'] = 'mysql';     //DBMS명
$db['default']['dbprefix'] = '';          //DB접두사
$db['default']['pconnect'] = TRUE;
$db['default']['db_debug'] = TRUE;
$db['default']['cache_on'] = TRUE;        //DB캐싱
$db['default']['cachedir'] = '';
$db['default']['char_set'] = 'utf8';
$db['default']['dbcollat'] = 'utf8_general_ci';
$db['default']['swap_pre'] = '';
$db['default']['autoinit'] = TRUE;
$db['default']['stricton'] = FALSE;

자, 기본적인 설정이 마무리 되었습니다. 각 옵션에 관련한 자세한 내용은 CodeIgnighter 한국사용자포럼을 참조하시기 바랍니다.



출처 : http://dovetail.tistory.com/18