B / Y / U / S
HOME 웹 호스팅 도메인 매뉴얼 고객지원 설정정보 계정신청 2025-04-06 Sunday 
웹 호스팅
# 공지 사항
# 자주 묻는 질문
# 질문과 답변
# 가입 문의
커뮤니티
# 자유게시판
# 리눅스팁
# 아이큐 테스트
# 내홈 소개
# 겔러리
# 자료실

  리눅스팁  Go Unix Power Tools Online Book Go Bash Guide
Read No. 105 article 2002-02-20 20:08:21
NickName   풀비누
Subject   유동IP에서의 아파치 가상호스트 설정 스크립트
글출처 : http://wowdns.com

잠깐 짬을 내 만들어 보았습니다.. 
설정사항은 레드헷 7.1 기준입니다. 
그외 시스템 사용자는 알맞게 변경후 사용하시기 바랍니다. 
------------------------------------------------------------------------------------------ 

#!/bin/sh

DEVICE=eth0
NEWIP=`/sbin/ifconfig $DEVICE | grep "inet " | awk '{print $2}' | cut -c6-`
IPFILE='/etc/httpd/conf/vhost.ip'
VHOSTCONF='/etc/httpd/conf/vhost.conf'
HTTPDRUN="/etc/init.d/httpd restart"

modify_vhost()
{
        echo "$NEWIP" > $IPFILE
        TMPFILE=`sed s/$OLDIP/$NEWIP/g $VHOSTCONF`
        echo "$TMPFILE" > $VHOSTCONF
        echo "`$HTTPDRUN`" 
}

if [ -f "$IPFILE" ] ; then
        OLDIP=`cat $IPFILE`
        if [ "$NEWIP" != "$OLDIP" ] ; then
                modify_vhost
        fi
else
        modify_vhost
fi


------------------------------------------------------------------------------------------ 

아주 간단하죠 ? 

위의 스크립트 설정에 필요한 부분을 설명 드리겠습니다. 

DEVICE 는 인터넷 이용 형태로써 ifconfig 명령시 실 IP를 갖고 있는 
장치를 나타 냅니다. 
ADSL 사용자는 ppp0 CABLE 또는 LAN 사용자는 eth0 가 됩니다.. 
(그외 FreeBSD나 여러개의 랜카드 사용자는 ifconfig 실행후 확인) 

IPFILE 은 불필요한 아파치 재실행을 막기 위해 IP가 바뀔때만 실행 하도록 이전 IP를 보관할 화일입니다.. 

VHOSTFILE 은 가상 호스트 설정화일이 있는 화일입니다. 

HTTPDRUN은 재시작 명령입니다. 
kill -HUP `cat /var/run/httpd.pid` 도 될듯 한데.. 
잘 안먹네요.. 

자 그럼 실제 적용하는 방법을 가르쳐 드리겠습니다. 
* 모든 작업은 root 권한에서 실행되어야 합니다. 

1. 위의 소스만 카피후 ip.sh 로 화일을 만들어 저장한다. 
( /usr/local/sbin/ 디렉토리나 기타 임의로 저장 하세요..) 
2. 권한 설정... chmod 755 ip.sh (임의 수정 가능) 
3. 아파치 설정화일이 있는 디렉토리로 이동 하여 vhost.conf 란 화일을 만듭니다. 
4. 아파치 설정화일에서 가상 호스트 설정하는 부분만 임의로 빼냅니다. 
5. 빼낸부분을 vhost.conf에 복사하고 아파치 설정화일에서는 삭제를 합니다. 
6. 삭제후 아파치 conf 화일 제일 하단에 include conf/vhost.conf 를 추가 하여 저장합니다. 
7. ifconfig 명령등으로 현재 시스템의 IP를 확인하고 vhost.conf에 알맞게 가상호스트 설정을 합니다. 
( 혹시 모르니 만들어진 vhost.conf 화일을 하나 백업 받아 둡니다.) 
8. 이제 ip.sh 를 실행시켜 봅니다.. 
9. 크론이나 기타 정기적인 수행이 가능한 프로그램을 이용하여 원하는 시간마다 체크 하도록 합니다.. 

* 주의 
----------최초 설치시 반드시 확인해 주세요..------------ 
IP가 저장되는 IPFILE의 값을 잘 설정하셔야 하는데 반드시 설정시의 IP값이 들어가 있어야 합니다. 
더불어, ip.sh 스크립트를 실행하기 전에 반드시 vhost.conf에 
가상 호스트 설정이 되어 있어야 합니다.. 
이때, 설정시 삽입된 IP는 IPFILE에 있는 IP와 동일해야 합니다.. 

----------- vhost.conf 예제화일 ------------ 

NameVirtualHost 211.53.206.101 


ServerAdmin root at sample.com 
DocumentRoot /var/www/ 
ServerName sample.com 
#아래 부분은 IE6에서 쿠키가 안되는 점을 해결하는 부분입니다. 
#이 부분에 대해서는 'IE에서 쿠키가 안될때' 게시판을 참고 하세요. 
Header set P3P "CP='CAO PSA CONi OTR OUR DEM ONL'" 
ErrorLog /var/log/httpd/sample.com-error.log 
TransferLog /var/log/httpd/sample.com-access.log 
Options ExecCGI 



ServerAdmin root at sample.com 
DocumentRoot /var/www/website2/ 
ServerName good.com 
Header set P3P "CP='CAO PSA CONi OTR OUR DEM ONL'" 
ErrorLog /var/log/httpd/good.com-error.log 
TransferLog /var/log/httpd/good.com-access.log 
Options ExecCGI 


---------------------------------------------------------------------- 

* 프로그램 기능 및 특징 
실행시 이전 설정값을 비교하여 IP변동이 없을때는 그냥 종료하도록 
되어 있어 무조건적인 아파치 재실행을 막아 줍니다.. 
그외..... 소스가 쉽고 짧습니다.. 

* 기타 버그 및 문의 사항은 게시판에 남겨 주세요.. 

* 이글은 GPL 을 따르며, 다른곳에 옮기실때는 원제작자 및 사이트를 명시해 주시기 바랍니다. 

http://wowdns.com 
한정석 
-------------------------------------------------------------------- 
이전에 받았을분들을 위한 간단한 history. 
-------------------------------------------------------------------- 
1. /var/run/vhost.ip -> /etc/http.conf/vhost.ip 로 되었습니다.(2002.2.10) 
2. device 변수 누락부분을 고쳤읍니다.
Regist Addr [ 192.168.0.2 ] 목록보기 윗글 아랫글
정규표현식 [ 상세 검색 ]
Page Loading [ 0.03 Sec ] SQL Time [ 0 Sec ]

Copyleft 1999-2025 by JSBoard Open Project
Theme Designed by IDOO And follow GPL2

개인정보 취급방침 이용 약관 사이트 맵 어드민 관리