프리랜서 웹디자이너 웹퍼블리셔RELATION

RELATION 로고

PHP 웹프로그래밍

[서버] 버츄얼호스팅

2013.01.01
북마크 [출처 이동]    작성자 정보
서버한대에 여러 도메인을 사용한다거나, 호스팅을 하는 경우에는 각각의 사용자에게 도메인이 부여되어야 한다. 물론 domain.com/~memberid 식으로 해도 되지만, 요즘은 거의 대부분의 사람들이 도메인을 하나씩 가지고 운영하는 경우가 대부분이므로 정식으로 도메인이 부여된 상태에서 사이트를 운영하길 원할 것이다.

바로 이러한 기능을 충족시키기 위한 것이 바로 가상 호스팅이다.

버츄얼 호스팅에는 이름기반, 아이피 기반, 포트 기반이 있는데 가장 쉽게 쓸 수 있는 것이 아이피 기반의 가상호스팅이다.

다음은 아파치의 httpd.conf 파일에서 예제로 제공하고 있는 이름기반의 가상호스팅 설정법이다.


#NameVirtualHost *
#
# VirtualHost example:
# Almost any Apache directive may go into a VirtualHost container.
# The first VirtualHost section is used for requests without a known
# server name.
#
#<VirtualHost *>
# ServerAdmin webmaster@dummy-host.example.com
# DocumentRoot /www/docs/dummy-host.example.com
# ServerName dummy-host.example.com
# ErrorLog logs/dummy-host.example.com-error_log
# CustomLog logs/dummy-host.example.com-access_log common
#</VirtualHost>


가상호스팅을 하기 위해서는 우선 가상호스팅 설정 부분의 가장 윗줄에 다음과 같이 써 주어야 한다.


NameVirtualHost 192.168.0.1

이름기반 가상호스팅이며 사용하는 아이피는 192.168.0.1이란 것이다. 물론 가상 호스팅을 사용하기 위해서는 해당 도메인이 192.168.0.1로 매핑 되어 있어야 한다.
도메인과 아이피와의 매핑은 도메인 등록, 또는 수정할 때 정해 줄 수 있다.
어째든 여기까지 한 이후에는 해당 도메인을 설정 해줄때 처럼 해주면 된다.
다음은 하나의 예제이다.


<VirtualHost 192.168.0.1>
DocumentRoot /home/member1/public_html/
ServerName member1.com
</VirtualHost>


<VirtualHost 192.168.0.1>
DocumentRoot /home/member2/public_html/
ServerName member2.co.kr
</VirtualHost>


한눈에 봐도 알 수 있을 정도이다.
버추얼 호스팅을 192.168.0.1 서버에서 돌리며, index.html이 위치할 Document Root의 위치는 /home/member1/public_html/ 이 될 것이며, 서버의 도메인 이름은 member1.com이라는 것이다.

아래는 192.168.0.1 서버에서 서버를 운영하며, Document Root의 위치는 /home/member2/public_html/ 이 될 것이며, 도메인 명은 member2.co.kr로 설정한다는 것이다.

너무나 쉬워서 아쉬워 할지도 모르겠다.^^;
원래 쉬워도 모르면 어려워 보이는 것이다.^^
기타 ServerAdmin은 서버의 관리자 이메일을, ErrorLog와 CustomLog는 각각의 로그 파일이 만들어질 위치를 정해 주는 것이다.
이 외에도 몇가지가 더 있다.
몇가지는 보너스... ^^;;

◎ ServerAlias www.member1.com *.member1.com

위와 같이 해 놓으면 www.member1.com을 비롯한 모든 호스트 네임은 ServerName의 member1.com으로 자동전환된다.


보너스 2번째... !!! ^^

◎ php_value include_path ".:include할 절대경로"

php.ini파일에서 설정한 include_path는 가상호스팅이 아닌 하나의 서버에서만 적용된다. 하지만 각각의 가상호스팅 별로 include_path를 적용시킬 수 있다.
물론 설정법은 php.ini에서 설정한 것과 동일한 방법으로 할 수 있다.

ex) php_value include_path ".:/home/member1/public_html/include"

이 포스트 공유하기

전체목록