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

  리눅스팁  Go Unix Power Tools Online Book Go Bash Guide
Read No. 99 article 2002-02-05 11:03:30
NickName   풀비누
Subject   유동 아이피(Dynamic IP)로 웹호스팅하기
홈페이지 : http://yawong.com 
등록일 : 2001.05.14 16:38:24 
조회 : 1363 
출처 : Yawong.com 



리눅스에서 웹서버를 운영하시는 분은 아시겠지만, 
웹서버(아파치)를 작동 시킬려면 httpd.conf 란 설정 파일에서 모든 웹서버 관련 설정을 해 줍니다. 

아파치 설정파일은 /etc/httpd/conf/httpd.conf (이하 와우리눅스 배포버젼 7.0 까치 릴리즈 기준) 에 있습니다. 

여기서 줄마다 해석하려니 불가능 하군요.(넘 많습니다. T.T) 
기본 설정 관련 문서는 여러곳에서 찾을 수 있으니, 직접 찾아보시기 바랍니다. 

유동아이피로 웹서버를 돌린다 해도, 외부 DNS 의 IP 주소를 업데이트 한다면 문제될 것이 하나도 없습니다. 걍 외부 DNS 를
업데이트 해주시면 끄읕~~ 

외부 DNS 란 ? 

외부 인터넷 사이트들에서 제공하는, 유동아이피를 제때 제때 업데이트 해 주어, 도메인 wowlinux.com 와 같은 네임에 IP 를
연결해 주는 업체들을 말하죠. EASYDNS.com 이 그 중의 하나입니다. 


만약, 유동아이피를 쓰시면서, 아파치로 가상호스트까지 하실려면, 꼬옥~ httpd.conf 파일 마지막에 가상호스트 설정을 해줘야
하는데, 매번 아이피가 변할 때마다 모든 설정을 손으로 일일이 바꿔주기란 정말로 막노동(?) 입니다. 

그래서, 게으른(?) 사람땜에 리모콘 TV 가 나왔듯이, 
저희가 모든 작업을 한방에 완성하는 셀 스크립트를 만들었습니다. 
이곳에 설명된 내용을 처리할 수 있는 스크립트를 httpd://www.yawong.com 사이트에 공개할 예정입니다. 
이것은 아피치 서버에서 가상호스트 설정을 변경하여, 유동아이피에서도 웹호스팅을 할 수 있게 하는 프로그램 입니다. 

단!!! 유동아이피로 웹호스팅을 하거나, 가상호스트가 필요 없는 분께서는 걍 운영 하시면 됩니다. 
아래 것들이 하나도 필요 없습니다. 


이하 모든 명령들은 명령줄 밑에 주석이 붙은 라인 바이 라인(Line by Line) 형식으로 설명을 합니다. 



1.0 프로그램 만들기 전 준비작업 

집중!!!! 이하 모든 작업은 root 로 로그인 하셔서 완성 하셔야 합니다. 


언제 생각이 어떻게 변해서, 현재 아파치 설정으로 되돌리고 싶을 지는 아무도 모를 일입니다. 
그런 경우를 생각해서 현재 설정파일을 백업합니다. 

# cp   /etc/httpd/conf/httpd.conf   /etc/httpd/conf/httpd.conf.bak 


이렇게 설정파일을 httpd.conf.bak 라는 파일로 백업을 합니다. 

가상호스트 사용자 설정 정보 파일을 저장 할 디렉터리를 만듭니다. 
어디에 만드나 상관없으나, 기타 사용자가 접근이 불가능 한 곳에 만들어야 합니다. 
이하는 / 에 vhosts 란 디렉터리를 만들고 퍼미션을 700 로 하는 것으로 예를 듭니다. 

# mkdir /vhosts 
# chmod  700  /vhosts 


이렇게 하면, 이제 root 만이 이 디렉터리를 엑세스 할 수 있습니다. 



1.1 기본설정 파일 만들기 (basic.conf) 




# cp   /etc/httpd/conf/httpd.conf   /vhosts/basic.conf 


