2008. 4. 27. 18:58

[apache] 로컬 컴퓨터에 가상호스트 만들기


자신의 로컬 컴퓨터를 웹개발 서버로 사용 할 때..
여러 계정이 필요한 경우가 있다.

하지만 스크립트 내부에서 도큐먼트 루트를 가르키는 환경 변수 등을 사용한다면 문제가 발생한다.
일반적인 계정 추가 방식은  http://localhost/~abc 등의 형태가 되는데..
계정이 몇개가 되건간에 도큐먼트의 루트는 단 하나를 가르킬 뿐이다.

그래서 가상호스트를 사용해서 이와 같은 문제를 해결 할 수 있다.

하지만 문제가 있다. 자신의 컴퓨터에 DNS 가 설치되어 있지 않는다면 불가능한 방법이다.
그러나 해결법이 있다.

우리가 흔히 사용하는 localhost 에 대해서 의문을 품어보면 답이 나온다.

사용자 삽입 이미지

일반적으로 윈도우를 설치하면 이 경로에 hosts 라는 파일이 존재한다. (확장자는 없다.)
이 파일을 열어보면 127.0.0.1       localhost
이런 내용을 찾아 볼 수 있다. 즉 localhost 는 도메인이 아니라 하나의 별명(alias) 처럼 작동 한다는걸
알 수 있다.

여기에 우리가 원하는 만큼 가상의 도메인? 을 만들어 버리면 된다.
127.0.0.1 app
127.0.0.1 prj
127.0.0.1 ts1
...............

이런식으로 얼마든지 가능하다.


그리곤 아파치 웹 서버의 가상호스트 설정을 해주면 그만이다.
E:\root 의 위치에 각각의 서브 폴더를 만들고 각 호스트별로 하나씩 매칭 시켰다.
 
#document root
<VirtualHost 127.0.0.1:80>
ServerName localhost
ServerAlias localhost
DocumentRoot "E:/xampp/htdocs"
</VirtualHost>


#app
<VirtualHost 127.0.0.1:80>
ServerName app
ServerAlias app
DocumentRoot "E:/root/app"
</VirtualHost>

<Directory "E:/root/*">
AllowOverride All
Order allow,deny
Allow from 127.0.0.1
</Directory>


#prj
<VirtualHost 127.0.0.1:80>
ServerName prj
ServerAlias prj
DocumentRoot "E:/root/prj"
</VirtualHost>


#ts1
<VirtualHost 127.0.0.1:80>
ServerName ts1
ServerAlias ts1
DocumentRoot "E:/root/ts1"
</VirtualHost>

#ts2
<VirtualHost 127.0.0.1:80>
ServerName ts2
ServerAlias ts2
DocumentRoot "E:/root/ts2"
</VirtualHost>

#ts3
<VirtualHost 127.0.0.1:80>
ServerName ts3
ServerAlias ts3
DocumentRoot "E:/root/ts3"
</VirtualHost>


참고자료
Trackback 0 Comment 0