Post List

2015년 11월 18일 수요일

Apache httpd-vhosts.conf 파일 사용법.

개발을 위해 본인의 PC에 APM을 구축 후 각 종 사이트를 구현하고 관리하기 위해서는 이클립스의 프로젝트 워크스페이스를 이용하는 방법이 있다. 그러나 사이트를 자신의 PC의 효과적으로 관리하기 위해서는 Virtual host를 사용하여 관리하는 방법을 소개하고자 한다.

기본적으로 Apache, PHP, MariaDB 또는 Mysql 이 설치 되어 있다고 가정하겠다. (참고 : Windows10에 Apache+PHP+MariaDB 설치 및 연동하기.) 물론 JSP인 경우는 Tomcat을 기본으로 사용하고, Apache와 Tomcat을 연동하기도 하지만, 이번에는 Config 파일을 이용하고 Window의 hosts 파일을 이용하기 위한 방법이다.




1. Apache 의 httpd.conf 파일 수정
필자의 Apache는 C디렉토리 바로 밑에 설정하였다.

그림1

그림1과 같은 경로로 들어가면 httpd.conf 파일을 에디터(메모장, 또는 다른 에디터)를 통해 파일을 연다.

그림2

1
2
# Virtual hosts
Include conf/extra/httpd-vhosts.conf
cs

그림2와 같이 Virtual hosts 부분에 Include 부분이 주석 처리 되어 있을 것이다. 이 부분의 주석을 제거한다.

그림3

httpd.conf 파일을 저장하고 빠져 나온 후 그림3과 같이 conf->extra 디렉토리 밑에 들어가면 httpd-vhosts.conf 파일이 있다. 이 파일을 에디터로 연다.

그림4
1
2
3
4
5
6
7
8
9
10
11
12
13
<VirtualHost *:80>
    ServerAdmin aaa@bab.test
    DocumentRoot "c:/www/bab"
    ServerName www.bab.test
    ServerAlias babtest
    ErrorLog "logs/bab-error.log"
    CustomLog "logs/bab-access.log" common
    <Directory "c:/www/bab">
        AllowOverride None
        Options None
        Require all granted
    </Directory>    
</VirtualHost>
cs
그림4와 같이 호스트 하나를 열고 ServerName을 임의대로 정하여 입력한다.
그리고 디렉토리에 권한을 주는 것도 중요하다.. [<Directory] 부분을 설정하지 않으면 www.babzoa.test같은 경우 그림5와 같이 Fobidden Error 가 발생한다.

그림5

설정이 완료되면 이제 호스트 파일을 변조하여야 한다. 개발자나 테스터들은 아마 가장 많이 건드는 부분이 아닐까 싶다. 물론 악의적인 해커나 바이러스들도 좋아하는 파일일듯..

그림6


그림6의 경로를 찾아 들어가면 hosts 라는 파일이 보일 것이다. 이 파일을 관리자 권한을 가진 에디터로 열기를 한다.

이 파일을 수정 후 저장을 할 때 그림7과 같은 메시지가 보인다면 백신에서 막고 있다고 생각하고 그림8과 같이 백신의 환경설정을 바꿔준다.

그림7

그림8

그림8은 알약 백신의 예임으로 각 백신 환경설정에 따라 호스트 보호 설정을 풀어 주어야 한다.

그림9
1
2
3
127.0.0.1    www.bab.test
127.0.0.1    www.babzoa.test1
cs

그림9와 같이 본인이 설정한 URL을 호스트 파일에 설정을 한다. 127.0.0.1은 로컬호스트를 지칭한다.


이제 정해진 폴더로 이동하여 각각 index.html을 만들어 본다.

1
2
3
4
5
<html>
<body>
Hello World!!!
</body>
</html>
cs
그 다음 아파치를 재시작해야 한다. 필자와 같은 환경으로 세팅이 되어 있다면 Apache Service Monitor를 그림10과 같이 실행해서 재시작을 해 본다.

그림10

이제 브라우저를 실행하여 각 URL로 접속을 해본다.
그림11

그림12

설정한 대로 그림11은 디렉토리에 권한을 부여한 경우이며 그림12는 디렉토리 권한을 부여하지 않은 화면이다.

이상.