원본 설정파일 httpd.conf 를, 방금 만든 /vhosts/ 디렉터리안에 basic.conf 란 파일로 복사를 합니다. 

# vi   /vhosts/basic.conf 


vi 문서 편집으로 들어 갑니다. 

아래로 쭈욱~~~ 내려가시다 보면, 
1003 줄까지 기본 환경 설정 및 기본 웹디렉토리 설정입니다. 
1004 번째 줄부터는 VirtualHost(가상호스트) 설정인데, 
우리가 고칠 부분은 바로 이 1004 번째 줄부터이므로, 1003번째 줄까지 남기시고, 그 밑은 지우셔야 합니다. 

vi 팁 
지우는 명령은 한줄 = dd, 여러줄 d#d 인데, 두 d 사이의 # 는 현재 줄부터 시작하여 아래로 지울 줄 수입니다. d100d 하시면,
현재 줄부터 시작하여 밑으로 100줄을 지우는거요. 잘 못 지웠을 경우, u 를 누르시면 방금 실행 한 것이 회복이 되죠. 


다아~ 지우고 나면 이제 제일 마지막 줄에, 머 VIA PROXY 가 어쩌구 저쩌구 하는게 남을 꺼예요. 그러면 이제 저장하고 나와야
겠죠? 

vi 팁 
vi 에서 저장하고 나오는 명령은 :wq  또는 :x 입니다. 
저장 안하고 걍 나오는 건 :q! 
저장만 하는 기능은 :w 

vi 팁 
vi 에서 : 로 시작되는 명령은 마지막줄 모드 명령(Last line mode command)이라고 하며, 말그대로 : 를 타입하면 젤 마지막
줄에 현재 타이핑하는 명령이 보입니다. :q! 이렇게... 


이렇게 하면 basic.conf 란 파일로 기본 설정은 저장 되었습니다. 

이제 가상호스트 관련 설정을 해야겠죠? 



1.2 아이피 포획 및 완정한 설정파일 생성 스크립 (make-conf) 


/vhosts 디렉토리안에 make-conf 란 파일을 만듭니다. 

# vi    /vhosts/make-conf 

vi 팁 

vi 에서 모두 3가지 모드가 있습니다. 명령모드, 편집모드, 마지막 줄 모드. 

이 3가지 모드 중에서, 위에서 우리가 쓰던 dd 명령은 명령모드에서 실행 한 결과이며, dd 역시 하나의 명령입니다. 명령
모드에선 모든 키가 명령키로 간주되며, 명령모드에서 편집모드로의 전환은 i, a, r, c, o 등 키로 수행이 됩니다. 
지금, 편집 모드로 들어 가시려면 i 를 누르세요. 


그리고, 아래와 같이 명령어들을 입력 합니다. 

nslookup www.MY-DOMAIN | tail -2 | head -1 |cut -c 11- > /vhosts/ip-tmp 

주의!! www.MY-DOMAIN 에는 현재 갖고 계신 도메인 이름을 씁니다. 
예)www.wowlinux.com 

DSN 설정에서 내 도메인의 상태를 출력하고, 결과를 tail 로 넘겨 마지막 2줄을 출력합니다. 
또 결과를 head 로 넘겨 첫 줄을 걸러 낸 다음에 결과를 cut 로 넘겨 11번째 캐릭터부터 출력하여 결과를  /vhosts 내에
ip-tmp
란 파일에 저장합니다. 

read ip < /hosts/ip-tmp 
ip-tmp 내의 내용(현재 ip 주소) 를 읽어내여 변수 ip 에 저장합니다. 

cat /vhosts/basic.conf > /vhosts/httpd.conf 
위에서 만들었던 basic.conf 파일의 내용을 전부 출력하여 /vhosts 내에 httpd.conf 란 파일로 저장합니다. 

echo "NameVirtualHost" $ip >> /vhosts/httpd.conf 
가상호스트 설정의 첫 시작인 "NameVirtualHost IP주소" 문구를 /vhosts/httpd.conf 파일에 추가합니다. 


