CI 묻고 답하기

제목 구조적인 질문하나 드릴께요.
글쓴이 ぷ~たろ 작성시각 2009/07/22 11:24:11
댓글 : 6 추천 : 0 스크랩 : 0 조회수 : 32211   RSS
하나의 서비스를 컨텐츠 내용으로 분리하여 서비스를 할 경우입니다.

가령,

www.abc.com (전 유저를 대상으로 콘텐츠 서비스)
aaa.abc.com(특정 등급의 유저 대상  서비스)
bbb.abc.com(컨텐츠의 홍보 서비스)

요는, 하나의 서비스를 내용별로 분리하여 서브 도메인으로 서비를 하고 싶은데,

CI의 모델이라던지, 플러그인, 라이버리 등을 공유(한곳에) 셋팅을 해서 사용하고 싶습니다.
가능할지 모르겠네요.

서버의 제약이랄까... 어쩌튼 디렉토리 구조는

/conf
/httpdoc  (web root)
/subdomain
/subdomain/aaa/conf
/subdomain/aaa/httpdoc   (aaa의  web root)
/subdomain/bbb/conf
/subdomain/bbb/httpdoc   (bbb의  web root)

이렇습니다.

이런 구조에서, 가능하다면, 어떻게 환경 설정을 해야 될지 가르쳐주세요.


태그 셋팅,구조,공유
 다음글 [버그신고] 검색 버그 신고합니다. (2)
 이전글 게시판 수정건의사항 (4)

댓글

변종원(웅파) / 2009/07/22 12:50:24 / 추천 0
apache 에서 서브도메인에 대해 설정을 하실 수 있는 상태라면(서버호스팅, 자체서버)
서브도메인별로 디렉토리를 하나씩 따로 만들고

www.abc.com -> /www
aaa.abc.com -> /aaa
bbb.abc.com -> /bbb

아래와 같은 디렉토리 구조가 됩니다.

/application/www/
                    /aaa/
                    /bbb/
/www
/aaa
/bbb
/system

위와 같은 구조로 만드시고 /www, /aaa, /bbb 안에 index.php 파일을 각각 복사한후
설정중에서

$system_folder = "../system"; 
$application_folder = "../application/각각의폴더";
로 셋팅하시면 될것 같습니다.
ぷ~たろ / 2009/07/22 14:16:14 / 추천 0
답변 감사합니다.

지금 가르쳐주신 내용이라면, 현재 구조에서 특정 한 곳을 기준으로 CI셋팅을 하고
다른 부분에는 오로지 index.php파일만 존재해서 index.php에는 각각 경로, 예를 들면 $system_folder, $applicationfolder  는 절대경로로 설정만 하면 된다는 걸로 해석 할 수 있을 거 같은데,,
제가 제대로 이해한 건가요?

일단, 테스트 먼저 해볼께요...
문제가 있다면 질문을, 잘 돌아가면 결과를 올리겠습니다.
변종원(웅파) / 2009/07/22 14:52:00 / 추천 0

네. 위와 같은 구조로 만드시면 CI system은 하나이고
application 디렉토리만도메인에 따라 여러개로 나눠서 쓸 수 있습니다.

아니면 기존 구조 그대로 쓰시고 index,php 에서 도메인에 따라 system과 application 디렉토리를
다르게 지정하는 것도 한 방법이 될 수 있습니다.

그런데 이 방법은 권장하지 않습니다. CI가 업데이트 됐을 경우 index.php 파일을 수정해줘야 합니다.
프로그램할때 core는 건드리지 않고 라이브러리를 확장하여 쓰거나 따로 만들어서 써야
나중에 core 업데이트할때 편합니다.

ぷ~たろ / 2009/07/22 15:59:29 / 추천 0
한가지 더 궁금한게 있습니다만,

위에처럼 셋팅을 했을 경우,

모델 공유에서 문제점이 발생하는데, 모델에 경우에는 application하위 디렉토리로 load->model()을 호출 할 경우
application/www/models을 불러드릴 거 같은데,, 그렇게 되면 각각의 모델에 대해서는 공용으로 사용이 불가 한가요?


변종원(웅파) / 2009/07/22 17:39:10 / 추천 0
모델 공유까지 하신다면 matchbox 라는 것을 이용하시기 바랍니다.
(제가 올린 글 검색하시면 CI 1.7.1에 matchbox 적용한 것을 다운받으실 수 있습니다. 210번글)
로더와 컨트롤러를 확장하여 application 디렉토리 이외의 디렉토리에서도 application 구조와 동일하게
셋팅하고 사용할 수 있습니다.

application/controller
                    /model
                    /views

plugin/aaa/controller
                    /model
                    /views
         /bbb/controller
                    /model
                    /views

위와 같은 구조가 가능하며 서로 모델 및 뷰를 공유할 수 있습니다.
그리고 widget 모듈까지 사용하게 되면 다른 컨트롤러까지 컨트롤러 안에서 호출하여
사용할 수 있습니다.

저희 회사에서 개발중인 CMS가 ぷ~たろ이 구현하시려는 것과 동일한 구조로 되어있습니다.
하나의 CMS툴에서 도메인별로 각각 다른 홈페이지를 생성하고 관리(디자인, 플러그인, 위젯등)를
할 수 있습니다. core는 하나이고 슈퍼운영자가 도메인별 관리자를 생성, 그 도메인별 관리자가
자기 사이트를 관리하는 형식입니다. 
서버가 버틸 수 있다면 하나의 cms툴을 설치하고 무한대의 도메인별 홈페이지 관리가
가능하죠. 관리도 플러그인들을 드래그&드롭으로 배치, 메뉴는 게시판, 링크, html 파일,
플러그인에 연결 가능하고 주소는 자동으로 생성이 됩니다.


현재 뼈대가 완성되었고 살 붙이는 중입니다. 아마 8월말이면 베타가 선 보일 듯..

ぷ~たろ / 2009/07/22 17:50:10 / 추천 0
같이 참여하고 싶네요.

사실 전 일본에서 지금 근무하고 있어요.
개발자가 혼자랏서 혼자 하기에는 조금 무리한 프로젝트를 담당하게되었는데,
개발전 적당한 프레임워크를 찾다가 CI를 선택하게 됐습니다.
조작 방법은 어느정도 프로젝트를 거치면, 익숙해 졌는데,
같은 데이터를 기준으로 약간의 다른 서비스를 하기에는
개발에 한계를 가지게 하더라구요.

이런 구조적인 문제가 해결되면, 여러가지 ASP서비스가 가능할 거란 생각 자연스레 들던데..
역시 준비 중이시네요.

웅파님이 말씀해주신 놈으로 좀 더 공부 해 보고, 결과는 정리해서 올려 보겠습니다.
감사합니다.