웹 개발2008.05.15 09:21

CakePHP는 간단하게 웹 서버의 도큐먼트 루트에 압축을 푸는 것으로 설치할 수 있다. 또는 복잡하지만 원하는 대로 설치할 수도 있다. 여기서는 개발, 프로덕션 그리고 고급 설치방법 등 세 가지 설치 방법을 살펴볼 것이다.

  • 개발용 설치 : 가장 쉽다. CakePHP 설치 디렉토리 이름을 그대로 어플리케이션의 URL로 사용한다. 보안에는 취약하다.
  • 프로덕션용 설치 : 웹 서버의 도큐먼트 루트를 설정할 수 있어야 한다. URL이 깔끔하다. 보안이 잘된다.
  • 고급 설치 : 몇 가지 설정으로 CakePHP를 파일시스템의 다른 곳에 둘 수 있다. 이로써 하나의 CakePHP 코어 라이브러리를 다른 CakePHP 어플리케이션과 공유할 수 있다.


개발용 설치

단지 CakePHP를 웹 서버의 도큐먼트 루트에 설치한다. 웹 서버의 도큐먼트 루트가 /var/www/html 이라면, 개발용 설치된 파일시스템은 다음과 같을 것이다.

/var/www/html
   
/cake
   
/app
   
/cake
   
/docs
   
/index.php
   
/vendors

CakePHP의 어플리케이션을 보기위해서는 http://your.domain.com/cake/ 를 브라우저로 보면된다.

프로덕션용 설치

프로덕션에서 이용하기 위한 설정이라면, 웹 서버의 도큐먼트 루트를 바꿀 수 있다. 프로덕션 설치를 선택하는 것은 도메인 전체가 하나의 CakePHP 어플리케이션이라는 것을 의미한다. 프로덕션 설치는 다음과 같은 레이아웃을 갖는다.

/path_to_cake_install/
   
/app
   
/webroot
   
/cake
   
/docs
   
/index.php
   
/vendors

만약 웹 서버로 아파치를 이용한다면 DocumentRoot 다음과 같이 수정한다.

DocumentRoot /path_to_cake_install/app/webroot

CakePHP 어플리케이션을 보려면, http://your.domain.com 을 브라우저로 보면된다.

고급 설치

CakePHP를 다른 곳에 설치하려는 많은 이유가 있을 것이다. 여기서는 CakePHP 디렉토리를 파일시스템에 어떻게 나눌 수 있는 지를 소개한다.

Cake 어플리케이션에는 다음의 세 개의 메인 파트가 있다.

  1. 코어 CakePHP 라이브러리 /cake
  2. Cake로 제작한 어플리케이션 /app
  3. 어플리케이션의 루트 /app/webroot

이들 각 디렉토리는 웹 서버에서 접근해야 하는 webroot를 제외하고 파일 시스템의 어디든 위치할 수 있다. Cake에 따로 알려주기만 하면, webroot 폴더도 app 폴더 밖에 두어도 된다.

이렇게 하려면, /app/webroot/index.php 를 수정해야 한다. 여기에는 수정해야 할 세 개의 상수가 있다.

  • ROOT : app 폴더를 포함하는 디렉토리의 패쓰를 적는다.
  • APP_DIR : app 폴더의 패쓰를 적는다.
  • CAKE_CORE_INCLUDE_PATH : CakePHP 라이브러리 폴더의 패쓰를 적는다.

다음 예를 보면 고급 설치에 대해서 잘 이해가 될 것이다.

  • CakePHP의 기본 라이브러리는 /use/lib/cake 에 둘 것이다.

  • 어플리케이션의 webroot/var/www/mysite/ 에 둘 것이다.

  • 어플리케이션의 app 디렉토리는 /home/me/mysite 에 둘 것이다.

그러면 webroot/var/www/mysite/index.php 파일을 열어 ROOT, APP_DIR, CAKE_CORE_INCLUDE_PATH를 다음과 같이 수정한다.

if (!defined(‘ROOT’)) {
  define(‘ROOT’, DS.’home’.DS.’me’);
}
if (!defined(‘APP_DIR’)) {
 
define(‘APP_DIR’, ‘mysite’);
}
if (!defined(‘CAKE_CORE_INCLUDE_PATH’)) {
 
define(‘CAKE_CORE_INCLUDE_PATH’, DS.’usr’.DS.’lib’.DS.’cake’);
}

이 렇게 해서 mysite 를 위한 CakePHP 설정이 끝났다. 같은 호스트에서 다른 프로젝트를 역시 CakePHP를 사용하여 작업하려면 CakePHP의 코어 디렉토리는 그대로 두고, app 디렉토리와 webroot 디렉토리를 새로 만들고, webroot의 index.php를 수정하면 된다.

신고
Posted by 무한루프 달리만듦

댓글을 달아 주세요