Window 로컬 환경에서 개발을 하다보면, 여러개의 가상 호스트가 필요할 때가 있다.
가상 호스트 (Vitual Host) 를 설정하는 방법을 알아보자.
촌장의 로컬 환경은 아래와 같다.
º Window 10 (사실, OS가 윈도우면 됐지. 버전은 크게 상관없다.)
º APM (개별 셋팅도 가능하지만, 촌장은 편하고 싶다.... XAMPP 서버를 사용한다.)
자, 그럼 시작해볼까?
1. 사용할 Host(도메인) 가 내부망으로 연결되도록 등록해야한다.
º 위치 : C:\Windows\System32\Drivers\etc\hosts
º 촌장은 hosts 파일을 열때 메모장으로 연다.
º 여기서 중요한건, 관리자 권한으로 실행해야한다는 것!
2. Host 를 등록했으면, 이제 Apache 에도 등록을 해줘야 한다.
가상 호스트를 등록 하기 전에, Apache 에서 가상 호스트 설정 파일을 읽어들일 수 있도록 해줘야 한다!
( OS가 Linux 여도 마찬가지! )
º 위치 : xampp/apache/conf/httpd.conf
º 촌장은 편한걸 좋아하니까..... 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
<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 재시작!
이렇게 보니...
촌장은... 참 편하고 간단한걸 좋아한다.... 반성하자 ㅎㅎㅎㅎㅎ ( 로컬인데.. 뭐 어때?! )