유저생성시 버츄어호스트 자동생성
...
ServerName www.linux.ac.kr
DocumentRoot /home/httpd/html
...
UserDir public_html
...
...
# 가상 호스트 설정
NameVirtualHost 192.168.10.3
# 기본이 되는 호스트
<VirtualHost 192.168.10.3>
ServerName www.linux.ac.kr
#
# 다음의 설정은 일반적인 각각의 사용자 URL(~ID)을 ID.domain.com의
# 형태로 Redirect하는 설정이다.
# 꼭 필요하지는 않지만 그럭저럭 괜찮은 서비스 일것 같다.(필자의 생각)
#
RewriteEngine on
RewriteRule ^/~(([a-zA-Z])[a-z0-9]+) http://$1.linux.ac.kr [R,L]
#
# 다음의 2줄에 대해서 주석을 제거하면 요청한 문서와 DocumentRoot 상에
# 존재하는 문서와 서로 일치하지 않을 경우
# http://www.linux.ac.kr/index.html 파일을 보여주도록 되어 있다.
# 따라서 "ErrorDocument 404"의 의미는 없어지며,
# 이 방법 외에, 원한다면 404 에러코드에 대한 문서를 상위의
# 기본 문서(index.html)로 URL 포워딩할 수 있는 방법도 있다.
#
#RewriteCond /home/httpd/html/%{REQUEST_FILENAME} !-f
#RewriteRule ^(.+) http://www.linu.ac.kr/index.html
</VirtualHost>
# mail 호스트 설정
# "mail"이라는 계정은 /etc/passwd 파일에 존재하지만
# 실제로는 /home/mail로 홈디렉토리를 가지고 있지 않다.
# 때문에 필자의 경우는 mail.linux.ac.kr 호스트에 대해서
# 웹 메일서버스를 위해서 다음과 같이 설정했을 뿐이다.
# 물론 8080 포트로 설정하는 경우도 많다.
# 이 예는 필자의 경우이다.(하나의 리눅스 박스에서)
#
<VirtualHost 192.168.10.3>
ServerName mail.linux.ac.kr
ServerAdmin admin@linux.ac.kr
DocumentRoot /home/httpd/mail
ErrorLog logs/mail.linux.ac.kr-error_log
CustomLog logs/mail.linux.ac.kr-access_log common
#ErrorDocument 401 /401.php
</VirtualHost>
# redhat 호스트 설정
# redhat 계정은 시스템 계정에 포함되어 있지 않은 계정이다.
# 따설정할
# 필요가 있는 경우이다.라서 따로 분류해서 하나의 가상 호스트로
# 이 예제와 같이 /home/ID 처럼 존재하지 않은 가상 호스트에 대해서
# 중요하다고 생각되는 호스트(예: www, kernel, tip, study)를 별도로
# 가상 호스트로 추가 설정한다.
#
<VirtualHost 192.168.10.3>
ServerName redhat.linux.ac.kr
ServerAdmin admin@linux.ac.kr
DocumentRoot /home/httpd/redhat
ErrorLog logs/redhat.linux.ac.kr-error_log
CustomLog logs/redhat.linux.ac.kr-access_log common
ErrorDocument 401 /401.php
ErrorDocument 404 /404.php
</VirtualHost>
# linux 호스트 설정
# linux 계정은 시스템 계정에 포함되어 있지 계정이다.
# 또한 리눅스 계정에 포함되어 있다하더로도
# 필자의 소견으로는
# http://linux.linux.ac.kr 이라는 이름은 왠지
# 어색할 따름이다.
# 따라서 이 가상 호스트에 대해서 www.linux.ac.kr
# 호스트로 Redirect 지시자로 포워딩하는 예제이다.
# 주의 Redirect / http://www.linux.ac.kr 이 되지 않도록!!!
#
<VirtualHost 192.168.10.3>
ServerName linux.linux.ac.kr
Redirect /index.html http://www.linux.ac.kr/
</VirtualHost>
# 가상 유저 호스트 설정 ##########################################
# 이 글의 가장 핵심적인 내용이며 필자가 말하려는 부분이기도 하다.
#
<VirtualHost 192.168.10.3>
ServerName linux.ac.kr
#
# ServerAlias 지시자를 이용해서 나머지 모든 호스트에 대해서
# 설정한 경우이다.
ServerAlias *.linux.ac.kr
ServerAdmin admin@linux.ac.kr
#
# 다음의 설정은 http://linux.ac.kr을 요청했을 경우에
# http://www.linux.ac.kr 호스트로 URL 포워딩한 예이다.
# 이 설정은 필자의 습관이다.
# 굳지 Redirect 지시지를 사용하지 않고 /home/httpd/html/index.html
# 파일을 보이도록 할 수는 있다.
#DocumentRoot /home/httpd/html
#
Redirect /index.html http://www.linux.ac.kr/
#
#
# 가장 핵심적인 설정 부분이다. 그러나 .........T.T
# 불행히도 필자는 이부분에 대해서 자세하게 설명할 실력이 못된다.
# 다만 아파치 제공문서와 [임대호]님 홈페이지를 참고로 했을 뿐입니다.
# 자신의 환경에 맞게 수정하면 무리가 없을듯 합니다.
#
# Virtual User Hosts
RewriteEngine on
RewriteCond %{HTTP_HOST} ^[^.]+\.linux\.ac\.kr$
RewriteRule ^(.+) %{HTTP_HOST}$1 [C]
RewriteRule ^([^.]+)\.linux\.ac\.kr(.*) /home/$1/public_html$2
#
ErrorLog logs/users.linux.ac.kr-error_log
CustomLog logs/users.linux.ac.kr-access_log common
# 아래의 두개의 설정은 가상 유저 호스트를 위한 설정이다.
# 즉, 각 가상 유저 호스트의 DocumentRoot에 에러코드문서를
# 모두 만들 필요없이(사용자 몫) 기본 호스트의 에러코드로
# 모두 설정해 주었다.
ErrorDocument 401 http://www.linux.ac.kr/401.php
ErrorDocument 404 http://www.linux.ac.kr/404.php
</VirtualHost>
...
------------------------------------------------------------------------------
설정이 끝났으면 아파치 서버를 가동한다.
서버를 가동하지 전에 설정 구문이 제대로 맞는지 확인 점검해 보는 습관도 좋다.
#
# httpd -t (또는 /usr/sbin/httpd -t)
또는
# /usr/local/apache/bin/httpd -t
Syntax OK
#