Programming/PHP

웹개발 준비 2 - Codeigniter 설치 및 설정

minarae7 2014. 11. 20. 14:44
728x90
반응형

앞에서 nginx와 php를 설정하였다. 이제 php를 통해서 개발을 진행하기 위해서 codeigniter라는 프레임워크를 설치하도록 하겠다.


1. Codeigniter 설치


사실 설치라고 거창하게 부를 것도 없이 홈페이지에서 다운받아서 원하는 디렉토리에 압축만 풀면 된다.


Codeigniter 홈페이지에서 최신 버전의 Codeigniter를 다운받아서 압축을 해제한다.


다운받은 파일의 압축을 풀어보면 아래와 같이 디렉토리가 존재한다.




system 디렉토리는 Codeigniter가 작동하는 핵심 파일들이 들어있기 때문에 수정할 일이 거의 없다.


실제로 모든 코딩은 application 디렉토리에서 이루어진다.


이 디렉토리 레벨을 그대로 복사해서 웹 루트에 붙여놓으면 된다.


ci 와 같은 디렉토리를 만들고 그 아래에 Codeigniter를 붙여놓는 방식을 사용해봤는데 이런 경우 url에 계속 ci를 붙여 다녀야하는 번거로움이 있다.


따라서 별도의 디렉토리를 만드는 대신 최상위 웹루트에 codeigniter를 설치하도록 한다.


이렇게 사용하기 위해서 앞 글의 nginx 설정시 자동으로 index.php를 붙이도록 설정하였다.


이와 관련된 내용은 자세히 적지 않도록 한다.


설치가 정상적으로 잘 되었다면 웹페이지(http://domain.com/)로 접속해보면 아래와 같은 화면을 볼 수 있다.





2. Codeigniter 설정하기


이제 Codeigniter를 사용하기 위한 설정을 진행할 것이다.


설정파일은 다음의 경로에 존재한다.


application/config/


하기에는 다음과 같은 파일들이 존재한다.




이 파일들을 모두 수정하는 것은 아니고 다음의 파일들만 수정하여 기본 설정을 진행할 것이다.


autoload.php, config.php, database.php, routes.php


2.1 autoload.php

해당 파일은 Codeigniter가 실행될 때마다 모든 페이지 자동으로 로딩할 정보들을 저장한다. library, helper, config, model 등 controller 페이지에서 $this->load를 통해서 로딩이 가능한 모든 정보를 여기서 설정할 수 있다.


기본적으로 로그인이 가능한 페이지를 개발할 경우 library로 database, session을 로딩되도록 한다.


$autoload['libraries'] = array('database', 'session');


이렇게 설정하면 된다.


또한 페이지 이동을 원할하게 하기 위해서 redirect 함수를 많이 사용하는데 이 함수를 사용하기 위해서 url helper를 로딩하도록 한다.


$autoload['helpers'] = array('url');


간단하게 이렇게 두 가지 항목만 설정하도록 한다. 물론 필요한 것이 있다만 추가로 로딩하여도 된다.


2.2 config.php

가장 메인이 되는 설정 파일이다. 여기서는 설정할 내용들이 많다. 우선 도메인 설정부터 확인한다.


$config['base_url'] = '';
$config['index_page'] = '';

이 설정은 기본 도메인 설정이다. Codeigniter에서 도메인을 호출할 경우 base_url를 기반으로 값을 페이지를 이동한다. index_page는 Codeigniter에서 호출하는 기본 index 파일을 의미한다. 여기에 index.php라고 작성하면 Codeigniter에서 생성하는 모든 이동 페이지는 /index.php/welcome/index와 같이 호출되도록 된다. index.php를 안붙이기를 원한다면 index_page를 빈 문자열로 두면 된다. 앞에 nginx 설정에서 해당 설정을 해두었기 때문에 공백으로 두어도 된다.


$config['encryption_key'] = 'TeST';


이 설정은 session할 때 암호화를 사용하면 seed가 되는 문자열이다. 이 설정은 적당한 문자를 배치하면 된다.


$config['sess_cookie_name']		= 'ci_session';    // session 이름
$config['sess_expiration']		= 7200;    // session 유효시간
$config['sess_expire_on_close']	= FALSE;    // 브라우저를 닫았을 경우 session을 종료할지 여부
$config['sess_encrypt_cookie']	= FALSE;    // session 암호화 사용 여부
$config['sess_use_database']	= TRUE;    // session을 DB를 사용하여 저장할지 여부
$config['sess_table_name']		= 'ci_sessions';    // session을 DB에 저장할 경우 사용할 테이블 이름(테이블 스키마는 codeigniter 홈페이지 참조)
$config['sess_match_ip']		= FALSE;    // 아이피가 일치할 경우에만 session 유지
$config['sess_match_useragent']	= TRUE;    // 브라우저가 일치할 경우에만 session 여지
$config['sess_time_to_update']	= 300;    // session 업데이트 주기


해당 설정들은 session에 대한 설정들이다. 설명할 항목이 많은 관계로 주석으로 달아두었다.


이외의 설정은 추후에 다시 설명하도록 하겠다.


2.3 databases.php

DB를 사용하기 위한 설정 파일이다. 기본적으로 호스트, 사용자계정, 패스워드, 사용할 데이터베이스를 설정하면된다. 거의 항상 mysql을 사용하기 때문에 dbdriver는 수정하는 일이 없지만 이외의 데이터베이스를 사용한다면 dbdriver를 수정하여야 한다. 기본값은 mysql이다. 이 파일에 대한 설명은 넘어가도록 하겠다.


2.4 routes.php

이 파일의 설정은 간단한다. Controller를 지정하지 않을 경우 연결할 기본 Controller에 대한 연결을 해주는 설정이다. 최초에 Codeigniter를 설정하면 welcome Controller로 연결되어 있다. 해당 설정은 다음과 같다.


$route['default_controller'] = 'main';


필자는 주로 main이라는 이름으로 Controller를 생성하여서 연결하고 있다. 이 설정은 원하는 이름을 Controller를 생성하여서 연결하면 된다.


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

여기까지 해서 기본적인 Codeigniter에 대한 설정을 완료하였다. 설정을 완료한 이후 페이지가 정상적으로 열리는지 확인해보아야 할 것이다. database를 사용하기 위해서 설정하였는데 연결이 안되거나 session을 DB에 저장하기로 했는데 DB에 session테이블이 없으면 장애가 발생할 것이다. 이런 장애를 수정하여 정상적으로 페이지를 띄우시길 바란다.

728x90
반응형