본문 바로가기

Window

[ Window ] 로컬 - 가상호스트(도메인) 설정

Window 로컬 환경에서 개발을 하다보면, 여러개의 가상 호스트가 필요할 때가 있다.

가상 호스트 (Vitual Host) 를 설정하는 방법을 알아보자.

 

촌장의 로컬 환경은 아래와 같다.

 

º Window 10 (사실, OS가 윈도우면 됐지. 버전은 크게 상관없다.)

º APM (개별 셋팅도 가능하지만, 촌장은 편하고 싶다.... XAMPP 서버를 사용한다.)

 

 

자, 그럼 시작해볼까?

 

 

 

 

1. 사용할 Host(도메인) 가 내부망으로 연결되도록 등록해야한다.

 

    º 위치 : C:\Windows\System32\Drivers\etc\hosts

    º 촌장은 hosts 파일을 열때 메모장으로 연다.

    º 여기서 중요한건, 관리자 권한으로 실행해야한다는 것!

 

hosts 파일에 Host (도메인) 작성 화면

 

 

2. Host 를 등록했으면, 이제 Apache 에도 등록을 해줘야 한다.

   가상 호스트를 등록 하기 전에, Apache 에서 가상 호스트 설정 파일을 읽어들일 수 있도록 해줘야 한다!

   ( OS가 Linux 여도 마찬가지! ) 

 

   º 위치 : xampp/apache/conf/httpd.conf

   º 촌장은 편한걸 좋아하니까..... Xampp 컨트롤 패널에서 열겠다.

 

XAMPP 컨트롤 패널 화면

♣ httpd.conf 에 작성할 코드

# Virtual hosts
Include conf/extra/httpd-vhosts.conf

XAMPP 의 경우 미리 설정이 되어있지만, 각각 APM을 셋팅를 할 경우에는 직접 작성을 해줘야한다.

 

 

[참고] 사용하는 Apache 버전이 2.2 이하이면 httpd.conf 파일에서 NameVirtualHost *:80 가 주석을 해제해주어야한다.

이름 기반의 가상 호스트 사용하겠다는 의미이다.

* Apache 2.4 부터는 이름 기반 가상 호스트가 Default 이므로, 신경쓰지 않아도 된다.

 

 

3. httpd.conf 에서 httpd-vhosts.conf 를 불러오도록 설정되어있는 것을 확인하였다면,

   이제, 가상 호스트를 등록하러 가보자.

 

   º 위치 : xampp\apache\conf\extra\httpd-vhosts.conf

 

httpd-vhosts.conf 위치

<VirtualHost *:80>
DocumentRoot "호스트가 바라볼 디렉토리"
ServerName 등록할 호스트
       <Directory "호스트가 바라볼 디렉토리">
           Allow From All
       </Directory>
</VirtualHost>

 

2번까지는 보통 문제없이 진행되지만! 3번에서 문제가 자주 발생한다.

VirtualHost 안에 여러 옵션이 있으니까...

 

♣ VirtualHost 설정 옵션 설명.

<VirtualHost *:80>
    ServerAdmin yultory.tistory.com  //서버 관리자를 등록하는 것인데, 촌장은 지워버린다.
 
    DocumentRoot "호스트가 바라볼 디렉토리 위치"  //Host 요청이 들어오면 연결시킬 디렉토리 위치이다.
    
    ServerName 호스트명   //등록할 호스트명 (1번에서 등록했지?)

    ServerAlias www.호스트명  //호스트의 별칭이다. 여러개를 등록할 수 있다. (www , * 등등)

    // 디렉토리에 대한 접근 허가이다.
    <Directory "연결시킬 디렉토리 위치">
        AllowOverride None  // 호스트가 디렉토리에 어떻게 접근을 허락할 것인가에 대한 설정인데,
                            // 옵션 종류가 많다. 기회가 되면 다른 포스트로 정리하겠다.
        Order Allow,Deny // 설정 확인 순서로, Allow를 먼저 확인하고 Deny 를 확인하겠다의 의미.
                         // 뒤에 것이 우선하게 된다.
                         
        Allow From All   // 모든 요청을 허용하겠다는 것으로 
        				 // 모든 요청을 허용하지 않을 경우에는 All 대신 허용 IP를 작성하면 된다.
                         // Deny from All 이라 설정하면 모든 요청을 차단 하는걸로 설정된다.
    </Directory>
</VirtualHost>

* 참고사항

     Apache 2.2 : Allow from all          /      Deny from all

     Apache 2.4 : Require all granted   /      Require all denied

 

 

♣ 촌장이 설정한 VirtualHost 예시.

 

<VirtualHost *:80>
DocumentRoot "D:\11. htdocs\local\local_yultory"
ServerName yultory.localhost.com
       <Directory "D:\11. htdocs\local\local_yultory">
           Require all granted
       </Directory>
</VirtualHost>

 

설정이 모두 끝났으면, Apache 재시작!

 

 

이렇게 보니...

촌장은... 참 편하고 간단한걸 좋아한다.... 반성하자 ㅎㅎㅎㅎㅎ ( 로컬인데.. 뭐 어때?! )