CI 묻고 답하기

제목 개발시 개발도메인 실서버도메인 어떻게 하시나요?
글쓴이 스크림 작성시각 2012/03/21 22:39:00
댓글 : 4 추천 : 0 스크랩 : 0 조회수 : 21500   RSS

보통 서브도메인 없이 하나의 도메인에서 개발을 할경우 모든 이미지 및 링크는 상대경로로 다 해결이 됩니다.

하지만 조금만 개발이 확대되어도.

서브도메인을 사용해야하는 경우가 있는데요.


ssl.도메인.com
img.도메인.com
web.도메인.com
files.도메인.com

이럴경우

개발 서버에서는 어떻게 설정하고 개발을 하나요? 

저희가 선택했던 방법은.

1. 개발중인 컴퓨터에서는 실사용 서버 자주 안들어간다는 가정하에... hosts 파일을 개발서버로 바꿔준다.

2. *.도메인.com 대신 *.돼뮤인.com 같은 다른 도메인으로 개발하고 실서버 적용전 문자열 치환한다.

3. 설정파일에 현재 도메인에 대한 변수를 지정하고 모든 코드에    <a href="files.<?=$domain;?>.com" >링크</a> 과 같이 변수(혹은 상수)를 참조 하게 한다.


이 세가지 방법을 다 해봤지만 어찌되었든 현재는 2번 방법을 쓰고 있습니다.

다른 분들은 어떻게 하시나요?
 다음글 paging이 안되네요... (2)
 이전글 [CI 기본] 헬퍼와 라이브러리 용도 차이? (3)

댓글

조사장 / 2012/03/22 13:09:14 / 추천 0
저같은 경우는 3번과 가까운것 같습니다. ㅎ

로컬PC,개발서버,운영서버등의 세부정보가 조금조금 다르다보니 

헬퍼를 등록해서 주도메인,DB접속정보, 이미지서버도메인,IP,FTP업로드경로등을 나누어 등록해서 사용하고 있습니다.

if( !function_exists('constants_linker') )
{
     function constants_linker($param)
     {
          $return_val = '';
          $my_host  = $_SERVER['HTTP_HOST'];
          if( $my_host == 로컬서버 )
          {
               switch($param)
               {
                    case 'domain' ://도메인
                         $return_val = 로컬서버용 도메인;
                         break;
                    ...그외 세부정보들
               }
          }else if( $my_host == 개발서버 )
          {
               ...위와동일
          }else if( $my_host == 운영서버 )
          {
               ...위와동일
          }else
          {// 브라우저 접근이 아닌경우,
               if( PHP_SAPI == 'cli' )
               {
                    ...
               }
               ...
          }
          return $return_val;
     }//     EOF     function constants_linker($param)
}//     EO     if( !function_exit('constants_linker') )
한가지 걸리는 점은 cli사용시 개발서버인지 운영서버인지를..판단하기가 애매해져서 cron 사용할때 번거로운 부분이 있습니다.
CLI사용시 $_SERVER[...]등을 사용하면 모두 공백값을 리턴받아서 다른방법을 찾아보는중입니다. 

보시고 참고가 되셨으면 좋겠네요 ㅎ_ㅎ
위 방법에 결함이 있다면 지적해주시면 그것또한 감사하구요 ㅎㅎ


변종원(웅파) / 2012/03/22 15:33:41 / 추천 0
 2차 도메인까지 다 써줘야할 필요가 있을까요?

소스에서 링크부분은 /aaa/bbb로 처리하면 개발서버에서는 개발.com/aaa/bbb 로 되고
실서버에서는 실버서.com/aaa/bbb 로 되기 때문에 신경 쓸 필요가 없고

이미지 부분은 상수로 다음과 같이 사용합니다.

if( $_SERVER['HTTP_HOST'] == 'local.a.com' or $_SERVER['HTTP_HOST'] == 'local2.a.com' or $_SERVER['HTTP_HOST'] == 'new.a.com' or $_SERVER['HTTP_HOST'] == 'admin.a.com' )
{
 $hosts = 'http://img1.a.com';
}
else
{
 $hosts = 'http://image.a.com';
}

define('IMAGE_DIR', $hosts.'/uploads');
데이터베이스 정보도 위와 같이 2차 도메인에 따라 다르게 적용되도록 조건문 처리를 해서 씁니다.
 
if( $_SERVER['HTTP_HOST'] == 'local.a.com' or $_SERVER['HTTP_HOST'] == 'local2.a.com' or $_SERVER['HTTP_HOST'] == 'new.a.com' )
{
 $hosts = '11.8.12.9';
}
else
{
 $hosts = '192.168.0.9';
}

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

$db['default']['hostname'] = $hosts;




 
변종원(웅파) / 2012/03/22 15:35:46 / 추천 0
위에서 img1.a.com과 local.a.com, local2.a.com은 hosts에 등록한 가상도메인입니다.
슈럭 / 2013/04/16 10:11:35 / 추천 0
 1. hosts 파일을 수정합니다.

hostsToggler를 이용해서 개발과 운영을 한번의 클릭으로 손쉽게 변경합니다.