블로그 프로필 이미지

SMALL




☞ config.php (CI 3.0)


config.php 는 CI 의 기본적인 기능을 설정 하는 파일이다. 이 설정값에 따라 CI 의 작동여부가 가려지는것이 많으니 꼭 알아두어야 한다. 주된 기능은 웹의 정보를 설정하는 부분과, CI의 라이브러리, 헬퍼, 드라이버 또는 CI의 기능 들의 사용여부를 설정할 수 있다. 


사용자가 CI의 라이브러리를 사용함에 있어서, config.php 에 설정된 값이 따라 실행이 안되는 경우도 있다. 이는 PHP 버전이 낮거나, config 의 환경설정 값이 FALSE 로 되어있는 경우다. 이렇듯 CI의 라이브러리를 사용할때는 제일먼저 메뉴얼을 읽어보는 습관을 길러야 한다. 즉 아무리 뛰어난 개발자도 처음 다루어 보는 프레임워크를 메뉴얼 없이는 아무것도 할 수 없기 때문이다.


아래는 autoload.php 파일 내용에 대한 설명이다. 참고로 설명에는 전문적인 해석보단 개인적인 해석이 많기 때문에, 틀린 부분이 있을 수 있다.


 config/config.php


<?php /* + 서버의 도메인 주소를 설정하는곳이다. 이곳을 빈칸으로 둔다면, 서버에 설정된 주소값을 가져온다. ex) => $config['base_url'] = 'http://b.redinfo.co.kr'; */ $config['base_url'] = ''; /* + 서버의 index 페이지를 설정하는 곳이다, 만약 mod_rewrite 를 사용한다면 이곳은 빈칸으루 두어야한다. 또한 자신의 서버설정에서 index 페이지가 index.php 가 아닐경우 이곳에 서버설정에 맞는값을 설정 해주어야 한다. ex) 만약 자신의 서버의 index 페이지가 home.php 이라면 아래와 같이 설정해주어야한다. =>$config['index_page'] = 'home.php'; */ $config['index_page'] = 'index.php'; /* + CI에서 사용할 uri 프로토콜을 설정하는 곳이다. 기본값은 REQUEST_URI 다. 특별한 경우가 아닌이상 이값은 기본값으로 설정해 놓는게 좋다. 그이유는 uri 라이브러리를 사용할 시 이 설정값을 이용하기 떄문이다. ex) 아래는 설정할수 있는 값과 설명이다. => REQUEST_URI : PHP 서버 환경변수 $_SERVER['REQUEST_URI'] 와 같다. => QUERY_STRING : PHP 서버 환경변수 $_SERVER['QUERY_STRING'] 와 같다. => PATH_INFO : PHP 서버 환경변수 $_SERVER['PATH_INFO'] 와 같다. */ $config['uri_protocol'] = 'REQUEST_URI'; /* + url 의 접미사를 추가하는 부분이다. 이값은 url 끝부분에, '.html' 처럼 자신이 붙이 고싶은 접미사를 붙일 수 있다. ex) 만약 설정값이 아래와 같다면 => $config['url_suffix'] = '.html'; 기본 링크를 만들때는 아래와 같이 형식으로 만들어주면된다. => <a href='http://test.com/main/pf.html'>프로필</a> 참고로 위의 기본 url 은 본래 아래와 같다 => http://test.com/main/pf + 이 값을 설정함에 따라 하나의 접미사가 붙음으로 써 다양만 문서형식처럼 보일 수 있다. + 가이드(3.0) : http://codeigniter.com/user_guide/general/urls.html */ $config['url_suffix'] = ''; /* + 언어 라이브러리나, 헬퍼 사용시 기본적으로 사용할 언어를 설정하는곳이다. 언어파일을 작성하는 곳은 기본경로로보면 application/language 에 위치한다. */ $config['language'] = 'english'; /* + 웹서버의 문자인코딩을 설정하는곳이다. 기본값은 UTF-8 이다. 한글 같은 경우 페이지설정과 이곳설정이 잘못되있을경우 한글이 깨질 수 있으니 될 수 있으면 모든 문자인코딩은 EUC-KR 보다는 UTF-8 을 쓰는게 좋다. 물론 한글만 사용하는 웹페이지에서는 EUC-KR 이 가장 적합하나, 다방면으로 볼때 데이터베이스 나 다른 웹페이지를 가져올때 한글이 전부 깨져서 하나하나 전부 인코딩 해줘야 하는 경우가 생길 수 있다.. */ $config['charset'] = 'UTF-8'; /* + 이 설정은 후킹 이라고 하는 CI 의 기능중 하나로 기본값은 FALSE 이며 설정값은 아래와 같다. => FALSE : 중지 => TRUE : 실행 + 후킹을 간단하게 설명하자면, CI 가 실행되기 전이나 중간 또는 원하는 지점에 임의로 실행시켜야 할 기능이 있다면, 후킹을 이용하여, 추가할 수 있다. + 가이드(3.0) : http://www.codeigniter.com/user_guide/general/hooks.html?highlight=hooking + 한글 가이드(2.1.0) : http://codeigniter-kr.org/user_guide_2.1.0/general/hooks.html */ $config['enable_hooks'] = FALSE; /* + 이 설정은 코어 클래스, 라이브러리, 헬퍼 를 확장 할 시 이름의 접두어를 설정하는곳이다. 확장 할 시 파일명과, 클래스일경우 클래스 명은 이곳에 설정된 접두어를 사용해야한다. + 가이드(3.0) : http://codeigniter.com/user_guide/general/core_classes.html + 가이드(3.0) : http://codeigniter.com/user_guide/general/creating_libraries.html */ $config['subclass_prefix'] = 'MY_'; /* + 이 설정은 의존성 관리 도구인 컴포저가 있을경우 경로를 로드할 수 있다. 컴포저는 사용해야할 기능들을 컴포저 도구를 이용하여 쉽게 설치한후 사용및 확장등의 유지보수등을 제공한다. ex) 사용하지 않을 시 FALSE 값을 주면되고, 기본적으로 FALSE 값이며, 컴포저를 사용하기 위해선 아래와 같이 경로값을 넣어주면된다. => $config['composer_autoload'] = '/path/to/vendor/autoload.php'; + 의존성 패키지 다운로드 LINK : https://packagist.org */ $config['composer_autoload'] = FALSE; /* + URL 주소값으로 올 수 있는 문자 규칙들을 셋팅한다. */ $config['permitted_uri_chars'] = 'a-z 0-9~%.:_\-'; /* + 이 값은 CI 의 URI 규칙을 설정하는 곳이자 각각의 설명은 아래와 같다. => $config['allow_get_array'] = 이값이 TRUE 일시 URL에서 GET 메소드값을 사용할 수 있다. FALSE 값일 경우 GET 메소드는 사용할 수 없다. => $config['enable_query_strings'] = 이값은 CI 의 기본 URI 규칙을 일반 쿼리형식으로 변경하는지를 설정하는것이다. TRUE 일 경우 쿼리형식 FALSE 값일 경우 기본적인 CI URI 형식을 사용한다. => 아래의 3개의 값들은 enable_query_strings 값이 TURE 일 때 설정하는것으로 URL 예를 들면 http://test.com/index.php?c=contorller&m=function 이런식으로 나타낼 수 있다. 한가지 의문은 directory_trigger 설정은 어떤형식으로 쓰이는지다. 메뉴얼을 보더라도 아직 쓰이지는 않는것같다. - $config['controller_trigger'] = 'c'; - $config['function_trigger'] = 'm'; - $config['directory_trigger'] = 'd'; */ $config['allow_get_array'] = TRUE; $config['enable_query_strings'] = FALSE; $config['controller_trigger'] = 'c'; $config['function_trigger'] = 'm'; $config['directory_trigger'] = 'd'; /* +이 설정값은 로그값을 기록할지 않할지, 또 저장한다면 어떤것을 기록 할지 설정하는 곳이다. 각각의 설정값들은 아래와 같다. => 0 = 로그값을 기록하지 않는다. => 1 = 오류 메세지 (PHP 오류가 포함된다) => 2 = 디버그 메세지 => 3 = 정보 관련 메세지 => 4 = 모든 메세지 */ $config['log_threshold'] = 0; /* + 이 설정값은 $config['log_threshold'] 값이 0 이 아닐경우 로그가 저장될 경로를 설정해 주는 곳이다. 이곳의 기본값은 아래와 같다. => application/logs/ + 로그파일이 저장될 디렉토리는 쓰기 권한이 있어야 한다. */ $config['log_path'] = ''; /* + 저장될 로그파일의 확장명이다. 공백으로 둘시 기본값은 'php' 다. */ $config['log_file_extension'] = ''; /* + 생성되는 로그파일이 권한을 설정할 수 있다. 이 값에 따라 생성되는 로그파일의 권한이 설정된다. */ $config['log_file_permissions'] = 0644; /* + 로그를 기록할 때 날짜 형식을 포맷형으로 설정할 수 있다 기본값은 아래와 같으며, PHP의 날짜함수에 올수 있는 포맷 문자형을 참고 하면된다. + 날짜포맷 문자열 LINK : http://php.net/manual/kr/function.date.php */ $config['log_date_format'] = 'Y-m-d H:i:s'; /* + 이 설정은 에러들이 저장된 errors 디렉토리가 변경되었을 시 설정하는 곳이다. 빈칸으로 둔다면 기본적인 경로는 application/views/errors/ 가된다. */ $config['error_views_path'] = ''; /* + 이 설정은 캐싱기능을 활성화 할시 캐시파일이 저장될 경로를 설정하는 곳이다. 빈칸으로 둘시 기본경로는 application/cache/ 가 된다. + 캐시파일이 저장될 디렉토리는 쓰기 권한이 있어야한다. */ $config['cache_path'] = ''; /* + 이 설정값은 웹문서가 캐싱될때 쿼리 문자열을 캐시할치 설정 (이 기능에 대해서는 아직 확실히 분석을 못했다) => FALSE : 사용않함 => TRUE : 사용 */ $config['cache_query_string'] = FALSE; /* + 암호화와 관련된 CI 의 기능들을 사용할 시 이곳에 설정된 값을 가지고 암호화를 한다. + 메뉴얼(3.0) : http://codeigniter.com/user_guide/libraries/encryption.html */ $config['encryption_key'] = ''; /* + 이 곳은 세션에 관한 설정을 하는곳이다. 하지만 3.0 부터는 되지 않는것같다. 아마 보안때문에 그런것같다. + 세션같은경우 php.ini 파일에서 수정하길 바란다. 이설정은 지워도 크게 상관은없다. + sess_driver 값으로 올 수 있는 것들은 files, database, redis, memcached 들이 있다. + 메뉴얼(3.0) : http://www.codeigniter.com/user_guide/libraries/sessions.html?highlight=sess_driver */ $config['sess_driver'] = 'files'; $config['sess_cookie_name'] = 'ci_session'; $config['sess_expiration'] = 7200; $config['sess_save_path'] = NULL; $config['sess_match_ip'] = FALSE; $config['sess_time_to_update'] = 300; $config['sess_regenerate_destroy'] = FALSE; /* + 이곳은 쿠키를 설정하는 곳이다. 쿠키설정에 관한 값은 아래와 같다. => cookie_prefix = 쿠키이름 앞에 붙을 접두어를 설정한다. => cookie_domain = 쿠키의 기본도메인을 선택 ex) www.test.com => cookie_path = 쿠키의 저장 경로 기본값은 '/' => cookie_secure = 쿠키의 보안을 위해 HTTPS 연결이 존재할때만 사용할 지 설정 => cookie_httponly = 쿠키가 오직 HTTP(S) 를 통해서만 접속하게 할지 설정 (단 이설정시 자바스크립트나 JQUERY 등은 사용불가능하다) */ $config['cookie_prefix'] = ''; $config['cookie_domain'] = ''; $config['cookie_path'] = '/'; $config['cookie_secure'] = FALSE; $config['cookie_httponly'] = FALSE; /* + 이 설정은 문자열의 뉴 라인을 표준화 할지 설정 하는 곳이다. 이 설정이 필요한 이유는 유닉스 계열의 운영체제는 뉴 라인이 보통 '\n' 으로 되어있고, 윈도우 운영체제는 '\r\n' 으로 되어있기 때문에, 운영체제가 변경될 시 이설정값을 TRUE 로 활성화 시켜주면, 일일이 수정할 필요가 없다. => FALSE : 비활성화 => TRUE : 활성화 */ $config['standardize_newlines'] = FALSE; /* + GET, POST 메소드 사용시 XSS 공격 방어를 전역적으로 사용할지 설정 한다. 기본값은 FALSE 다 + 이값을 TRUE 로 설정시 자동으로 XSS 공격을 방어가 되서 편하겠지만, 검사할 데이터가 많다면 그만큼 과부하가 생길 수 있다 => FALSE : 비활성화 => TRUE : 활성화 */ $config['global_xss_filtering'] = FALSE; /* + 이 설정은 CSRF 에 대한 설정이다. 일단 이값을 활성화 시키면, POST 값 전송시 csrf 에 대한 토큰이름과 토큰값을 넘겨주어야한다. => $config['csrf_protection'] = 이 기능을 활성화 할지 비활성화 할지 설정 : TRUE(활성화), FALSE(비활성화) => $config['csrf_token_name'] = csrf 토큰 이름을 설정 => $config['csrf_cookie_name'] = csrf 로 사용할 쿠키의 이름을 설정; => $config['csrf_expire'] = 쿠키의 생존기간을 초단위로 설정 => $config['csrf_regenerate'] = POST 값 전송이 이루어질 시 매번 토큰값을 변경할지 설정 : TRUE(활성화), FALSE(비활성화) => $config['csrf_exclude_uris'] = csrf 에서 제외할 URI 를 지정 : ex) http://test.com/index.php/main/pf => $config['csrf_exclude_uris'] = array('main/pf'); */ $config['csrf_protection'] = FALSE; $config['csrf_token_name'] = 'csrf_test_name'; $config['csrf_cookie_name'] = 'csrf_cookie_name'; $config['csrf_expire'] = 7200; $config['csrf_regenerate'] = TRUE; $config['csrf_exclude_uris'] = array(); /* + Output 을 압축하여 전송할지 설정 하는 곳이다. 결론은 이 설정값에 대해 잘 모를경우 비활성화(FALSE) 로 두는게 좋다 => TURE : 활성화 => FALSE : 비활성화 */ $config['compress_output'] = FALSE; /* + 이 설정은 나타낼 표준 시간을 설정할 수 있다. 이설정값은 date helper 함수에서만 영향을 받는다. => 'gmt' = gmt 타임스탬프 값 => 'local' = 서버의 타임스탬프 값 (기본값) */ $config['time_reference'] = 'local'; /* 서버의 PHP 가 짧은 태그지원이 불가능할 때 rewrite 시 인식하게 할지 설정 => TRUE = 활성 => FALSE = 비활성 */ $config['rewrite_short_tags'] = FALSE; /* + 이설정은 서버가 역방향 프록시 뒤에 있는경우에 사용자들의 정확한 클라이언트 ip를 체크할 수 없는 경우가 생긴다 이를 해결하기 위해 설정하는곳에 허용가능한 역방향 프록시 ip 주소들을 지정해 주어야한다. => ip 설정은 ,(콤마) 로 '1.1.1.1,2.2.2.2' 이런식으로 해주거나 배열 에서 array('1.1.1.1','2.2.2.2') 이런식으로 구분해주면된다. */ $config['proxy_ips'] = ''; ?>


LIST