이제 저장하고 나오시면 됩니다. 

vi 팁 

편집모드에서 명령 모드로 가려면 키보드 제일 윗쪽에 있는 ESC 키를 누르시면 됩니다. 
이제 :x 라고 하셔서 저장하고 나오시면 되겠죠? 




1.3 사용자 마다의 가상호스트 설정 파일 만들어 주는 쉘 스크립 및 새 사용자 추가 기능 (adduser) 


이제 ls -l /usr/sbin/adduser 해보시면, adduser 이란 파일이 useradd 란 파일의 심볼릭 링크로 되어 있을 겁니다. 
그러면, 심볼릭 링크니깐 지워도 무방하겠죠? 

# rm   /usr/sbin/adduser 


adduser 이란 파일을 지웁니다. 

경고!! 
rm /usr/sbin/useradd 하시면 절대 안됩니다!!!! 스펠링 잘 보세요!!! 


이제, 또 다시 vi 에디터를 씁니다. 

# vi   /usr/sbin/adduser 


adduser 이란 파일을 만듭니다. 

현재 빈 파일이죠. 이제 편집모드로 들어갑니다. 
그리고, 아래와 같이 명령어들을 입력 합니다. 

echo -n USER ID: 
#"USER ID:" 라는 메세지를 출력 한다. 

read USER_ID 
#사용자가 입력하게 커서가 반짝이며, 입력한 값을 USER_ID 란 변수에 저장 한다. 

useradd $USER_ID 
#USER_ID 의 값을 불러내여, 사용자 아이디로 하고, 그 아이디에 해당하는 어카운트를 만든다. 

chmod 755 /home/$USER_ID 
#사용자 디렉터리 퍼미션을 755로 변경 한다. 이렇게 해야 웹에서 방문 할수가 있음. 

passwd $USER_ID 
#새로 만들어진 사용자의 비밀번호를 변경한다. 

rm -rf /home/$USER_ID/Desktop 
rm -rf /home/$USER_ID/.kde 
rm -rf /home/$USER_ID/.screenrc 
rm -rf /home/$USER_ID/.kderc 
#보통 웹 호스팅 사용자는 FTP 같은 클라이언트로 서버를 원격조종(REMOTE CONTROL) 하므로 X윈도 가 필요치 않다. 몇
바이트라도 필요없는 파일은 삭제해서 디스크공간을 확보하는 습관을 키우는 것이 서버 관리자로서는 필히 갖추어야 할
것이라고
본다. 그러므로 사용자 계정의 X윈도 관련 파일들을 삭제 한다. 

echo ServerAdmin $USER_ID > /vhosts/$USER_ID 
echo DocumentRoot /home/$USER_ID >> /vhosts/$USER_ID 
echo ServerName $USER_ID.YOUR-DOMAIN >> /vhosts/$USER_ID 
echo ErrorLog /home/$USER_ID/.error.log >> /vhosts/$USER_ID 
echo CustomLog /home/$USER_ID/.access.log common >> /vhosts/$USER_ID 
echo CustomLog /home/$USER_ID/.referer.log referer >> /vhosts/$USER_ID 
echo CustomLog /home/$USER_ID/.agent.log agent >> /vhosts/$USER_ID 

#주의!! 3번 째 줄에, ServerName 있는데 YOUR-DOMAIN 인은 현재 사용자께서 갖고 계시는 도메인 이름 을 넣습니다. 예)
$USER_ID.wowlinux.com 

#이상의 설정은 표준 가성서버 설정이며, 웹에서의 루트 디렉토리는 사용자계정 홈지렉토리(이 디렉토리는 DucomentRoot
/home/$USER_ID/public_html 이같은 방법으로 바꿀 수가 있습니다.) 로 설정 됩니다. 서버 이름, 즉 도메인은 사용자
<이이디.내 도메인> 으로 되며, 로그파일은 사용자계정의 홈디렉토리안에 .파일(숨김파일) 로 저장 됩니다. 만약 로그
파일 하나로 모든 기록을 남기실려면 콤비네이션 으로 하면 됩니다. 
콤비네이션 로그관련 자료는 넷에 가득하니 찾아 보시면 금방 찾을 수 있을걸루 압니다. 

echo "###" $USER_ID "###" 
echo "echo "<VirtualHost $ip>" >> /vhosts/httpd.conf" >> /sbin/web 
echo "cat /vhosts/"$USER_ID ">> /vhosts/httpd.conf" >> /sbin/web 
echo "echo "<Directory" \"/home/$USER_ID\"">"" ">>
/vhosts/httpd.conf" >> /sbin/web 
echo "echo Options ExecCGI >> /vhosts/httpd.conf" >> /sbin/web 
echo "echo </Directory> >> /vhosts/httpd.conf" >> /sbin/web 
echo "echo </VirtaulHost> >> /vhosts/httpd.conf" >> /sbin/web 

#경고!! 4번째 줄 잘 보셔야 합니다. 
한 글자라도 빠뜨리면 결과는 어처구니 없는게 나올 수 있습니다. 
5번째 줄에서, 만약 사용자가 CGI 를 실행하게 하실려면 그대로 두시고, CGI 를 실행하지 못하게 하실려면 앞에 # 를 다세요. 

/sbin/web 
#BATCH 파일을 실행해서 추가된 내용을 적용하고 웹서버를 재시동 한다. 


저장하고 빠져 나오세요. 



1.4 BATCH 실행 파일 (/sbin/web) 


#vi  /sbin/web 

파일에 아래와 같은 문구를 적습니다. 

/vhosts/make-conf 
# 새로운 httpd.conf 파일을 만든다. 

mv -f /vhosts/httpd.conf  /etc/httpd/conf 
# 새로만든 파일을 이동하여 원래파일을 덮어쓴다. 

/etc/rc.d/init.d/httpd  restart 
# 웹서버를 재시동 한다. 





2. 마지막 설정!!!! 


하하.... 힘드셨죠? 이제 마지막 설정 남았어욤... 

머냐면요? 퍼미션 변경!!! 

이제까지 만드신 파일들 중, 퍼미션을 변경해 주어야 작동되는 파일들이 있죠. 

/usr/sbin/adduser 
/sbin/web 
/vhosts/make-conf 


이 세 개의 파일입니다. 

이제 아래와 같이 명령을 넣으셔서 퍼미션을 변경하세요. 

# chmod   700  /usr/sbin/adduser  /sbin/web   /vhosts/make-conf 


야호옷~~ 이제 

# adduser 


하셔서 사용자를 추가하시거나, 아이피가 바졌을 때, 

# web 


하시면, 모든 설정이 자동으로 척척~ 되구, 
나중에 Starting httpd:  [OK] 가 나오면서 새 설정이 적용됩니다. 



3. 이 글의 저작권 


이 글과 소스는 "백두넷 네트워크(BackTo.Net)"와 야옹닷컴(Yawong.com) 의 야옹이가 썼으며, GPL을 따릅니다. 이
글을 어디에나, 누구에게나 보내도 좋으며, 자유 배포가 가능합니다. 
그러나, 도덕상, 이 글을 쓴 사람의 이름을 고치거나 하면 양심에 걸리는 일이겠져? 

완전한 프로그램 패키지는 (그니깐 프로그램 소스를 손으로 일일이 써주지 않아도 된다는 말씀이겠죠? ㅋㅋㅋ) 
httpd://www.yawong.com/download/dynamic_ip.tar 이나 
ftp://ftp.yawong.com/dynamic_ip.tar 에서 구하실 수 있도록 준비
중입니다. 

글믄 모두들 수고하시구요~ 해피리눅싱~~~~~
Regist Addr [ 192.168.0.2 ] 목록보기 윗글 아랫글
정규표현식 [ 상세 검색 ]
Page Loading [ 0.04 Sec ] SQL Time [ 0 Sec ]

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

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