Posted on 2010/01/05 12:44
Filed Under Development/Linux

이번에 오픈수세 서버 세팅 작업하면서 하드 추가하는데 쓸데없이 고생을 해서 내용을 적어본다.

일단 하드를 끼운다!e

그후...

/dev/sd? 가 SCSI 방식의 하드이다 ( IDE 방식은 hd? ) a-z 로 순서대로 가는데 모르던 알파벳이 나왔다면 인식한것이다.

해당 장치 명으로 (여기서는 sdb로 지칭)
fdisk /dev/sdb
들어가게 되면 파티션 작업을 할수 있다.

기존 파티션이 있으면 d 명령으로 삭제하자. 지울 파티션 번호를 입력하라고 한다.

n 으로 새 파티션을 생성한다.
e extended
p primaruy partition (1-4)
라고 나오면 p 를 입력하고 파티션 번호를 입력한다. 여기선 1
나머지는 대부분 엔터로 지나가서 디폴트 값을 입력한다.

최후에 w로 기록한다.

파티션이 잡혔으면 파일시스템을 생성해준다.
mkfs -j ext3 /dev/sdb1

마운트한다.
mkdir /mnt/data
mount -j ext3 /dev/sdb1 /mnt/data

그러면 마운트가 완성된것이다.

하지만 재부팅을 하면 원래대로 돌아간다

fstab 일반

fstab의 필드 구성 | LINUX         2005/05/26 03:51
http://blog.naver.com/boxcj/140013292351
/dev/hda1 /root ext3 default 1 2
파일시스템명시 | 파일위치 | 종류 | 마운트 옵션 | 덤프인자 | 체크시퀸스 번호

fstab은 총 6개의 필드로 구성되어 있다.

1. 파일시스템 명시 : 블럭장치나 마운트될 파일시스템을 명시한다.
- 파일시스템은 디바이스 명을 입력한다.

2. 파일위치 : 마운트하는 지점을 명시한다.

3. 종류: 파일시스템의 종류를 나타낸다
- dos
- ext2
- ext3
- nfs
- swap

4. 마운트옵션: 파일시스템의 마운트 옵션을 나타낸다
- default : 모든것
- noquota : 쿼터 사용안함
- nosuid : SUID접근 불가능
- quota : 쿼터 사용
- ro : 읽기 가능
- rw : 읽기 쓰기 가능
- suid: SUID접근 가능

5. 덤프인자 : 파일시스템이 덤프될 필요가 있는지를 설정한다.
- 0 : 덤프될 필요없음
- 1 : 덤프 필요합

6. 체크시퀸스 번호 : fsck에 의해 수행되는 무결성 검사를 위한 파일시스템 우선순위를 결정한다.
- 0 : 체크 안함
- 1 : 우선적으로 체크
- 2 : 1번이 끝난 후 체크
2010/01/05 12:44 2010/01/05 12:44

Posted on 2008/07/02 11:47
Filed Under Development/Linux

# SSH
-N blacklist
-N ssh
-A INPUT -m state --state NEW -p tcp --dport ssh -j ssh
-A blacklist -m recent --set --name blacklist
-A blacklist -j REJECT
-A ssh -m recent --update --seconds 600 --hitcount 1 --name blacklist -j REJECT
-A ssh -m recent --set --name ssh
-A ssh -m recent --update --seconds 20 --hitcount 5 --name ssh -j blacklist
-A ssh -j ACCEPT


첫 번째 규칙은 접속 주소가 이미 "blacklist"에 들어 있고, 지난 10분간 1회 이상 접속이 있었으면 접속을 거부합니다.

두 번째 규칙은 접속 주소를 "ssh" 목록에 기록합니다.

세 번째 규칙은 접속 주소가 이미 "ssh" 목록에 들어 있고, 지난 20초간 5회 이상 접속이 있었으면 blacklist 체인으로 보냅니다.

네 번째 규칙은 여기까지 통과한 경우 ssh 접속을 허락합니다.

따라서 전체 스크립트는 다음과 같이 됩니다.


2008/07/02 11:47 2008/07/02 11:47

Posted on 2008/07/01 09:14
Filed Under Development/Linux

먼저 호스트 시스템내의 아래 파일을 확인한다

/etc/sysconfig/i18n


파일 내의 다음과 같은 부분을 찾는다

LANG="ko_KR.UTF-8"

혹은

LANG="ko_KR.euc_KR"


그다음 putty설정을 확인한다.

첫번째 경우에는 UTF-8을 선택하고

두번째 경우에는 cp949를 선택한다.

사용자 삽입 이미지

그리고 나서 재접속!

2008/07/01 09:14 2008/07/01 09:14

Posted on 2008/06/27 14:23
Filed Under Development/Linux

1. 컴파일 하기
wget http://www.zdziarski.com/projects/mod_evasive/mod_evasive_1.10.1.tar.gz &&
tar zxvf mod_evasive_1.10.1.tar.gz &&
cd mod_evasive_1.10.1 &&
/usr/local/apache2/bin/apxs -i -a -c mod_evasive20.c

이렇게 하면 mod_evasive20.so 모듈을 자동으로 추가된다.


2. httpd.conf 설정
# mod_evasive 설정
<IfModule mod_evasive20.c>
    DOSHashTableSize    3097
    DOSPageCount        2
    DOSSiteCount        50
    DOSPageInterval     1
    DOSSiteInterval     1
    DOSBlockingPeriod   10
    DOSEmailNotify      takeone@mail.net
    DOSWhitelist        127.0.0.1
    DOSLogDir           "/usr/local/apache2/logs/mod_evasive"
    #DOSSystemCommand    "su - someuser -c '/sbin/... %s ...'"
</IfModule>
아파치 리스타트
/usr/local/apache2/bin/apachectl restart



이하는 번역된 메뉴얼


/* ----------------------------------------------------------------
   - 작 성  자 : 정찬호(master@rootman.co.kr)
   - Homepage : http://www.rootman.co.kr/
   - 최종수정일 : 2003. 12. 08
   - 모듈정보
     Apache DoS Evasive Maneuvers Module
     For Apache 1.3 and 2.0
     Copyright (c) 2002 Network Dweebs Corporation
     Version 1.8 [2003.0901.1845]
   ---------------------------------------------------------------- */

--------------------------------------------------------------------------------------------
*. mod_dosevasive이란 무엇인가
--------------------------------------------------------------------------------------------
   이것은 HTTP Dos 또는 DDos 스택 또는 저돌적인 공격으로부터 아파치를 보호하는데 있습니다.
   이것은 ipchains, 방화벽, 라우터등으로 쉽게 구성될 수 있도록 디자인 되었습니다.

   탐지는 주소, URI의 IP 내부 동적 해쉬테이블을 생성함으로 수행되고, 각 아이피별로 거부됩니다.
   - 초당 몇번 이상의 같은 페이지를 요청하는 경우
   - 초당 같은 자식노드를 동시에 50번 이상 생성하는 경우
   - 일시적으로 블러킹되는 동안 어떠한 요청을 생성하는 경우

--------------------------------------------------------------------------------------------
1. mod_dosevasive 설치
--------------------------------------------------------------------------------------------
   다운로드 :  http://www.rootman.co.kr/bbs/zboard.php?category=11&id=dataroom
                  http://www.nuclearelephant.com/projects/dosevasive/

   [root@rootman root]# tar xvfz mod_dosevasive.1.8.tar.gz
   [root@rootman root]# cd /usr/local/apache/bin
   [root@rootman bin]# ./apxs  -iac ../mod_dosevasive/mod_dosevasive.c
   [root@rootman bin]# ./apxs  -iac ../mod_dosevasive/mod_dosevasive.c
      gcc -DLINUX=22 -DUSE_HSREGEX -fpic -DSHARED_CORE -DSHARED_MODULE -I/usr/local/apache/include  -c ../mod_dosevasive/mod_dosevasive.c
      gcc -shared -o ../mod_dosevasive/mod_dosevasive.so mod_dosevasive.o
      [activating module `dosevasive' in /usr/local/apache/conf/httpd.conf]
      cp ../mod_dosevasive/mod_dosevasive.so /usr/local/apache/libexec/mod_dosevasive.so
      chmod 755 /usr/local/apache/libexec/mod_dosevasive.so
      cp /usr/local/apache/conf/httpd.conf /usr/local/apache/conf/httpd.conf.bak
      cp /usr/local/apache/conf/httpd.conf.new /usr/local/apache/conf/httpd.conf
      rm /usr/local/apache/conf/httpd.conf.new

   [root@rootman root]# vi /usr/local/apache/conf/httpd.conf     <--- 아래두줄이 추가되었나 확인한다.
        LoadModule dosevasive_module  libexec/mod_dosevasive.so
        AddModule mod_dosevasive.c

   [root@rootman /root]# /usr/local/apache/bin/apachectl graceful    <--- 아파치재가동시킨다.


--------------------------------------------------------------------------------------------
2. httpd.conf에는 다음과 같이 설정을 추가한다.
--------------------------------------------------------------------------------------------
  
     DOSHashTableSize     3097
     DOSPageCount         3
     DOSSiteCount         50
     DOSPageInterval      1
     DOSSiteInterval      1
     DOSBlockingPeriod    3600
  


   ----------------------------------------------
   추가적으로 지시자를 추가하실 수 있습니다.
   ----------------------------------------------
    DOSEmailNotify      master@rootman.co.kr
    DOSSystemCommand    "su - someuser -c '/sbin/... %s ...'"

  - DOSHashTableSize 
    각 자식 해쉬테이블 마다 탑레벨 노드의 수를 지정합니다.
    수치가 높으면 높을수록 더 많은 퍼포먼스가 나타나지만 테이블스페이스에 메모리를 남기게 된다

    접속량이 많으면 이 수치를 높혀도 된다.
   
  - DOSPageCount
    이것은 같은 페이지 또는 URI, 인터벌당 요청수에 대한 카운트 수이다.
    지정된 값이 초과되면 클라이언트에 대한 IP 정보가 블러킹리스트에 추가된다.

  - DOSSiteCount
    지정된 시간동안 같은 페이지를 지정된 수 보다 초과될경우 IP 정보가 블러킹리스트에 추가된다.


  - DOSPageInterval
    페이지 카운트 시발점, 디폴트는 1초이다.

  - DOSSiteInterval
    사이트 카운트 시발점, 디폴트는 역시 1초이다.

  - DOSBlockingPeriod
    클라이언트가 블랙리스트에 추가되어 블러킹되는 총 시간.
    이때 클라이언트는 403 (Forbidden) 에러를 출력하게 된다.

  - DOSEmailNotify
    이 값이 지정되면, IP가 블러킹될때마다 지정된 이메일로 발동된다.
   
    주의 : 메일러는 mod_dosevasive.c 에 정확하게 지정되야 한다.
          디폴트는 "/bin/mail -t %s" 이다.

  - DOSSystemCommand
    이 값이 지정되면, 시스템은 아이피가 블러킹될때마다 명령행을 실행한다.
    이것은 아이피 필터링이나 다른 도구를 사용하도록 설계되었습니다.



--------------------------------------------------------------------------------------------
3. 인가된 IP 주소 할당
--------------------------------------------------------------------------------------------
   버전 1.8에서는 아이피가 블러킹되더라도 인가된 클라이언트 아이피에 대해서는 적용되지 않습니다.
   인가시키는 목적은 소프트웨어, 스크립트, 로컬서치로봇, 해당 서버로부터의 많은 요청인한 웹거부로 부터의 또다른 프로그램을 보호하는데 있습니다.

   아파치에서 설정하는 방법은 다음과 같습니다.

   DOSWhitelist    127.0.0.1
   DOSWhitelist    127.0.0.*

   와일드카드는(*) 필요하다면 최대 8진수(xxx.*.*.*)까지 사용할 수 있습니다.


--------------------------------------------------------------------------------------------
4. 테스트 하기
--------------------------------------------------------------------------------------------
   [root@rootman mod_dosevasive]# perl test.pl        
     HTTP/1.1 200 OK
     HTTP/1.1 403 Forbidden
     HTTP/1.1 200 OK
     HTTP/1.1 403 Forbidden
     HTTP/1.1 403 Forbidden

2008/06/27 14:23 2008/06/27 14:23

Posted on 2008/06/27 09:38
Filed Under Development/Linux

1) 물리적으로 연속적인 파일을 생성합니다.
dd if=/dev/zero of=/home/swapfile bs=1024 count=524288
 * count는 MB 용량 * 1024

2) 초기화합니다.
mkswap /home/swapfile

3) 해당 파일을 활성화 합니다.
swapon /home/swapfile

확인은
cat /proc/swaps 또는 free


- 부팅때 마다 설정하려면 다음의 내용을 추가한다.
편집할 파일 :
/etc/rc.d/rc.local

추가할 내용 :
swapon /home/swapfile


2008/06/27 09:38 2008/06/27 09:38

Posted on 2008/06/26 14:57
Filed Under Development/Linux

FTP 접속시 Active mode(활성), Passive Mode(비활성) 두가지 모드가 있는데 Active 의 경우에는 하나의 포트( 21 )를 쓰지만 Passive Mode 에서는 LIST 등의 명령을 위해 하나의 포트가 더 필요하다. 때문에 iptables에도 설정을 해주어야 한다.


1. vsftpd의 설정

[root@home]# vi /etc/vsftpd/vsftpd.conf

.

.

pasv_enable=YES
pasv_promiscuous=YES
pasv_min_port=50000
pasv_max_port=
50000


[root@home]# /etc/init.d/vsftpd restart
vsftpd를 종료하고 있습니다:                                [  확인  ]
vsftpd에 대한 vsftpd을 시작합니다:                         [  확인  ]



2. iptables의 설정

vsftpd에 추가한 포트(30999)를 iptables에서 열어주어야 한다.


[root@home]# vi /etc/sysconfig/iptables

.

.
#ftp passive mode
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport
50000 -j ACCEPT


[root@home]# /etc/init.d/iptables restart
방화벽 규칙을 지웁니다:                                    [  확인  ]
chains를 ACCEPT 규칙으로 설정합니다: filter                [  확인  ]
iptables 모듈을 업로드하고 있습니다:                       [  확인  ]
iptables 방화벽 규칙들을 적용합니다:                       [  확인  ]

2008/06/26 14:57 2008/06/26 14:57

Posted on 2007/01/25 17:13
Filed Under Development/Linux

- 명령어




h: 좌 이동
l : 우 이동
j : 위 이동
k : 아래 이동




$ : 줄 끝으로


^ : 줄 처음으로(빈칸무시)


0 : 줄 처음으로


w : 다음 단어 처음으로 이동


b : 이전 단어 처음으로 이동


e : 단어 끝으로 이동




% : 짝을 이루는 기호 블럭이동 <>(){}[]


(,),{,},[[,]],[{,]}, ctr+[, ctr+] : 블럭이동




gg : 문장 처음으로 이동


G : 문장 마지막 으로 이동
nG=ngg : n번째행으로 이동



화면상단 : H
화면중앙 : M
하면하단 : L



페이지 up : ctr+b           (backward)
페이지 1/2 up : ctr+u     (up)
페이지 1/2 down : ctr+d (down)
페이지 down : ctr+f        (forward)




z<enter> : 현재행을 상단으로
z. : 현재행을 중앙으로
z- : 현재행을 하단으로




a : 오른쪽에 문자 삽입


A : 행 끝에 문자 삽입


i : 왼쪽에 문자 삽입


I : 행의 처음에 문자 삽입


o : 다음 라인에 문자 삽입


O : 윗 라인에 문자 삽입




r : n 개의 문자를 원하는 문자로 수정
R : 끼워넣기 모드가 아닌 수정 모드로 변환
x : 오른쪽 n개 지움
X : 왼쪽 n개 지움
s : n개의 문자를 삭제후 입력 모드로
S : n개의 라인 삭제후 입력 모드로


c : 문자 바꾸기 (s 의 다른 점은 w,b,$,^ 등과 같이 사용 가능)


cc=S : 줄 바꾸기


C : 커서 이후 한줄 바꾸기




y<move> : n 개 좌우면 문자 상하면 라인 복사 (ex: y+3+j  or 3+y+l)
Y=yy : n 라인 복사
d<move> : n 개 좌우면 문자 상하면 라인 삭제 (ex: d+3+j or 3+d+l)
d$ = D : 현재줄에서 커서 이후 모두 삭제


d^ : 현재줄에서 커서 앞 모두 삭제


dd : 현재줄 삭제


D : 현재줄에서 커서 이후 모두 삭제




p : 커서 뒤에 버퍼값 붙여넣음


P : 커서 앞에 버퍼값 붙여넣음




v : 커서 선택모드
V : 라인 선택모드


(x : 선택부분 짤라냄, y : 선태부분 복사, = : 선태부분 정렬)




? : 위로 찾을 문자 입력


/ : 아래로 찾을 문자 입력


* : 커서가 있는 단어 찾기 및 아래로 찾기


n : 아래로 찾기


N : 위로 찾기



undo : u
redo : ctr-r



== : 현재줄 자동정렬
~ : 대소문자 토글
<< : 윈도우의 shift+tab 과 같은기능
>> : 윈도우의 tab 키와 같은기능



J : 라인 연결
.  : 최근 명령 반복
& : 최근의 ex 교체 명령 반복




m<0-9,a-z,A-Z> : 해당 라인을 마킹한다.


'<0-9,a-z,A-Z> : 마킹한 라인으로 이동.


`<0-9,a-z,A-Z> : 마킹한 라인 첫번째 문자로 이동




q<0-9,a-z,A-Z> : 레코딩시작


q : 레코딩 끝


@<0-9,a-z,A-Z> : 레코딩 적용


@@ : 이전 레코딩 적용


n@@ : n번 레코딩 적용




- ex 명령어




vi 에서 사용하는 ex 명령어는 이전 ex 편집기에서 지원하던 기능들입니다. ex 모드(콜론 모드) 에서 사용하는 명령어는 열기(open), 저장(save) 다른 이름으로 저장(save as) 등의 명령을 수행합니다.




:1,$s/문자열1/문자열2/g   : 문자열1 을 문자열2 로 변환


:s/문자열1/문자열2 : 현재 라인에 문자열 변환




:w - 저장


:q - 종료


:wq - 저장후 종료


:w! - 강제 저장(read-only 에서)


:q! - 저장안하고 종료




:r file_name : 현재 위치에 file_name 읽어 들이기


:w file_name - 새이름으로 저장


:w %.new - 현재 파일명에 .new 를 붙여서 새로 저장




:200,$ w file-name : 200 줄 부터 끝까지 새 이름 저장


:.,600 w file-name : 현재줄부터 600줄까지 새 이름 저장


:1,10 w file_name : 1줄 부터 10줄 까지 새 이름 저장


:340,$ w >> file_name : 340 줄 부터 끝까지 file_name 에 추가 하기




:1,10 d : 라인 1~10 삭제


:1,$ d : 전체 삭제


:!<명령어>  : [예 :!pwd , :!ls 등] command 명령어를 실행한다.


:1,$ s/[a-z]/\u&/g : 소문자를 대문자로 변환


:1,$ s/[A-Z]/\l&/g : 대문자를  소문자로 변환




:30,33 co 5 : 30 부터 33 라인을 복사해서 5라인 이후(6라인부터) 삽입한다.
                 - 일정 라인을 copy 해서 첫라인 혹은 맨마지막 라인에 삽입
:30,33 co 0 : 첫 라인에 삽입
:30,33 co $ : 마지막 라인에 삽입




- 정규 표현식




? : 한글자를 대표 하는 기호


* : 여러개의 문자를 동시에 대표 하는 기호


^ : 줄의 처음


$ : 줄의 맨끝


% : 처음줄 부터 끝줄 까지


\ : 특수한 의미의 기호 무시 (\$ 는 끝줄이 아닌 그냥 $ 를 의미)


< : 단어의 시작


> : 단어의 끝


[^] : 묶어진 문자를 제외한 아무것이나 대응함


[A-Z] : A,B,C,D ... X,Y,Z 를 의미함


[a-z] : a,b,c,d ... x,y,x 를 의미함


[0-9] : 1,2,3,4,5,6,7,8,9,0 를 의미


[A-Z,a-z,0-9] :


[AB] : A or B


p[aeiou]t : pat,pet,pit, pot, put 를 의미함




윈도우용 vim


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




set nocompatible " vim 확장기능 사용함


set autoindent " 자동으로 들여쓰기를 한다.
set cindent " C 프로그래밍을 할때 자동으로 들여쓰기를 한다.
set smartindent " 좀더 똑똑한 들여쓰기를 위한 옵션이다.
set textwidth=79 " 만약 79번째 글자를 넘어가면 자동으로 <CR>를 삽입하여 다음 줄로 넘어간다.
set nowrapscan " 검색할 때 문서의 끝에서 다시 처음으로 돌아가지 않는다.
set nobackup " 백업 파일을 만들지 않는다.


set noswapfile " swap 파일을 만들지 않는다.
set visualbell " 키를 잘못눌렀을 때 삑 소리를 내는 대신 번쩍이게 한다.
set ruler " 화면 우측 하단에 현재 커서의 위치(줄,칸)를 보여준다.
set tabstop=4 " Tab을 눌렀을 때 8칸 대신 4칸 이동하도록 한다.
set shiftwidth=4 " 자동 들여쓰기를 할때 4칸 들여쓰도록 한다.


set guifont=돋움체:h10:cHANGEUL " 화면 폰트를 설정한다.


set guioptions=gmrLtT " 화면 설정을 한다.


set guioptions-=LtT " 화면에서 툴바를 뺀다.


set number
set showmatch " <>{}[]() 등을 알려준다.


set paste " 붙여넣기시 계단현상 방지


set nojoinspaces " J 명령어로 줄을 붙일때 마침표뒤 한칸만 뜀


set ignorecase " 찾기시 대소문자 구별안함




" 문서를 읽을 때 BOM 을 자동으로 제거하려면, fencs 맨 앞에 ucs-bom 를 추가하세요.


set enc=utf-8  " 화면에 보여주는 encoding 방식


set tenc=utf-8 " 터미널에서 보여주는 encoding 방식


set fenc=utf-8 " 수정하려는 파일의 encoding 방식


set fencs=utf-8,cp949,cp932,euc-kr,euc-jp,shift-jis,big5,latin1,ucs-2le




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


" Proc syntex 적용


1. 첨부 파일 proc.vim 을 $VIMRUNTIME/syntex/ 밑에 넣는다.




주의 : 파일이름이 반드시 proc.vim 이어야 한다.




2. gvim.exe 가 있는 폴더에서 filetype.vim 을 열어 다음을 추가한다.




au BufNewFile,BufRead *.pc   setf proc




참고 : gvim 7.0 의 경우


au BufNewFile,BufRead .pc   setf proc 와 같이 이미 들어 있으므로 .pc 를 *.pc 로 수정만 하면 된다.




" 실행중 파일형식을 적용할때


setfiletype proc " Pro*C 타입을 적용한다.




참고 사이트 : http://www.vim.org/scripts/script.php?script_id=655


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




1. vi의 시작























명령어


작업 설명


vi filename


파일 열기, 작성


vi +18 filename


18행으로 파일 열기


vi +/"string" fn


"string"의 처음발생 단어부터 열기


vi -r filename


손상된 파일 회복


view filename


읽기 전용으로 파일 열기



2. 커서의 이동 명령























명 령 어


작 업 설 명


h(←)
j(↓)
k(↑)
l(→)


왼쪽으로 커서 이동
아래로 커서 이동
위로 커서 이동
오른쪽으로 커서 이동


w
b


한 단어 오른쪽으로 커서 이동
한 단어 왼쪽으로 커서 이동


^
$


라인의 처음으로 이동
라인의 마지막으로 이동


H
M
L


화면의 맨 위로 이동
화면의 중간으로 이동
화면의 맨 아래로 이동


Ctrl+F
Ctrl+D
Ctrl+B
Ctrl+U


한 화면 뒤로 이동
반 화면 뒤로 이동
한 화면 앞으로 이동
반 화면 앞으로 이동



3. 문자와 행삽입





























명 령 어


작 업 설 명


a


커서 오른쪽에 문자 삽입


A


커서 오른쪽, 행의 끝에 문자 삽입


i


커서 왼쪽에 문자 삽입


I


커서 왼쪽, 해의 처음에 문자 삽입


o


커서 아래에 행 삽입


O


커서 위에 행 삽입


<ESC>


작업 종료후 <ESC> 입력



4. 텍스트 변경


























명 령 어


작 업 설 명


cw (종료 :ESC)


단어 변경


R (종료 :ESC)


현재 커서 위치부터 대체


r


커서 위치 문자를 다른 문자로 대체


~


문자형(대, 소문자)변경


J


현재 행과 아래 행 결합


u


이전 명령 취소



5. 텍스트 삭제























명령어


작 업 설 명


x


문자 삭제


dw


단어 삭제


dd


행 삭제


D


커서 오른쪽 행 삭제


;5, 10 d


5-10번째 삭제



6. 텍스트 복사 및 이동


























명 령 어


작 업 설 명


yy


행 yank


Y


행 yank


p


yank되거나 삭제된 행 현재 행 아래에 삽입


P


yank되거나 삭제된 행 현재 행 위에 삽입


:1,2 co 3


1-2행을 3행 다음으로 복사


:4,5 m 6


4-5행을 6행 다음으로 이동



7. 행 번호 설정














명 령 어


작 업 설 명


:set nu


행 번호 표시


:set nonu


행 번호 숨기기



8. 행 찾기

















명 령 어


작 업 설 명


G


파일의 마지막 행으로 가기


21G


파일의 21번째 행으로 가기


:n


n 라인으로 가기



9. 탐색 및 대체





























명 령 어

> 작 업 설 명

/string

> string 탐색

?string?

> string 역방향 탐색

n

> string의 다음(이전) 계속 탐색

:g/search-string/s//


replace-string/gc


각 발생 탐색 후 확인하고 대체


:s/str/rep/

> 현재 행의 str을 rep로 대체

:1,.s/str/rep/

> 1부터 현재 행의 str을 rep로 대체

:%s/str/rep/g

> 파일 전체 str을 rep로 전부 대체


10. 파일을 파일로 삽입














명령어

> 작 업 설 명

:r filename

> 커서 다음에 파일 삽입

:34 r filename

> 파일을 34번째 행 다음에 삽입
2007/01/25 17:13 2007/01/25 17:13
TAG : ,

Posted on 2007/01/17 20:17
Filed Under Development/Linux

[에러 내용] :
Warning: Can't connect to local MySQL server through socket '/home/manpage/mysql.sock' (111) in
...
111에러발생...

[문제의 원인]
실제로 mysqld 에 의한 socket 파일은 /tmp/mysql.sock 에 존재하는데 PHP 나 mysql 과 같은 프로그램들은
그 파일을 /var/lib/mysql/mysql.sock 에서 찾는다.
그러니 당연히 mysqld 와 의사소통이 될리가 없고, 접속이 안된다고 에러가 납니다.

[해결방법]
1. ln -sf /tmp/mysql.sock /var/lib/mysql/mysql.sock
이 해결법은 가장 간단하게 할 수 있지만 문제점은 리부팅 되고 나면 그때마다 다시 이 soft link 를 걸어 줘야 합니다.
왜냐하면 이 파일은 일반적인 파일이 아닌 unix socket 파일이기 때문입니다.
2007/01/17 20:17 2007/01/17 20:17

Posted on 2007/01/17 16:57
Filed Under Development/Linux

[Thu Jul 11 17:18:39 2002] [error] [client foo.bar.com] client denied by server configuration: /www


httpd.conf파일 열어서


아래와 같은 부분을 수정하면 됩니다.


<Directory />
   Options FollowSymLinks
   AllowOverride None
   Order deny,allow
   Deny from all (삭제 : 기본설정임)
   Allow from all (추가)
</Directory>

2007/01/17 16:57 2007/01/17 16:57

Posted on 2007/01/17 16:41
Filed Under Development/Linux


############################################################# 
# 
# 문제가 발생했을 때에는 httpd.conf (srm.conf, access.conf) 설정 파일의 
# 문법을 제대로 지켰는지 먼저 점검하고 다른 아파치 관리자들에게 도움을 
# 요청하는 것이 좋습니다. 
# 
# /usr/sbin/httpd 명령에 -t 옵션을 주면 문법만 점검합니다. 
# 기타 다른 옵션에 대하여 알고 싶을 때에는 -h 옵션을 사용하십시오. 
# 
# 예1) 문제가 없는 경우 
# 
# # /usr/sbin/httpd -t 
# Syntax OK 
# 
# 예2) 설정에 실수가 있는 경우 
# 
# #/usr/sbin/httpd -t 
# Syntax error on line 91 of /etc/httpd/conf/httpd.conf: 
# ServerType must be either 'inetd' or 'standalone' 
# 
############################################################# 
# -- 
# 
# 간단한 용어 정리) 
# 
# -- 
# 
# Rob McCool 씨의 NCSA 서버 설정 파일에 기초한 것임. 
# 
# 이 파일은 아파치(Apache) 서버 주 설정 파일이다. 이 파일에 들어있는 
# 설정 지시자(directive)를 통해 서버의 작동 방식을 지시한다. 
# 각 지시자에 대한 자세한 정보를 원하면 http://www.apache.org/docs를 
# 참고하라. 
# 
# 정확한 이해 없이 대충 읽어나가는 일이 없도록 하자. 여기에 적은 내용을 
# 그대로 여러분의 상황에 적용시키려 하지 말라. 다음 내용은 실제 지시 
# 내용을 위한 힌트라고만 생각하자. 내용에 대하여 의문이 있을 때에는 
# 온라인 문서를 참조하라. 이 사실에 대하여 지금 여러분에게 충분히 
# 경고해 두었음을 밝히는 바이다. 
# 
# 아파치 서버는 이 파일을 읽고 난 후, /home/httpd/conf/srm.conf 파일을 
# 처리하고 그 다음 /home/httpd/conf/access.conf 파일을 읽는다. 
# 지금 현재 이 설정 파일 안에서 ResourceConfig, AccessConfig 지시자를 사용하여 
# 설정 파일 이름을 바꾸면, 변경된 이름의 설정 파일을 읽는다. 
# (여기서 /home/httpd 부분은 아파치 서버의 기본 디렉토리로 대체하여 
# 생각하면 된다. 예를 들어 여러분이 직접 아파치를 컴파일하여 설치하는 
# 경우에는 일반적으로 /usr/local/apache 가 된다. 컴파일하여 직접 설치할 
# 때에는 패키지와 충돌되지 않도록 둘 중 하나만 사용하라.) 
# 
# 지시자는 3 개의 기본적인 섹션으로 묶여 있다: 
# 
# 1. 아파치 서버 프로세스의 전반적인 작동을 제어하는 지시자 
# ('global environment, 전체 환경') 
# 
# 2. 가상 호스트에 의해 처리되지 않는 요청을 모두 처리하는 주 서버 또는 
# 기본 서버의 작동을 제어하는 지시자. 
# 
# 이 지시자 내용은 모든 가상 호스트의 기본값이기도 하다. 
# 3. 다른 IP 주소 또는 다른 호스트 이름에 대한 요청을 처리할 가상 
# 호스트 설정 
# 
# 설정 파일과 로그 파일 이름 : 만약 파일 이름이 "/"로 (또는 Win32 버전의 
# 경우 "드라이브명:/" ) 시작하면 주어진 파일 이름 그대로를 사용한다. 
# 그러나 "/" 로 시작하지 않을 때에는 ServerRoot 의 값이 그 앞에 추가된다. 
# 따라서 "logs/foo.log"는 ServerRoot 값 (예를 들어 "/usr/local/apache")이 
# 앞에 추가되어 서버는 최종적으로 "/usr/local/apache/logs/foo.log"를 
# 사용한다. 
# 
############################################################# 

### 섹션 1 : 전체 환경 (Global Environment) 
# => 이곳 부터는 실제 아파치 서버의 중요한 설정부분입니다. 

# 
# 이 섹션에 적힌 지시자는 예를 들어 아파치 서버가 처리할 수 있는 동시 
# 요청의 갯수라든지 다른 설정 파일의 이름 등 아파치 서버의 전반적인 
# 작동에 영향을 미친다. 
# 
# 서버 유형(ServerType)은 inetd 또는 standalone 둘 중 하나이다. 
# inetd 방식은 유닉스 플랫폼에서만 지원된다. 
# 
ServerType standalone 
# => standlone타입과 inetd타입이 있으나 클라아언트의 요구에 신속한 반응을 
#위해서는 standalone모드를 권장합니다. 

# 
# 서버 루트(ServerRoot) : 서버의 설정 파일, 에러 파일, 로그 파일이 
# 기록되는 디렉토리의 최상위 경로명. 
# 
# 주의! 만약 서버 루트를 NFS (또는 기타 네트웍 파일 시스템) 마운트된 
# 곳에 두고자 한다면 LockFile 문서를 꼭 읽어보아야 한다. 
# (<URL:http://www.apache.org/docs/mod/core.html#lockfile>;); 
# 문서를 읽고 나면 앞으로 닥칠 지 모르는 몇 가지 문제점을 피할 수 있다. 
# 
# 디렉토리 경로 뒤에 슬래쉬(/) 문자를 쓰지 않는다!!! 
# 
ServerRoot "/etc/httpd" 
# => 웹서버에 관련된 환경설정 파일과 에러,로고파일들이 존재하는 위치 
# 주의:디레토리의 마지막에 / 를 붙이지 말것 

# 
# LockFile 지시자는 아파치를 USE_FCNTL_SERIALIZED_ACCEPT 또는 
# USE_FLOCK_SERIALIZED_ACCEPT 옵션을 주고 컴파일한 경우, 잠금 파일을 
# 경로를 지정할 때 사용한다. 이 지시자 값은 일반적으로 기본값이 
# 되도록 놔둔다. 이 값을 바꾸는 경우는 로그 디렉토리가 NFS 마운트된 
# 곳에 있는 경우로서 잠금 파일은 항상 네트웍 파일 시스템이 아닌 
# 로컬 디스크에 저장되어야 하기 때문이다. 주 서버 프로세서의 PID 값이 
# 자동으로 파일 이름 뒤에 붙는다. 
# 
LockFile /var/lock/httpd.lock 

# 
# PidFile: 서버가 시동될 때 자신의 프로세스 고유 번호를 기록할 파일 
# 
PidFile /var/run/httpd.pid 

# 
# ScoreBoardFile: 내부 서버 프로세스 정보를 기록하는데 사용하는 파일. 
# 모든 아키텍쳐에서 꼭 필요한 것은 아니다. 하지만 필요하다고 생각하는 
# 경우에는 하나의 아파치 프로그램을 두 번 이상 실행시키는 경우 값이 
# 중복되지 않도록 해주는 것만 잊지 않으면 된다. 
# 
ScoreBoardFile /var/run/httpd.scoreboard 

# 
# 표준 설정에서 서버는 httpd.conf, src.conf, access.conf 파일을 
# 차례대로 읽어나간다. 나중에 있는 2 개의 파일은 현재 아무 내용도 
# 없는 빈 상태로 배포되고 있다. 왜냐하면 모든 지시자를 그냥 하나의 
# 파일에 적는 것이 더욱 명료하기 때문이다. 주석으로 처리되어 있는 
# 값은 기본값이다. 서버가 이 파일 내용을 무시하도록 하기 위해서는 
# "/dev/null" (유닉스의 경우) 또는 "nul" (Win32) 값을 지정한다. 
# 
#ResourceConfig conf/srm.conf 
#AccessConfig conf/access.conf 

# 
# Timeout: 받기/보내기 타임 아웃 시간 
# 웹 브라우저에게 타임아웃 신호를 보낸 때까지의 기다리는 시간 (단위: 초) 
# 
Timeout 300 

# KeepAlive: 지속성(persistent) 접속을 허가할 것인가 말 것인가? 
# => 한번 연결에 대하여 한번이상의 요청을 허용할 것인가 아닌가의 여부 
# (한 번의 접속에서 여러 개의 요청을 처리할 것인가 여부) 
# 허가하지 않기 위해서는 "Off"로 설정한다. 
# 허가하지 않는 것과 허가하는 것과의 효율 차이는 매우 크다. 
# 
KeepAlive On 

# 
# MaxKeepAliveRequests: The maximum number of requests to allow 
# during a persistent connection. Set to 0 to allow an unlimited amount. 
# We recommend you leave this number high, for maximum performance. 
# 
MaxKeepAliveRequests 100 

# 
# KeepAliveTimeout: Number of seconds to wait for the next request from the 
# same client on the same connection. 
# 
KeepAliveTimeout 15 

# 
# Server-pool size regulation. Rather than making you guess how many 
# server processes you need, Apache dynamically adapts to the load it 
# sees --- that is, it tries to maintain enough server processes to 
# handle the current load, plus a few spare servers to handle transient 
# load spikes (e.g., multiple simultaneous requests from a single 
# Netscape browser). 
# 
# It does this by periodically checking how many servers are waiting 
# for a request. If there are fewer than MinSpareServers, it creates 
# a new spare. If there are more than MaxSpareServers, some of the 
# spares die off. The default values are probably OK for most sites. 
# 
MinSpareServers 5 
MaxSpareServers 20 

# 
# Number of servers to start initially --- should be a reasonable ballpark 
# figure. 
# 
StartServers 5 

# 
# Limit on total number of servers running, i.e., limit on the number 
# of clients who can simultaneously connect --- if this limit is ever 
# reached, clients will be LOCKED OUT, so it should NOT BE SET TOO LOW. 
# It is intended mainly as a brake to keep a runaway server from taking 
# the system with it as it spirals down... 
# 
MaxClients 150 

# 
# MaxKeepAliveRequests: 지속성 접속 기간 동안 처리할 수 있는 최대 요청 갯수 
# 0 을 넣으면 무한대이다. 높은 성능을 내기 위해서 높은 값을 추천한다. 
# 
MaxRequestsPerChild 1000 

# 
# Listen: 아파치를 기본값 이외에도 특정 IP 주소 또는 포트에 연결하도록 
# 해준다. <VirtualHost> 지시자도 참고하라. 
# 
#Listen 3000 
#Listen 12.34.56.78:80 
Listen 80 

# 
# BindAddress: 이 옵션을 사용하여 가상 호스트를 지원할 수 있다. 
# 이 지시자를 이용하여 서버가 귀기울일 IP 주소를 지시할 수 있다. 
# "*", IP 주소, 또는 완전한 인터넷 도메인 이름을 사용할 수 있다. 
# <VirtualHost>, Listen 지시자도 참고하라. 
# 
#BindAddress * 
#=> 가상 호스트, 즉 실제 리얼 IP 한 개에 여러개의 도메인 네임을 
#등록시킬 경우 ( 이방법으로 호스팅 사업을 하는 사업체가 많다.) 
#자세한 것은 맨아래 <VirtualHost> 부부을 참고하십시요. 
#버츄얼 호스트를 하실려면 #을 삭제하십시요. 

# 
#동적 공유 객체(Dynamic Shared Object, DSO) 지원 
# 
# DSO 방식으로 만들어진 모듈의 기능을 사용하기 위해서는 그 기능에 관련된 
# 지시자를 사용하기에 앞서 알맞게 `LoadModule' 지시자로 모듈을 
# 지시해주어야 한다. DSO 작동방식에 대하여 자세히 알고 싶은 사람은 
# 아파치 1.3 배포 파일의 README.DSO 를 읽어보라. 여러분이 갖고 있는 
# httpd 바이너리에 내장된(정적으로 링크되어 항상 사용가능한) 모듈 목록을 
# 알고 싶을 때에는 `httpd -l' 명령을 실행한다. 
# *주의* 모듈을 적재하는 순서는 매우 중요하다. 전문가의 조언 없이 
# 아무렇게나 순서를 바꾸지 말라. 
# 
# 예 : 
# LoadModule foo_module modules/mod_foo.so 
# 
# 모듈 관련 문서는 HTML 형식으로 "/home/httpd/manual/mod" 에 놓아두었다. 
# 
# *주의* LoadModule 설정을 하나라도 바꾸었다면 LoadModule 설정 뒤에 따라 
# 나오는 AddModule 설정도 똑같이 바꾸어주기 바란다. 
# 
#LoadModule mmap_static_module modules/mod_mmap_static.so 
LoadModule vhost_alias_module modules/mod_vhost_alias.so 
LoadModule env_module modules/mod_env.so 
LoadModule config_log_module modules/mod_log_config.so 
LoadModule agent_log_module modules/mod_log_agent.so 
LoadModule referer_log_module modules/mod_log_referer.so 
#LoadModule mime_magic_module modules/mod_mime_magic.so 
LoadModule mime_module modules/mod_mime.so 
LoadModule negotiation_module modules/mod_negotiation.so 
LoadModule status_module modules/mod_status.so 
LoadModule info_module modules/mod_info.so 
LoadModule includes_module modules/mod_include.so 
LoadModule autoindex_module modules/mod_autoindex.so 
LoadModule dir_module modules/mod_dir.so 
LoadModule cgi_module modules/mod_cgi.so 
LoadModule asis_module modules/mod_asis.so 
LoadModule imap_module modules/mod_imap.so 
LoadModule action_module modules/mod_actions.so 
#LoadModule speling_module modules/mod_speling.so 
LoadModule userdir_module modules/mod_userdir.so 
LoadModule alias_module modules/mod_alias.so 
LoadModule rewrite_module modules/mod_rewrite.so 
LoadModule access_module modules/mod_access.so 
LoadModule auth_module modules/mod_auth.so 
LoadModule anon_auth_module modules/mod_auth_anon.so 
LoadModule db_auth_module modules/mod_auth_db.so 
#LoadModule digest_module modules/mod_digest.so 
#LoadModule proxy_module modules/libproxy.so 
#LoadModule cern_meta_module modules/mod_cern_meta.so 
LoadModule expires_module modules/mod_expires.so 
LoadModule headers_module modules/mod_headers.so 
#LoadModule usertrack_module modules/mod_usertrack.so 
#LoadModule example_module modules/mod_example.so 
#LoadModule unique_id_module modules/mod_unique_id.so 
LoadModule setenvif_module modules/mod_setenvif.so 
#LoadModule bandwidth_module modules/mod_bandwidth.so 
#LoadModule put_module modules/mod_put.so 

# 
# 다음 모듈은 아파치 펄 모듈로서 CGI 스크립트로 펄을 많이 사용하는 
# 사람들에게 펄 코드 실행 속도의 향상을 가져다 줍니다. 
# 
# 주의 : 설정을 바꾼 후 한 가지 할 일이 더 있다. 
# <Location /perl> ... </Location> 
# 위와 같은 설정을 찾아서 펄 스크립트를 사용할 수 있는 
# 디렉토리를 설정해주어야 한다. 
# 
<IfDefine HAVE_PERL> 
LoadModule perl_module modules/libperl.so 
</IfDefine> 

# 
# 확장 모듈 
# 
<IfDefine HAVE_PHP> 
LoadModule php_module modules/mod_php.so 
</IfDefine> 

# 
# 다음 모듈은 MySQL 데이터베이스와 더불어 서버 스크립팅 언어로 인기를 
# 누리고 있는 PHP3 모듈입니다. 
# 
<IfDefine HAVE_PHP3> 
LoadModule php3_module modules/libphp3.so 
</IfDefine> 
<IfDefine HAVE_PHP4> 
LoadModule php4_module modules/libphp4.so 
</IfDefine> 
<IfDefine HAVE_DAV> 
LoadModule dav_module modules/libdav.so 
</IfDefine> 
<IfDefine HAVE_ROAMING> 
LoadModule roaming_module modules/mod_roaming.so 
</IfDefine> 
<IfDefine HAVE_SSL> 
LoadModule ssl_module modules/libssl.so 
</IfDefine> 

# 
# 모듈 실행 순서를 정확하게 하기 위해 사용 가능한 모듈(정적 또는 공유 
# 모듈 포함)로부터 완전한 목록을 다시 만들어 둔 것이다. 
# [LOADMODULE 섹션을 하나라도 수정했다면 이 부분도 역시 알맞게 수정하라] 
# 
ClearModuleList 
#AddModule mod_mmap_static.c 
AddModule mod_vhost_alias.c 
AddModule mod_env.c 
AddModule mod_log_config.c 
AddModule mod_log_agent.c 
AddModule mod_log_referer.c 
#AddModule mod_mime_magic.c 
AddModule mod_mime.c 
AddModule mod_negotiation.c 
AddModule mod_status.c 
AddModule mod_info.c 
AddModule mod_include.c 
AddModule mod_autoindex.c 
AddModule mod_dir.c 
AddModule mod_cgi.c 
AddModule mod_asis.c 
AddModule mod_imap.c 
AddModule mod_actions.c 
#AddModule mod_speling.c 
AddModule mod_userdir.c 
AddModule mod_alias.c 
AddModule mod_rewrite.c 
AddModule mod_access.c 
AddModule mod_auth.c 
AddModule mod_auth_anon.c 
AddModule mod_auth_db.c 
#AddModule mod_digest.c 
#AddModule mod_proxy.c 
#AddModule mod_cern_meta.c 
AddModule mod_expires.c 
AddModule mod_headers.c 
#AddModule mod_usertrack.c 
#AddModule mod_example.c 
#AddModule mod_unique_id.c 
AddModule mod_so.c 
AddModule mod_setenvif.c 
#AddModule mod_bandwidth.c 
#AddModule mod_put.c 
<IfDefine HAVE_PERL> 
AddModule mod_perl.c 
</IfDefine> 
<IfDefine HAVE_PHP> 
AddModule mod_php.c 
</IfDefine> 
<IfDefine HAVE_PHP3> 
AddModule mod_php3.c 
</IfDefine> 
<IfDefine HAVE_PHP4> 
AddModule mod_php4.c 
</IfDefine> 
<IfDefine HAVE_DAV> 
AddModule mod_dav.c 
</IfDefine> 
<IfDefine HAVE_ROAMING> 
AddModule mod_roaming.c 
</IfDefine> 
<IfDefine HAVE_SSL> 
AddModule mod_ssl.c 
</IfDefine> 

# 
# ExtendedStatus 지시자는 "server-status" 처리기가 호출되었을 때 
# 아파치가 "매우 자세한" 상태 정보를 생성시킬 것인지 
# (ExtendedStatus On) 아니면 매우 기본적인 정보만 생성시킬 것인지를 
# (ExtendedStatus Off) 제어한다. 기본값은 Off 이다. 
# 
#ExtendedStatus On 

############################################################# 

### 섹션 2: '주(Main)' 서버 설정 

# 
# 이 섹션에 있는 지시자는 <VirtualHost> 정의에 의해 처리되지 않는 
# 모든 요청에 응답할 '주' 서버가 사용할 값을 정한다. 
# 이 값들은 또한 이 파일 뒷 부분에서 정의할 모든 <VirtualHost> 
# 컨테이너의 기본값을 제공하기도 한다. 
# 
# 여기 나오는 모든 지시자는 <VirtualHost> 컨테이너 안에서도 사용할 
# 수 있으며 그 안에서 사용되면 해당 가상 호스트에 대하여 전체 
# 기본값을 무시하고 새롭게 정한 값이 채택된다. 
# 
# 
# 만약 ServerType ('Global Environment' 섹션에서 설정)이 "inetd"인 
# 경우, inetd 설정 내용을 따르기 때문에 다시 몇 가지 지시자는 
# 아무런 효력을 발휘하지 않는다. 
# ServerAdmin 지시자까지 그냥 건너뛴다. 
# 
# 
# Port: 독립실행형(standalone) 서버가 요청을 기다리는 포트. 
# 1023 번보다 낮은 번호의 포트에 대해서는 httpd가 처음에는 
# root 권한으로 실행되어야 한다. 
# 
Port 80 
# => 웹서버의 포트번호 (아파치 웹서버는 80을 기본포트로 합니다.) 

# 
# httpd가 다른 사용자 또는 그룹 권한으로 실행되게 하려면 우선은 
# httpd가 root 사용자 권한으로 실행되고 나서 설정한 다른 사용자 
# 권한으로 전환해야 한다. 
# 
# User/Group: httpd가 실행된 권한의 사용자/그룹의 이름(또는 #번호). 
# . SCO (ODT 3)에서는 "User nouser"와 "Group nogroup"을 사용한다. 
# . UPUX 에서는 nobody로 실행하는 경우 공유 메모리를 사용할 수 
# 없을 것이다. 이 때는 www 등의 사용자를 만들고 그 사용자 권한으로 
# 실행되도록 한다. 
# 주의) 몇몇 커널들은 60000 이상의 (unsigned) 그룹 값을 설정하면 
# setgid(Group), semctl(IPC_SET) 함수를 거부한다. 
# 이런 시스템에서는 Group #-1을 사용하지 말라! 
# 
User nobody 
Group nobody 
# => 웹서바를 실행할 때 소유권을 갖는 사용자와 그룹 
# * 주의 : 사용자와 그릅을 root로 하면 보안상 위험! 
# 
# ServerAdmin: 서버에 문제가 발생했을 때 메일을 보낼 메일 주소. 
# 이 주소는 예를 들어 에러 문서와 같이 서버가 생성하는 페이지에 
# 나타날 것이다. 
# 
ServerAdmin admin@yourdomain.co.kr 

# 
# ServerName은 클라이언트 프로그램에게 돌려주는 서버 이름이 다른 경우 
# 호스트 이름을 설정할 수 있게 해준다. (예를 들어, 호스트의 실제 이름이 
# 아닌 'www'를 사용하도록 하는데 사용할 수 있다.) 
# 
# 주의: 호스트 이름을 아무렇게나 만들어선 안된다. 이 이름은 여러분의 
# 호스트에 주어진 타당한 DNS 이름이어야 한다. 잘 모르겠으면 네트웍 
# 관리자에게 문의하라. 
# 호스트가 등록된 DNS 이름을 갖고 있지 않는 경우에는 이 곳에 IP 주소를 
# 적는다. 어찌 되었든 IP 주소를 사용하여(예를 들어 http://123.45.67.89/) 
# 접속할 수 있다. 이런 식으로 해서 리다이렉션이 작동하도록 할 수 있다. 
# 
#ServerName localhost 

# 
# DocumentRoot: 제공할 문서의 상위 디렉토리. 
# 기본적으로 모든 요청은 이 디렉토리로부터 처리된다. 하지만 
# 심볼릭 링크나 앨리어스(alias)를 사용하여 다른 위치를 가리키도록 
# 할 수 있다. 
# 
DocumentRoot "/var/www/html" 
# 와우리눅스 까치버젼은 "/var/www/html" 

# 
# Each directory to which Apache has access, can be configured with respect 
# to which services and features are allowed and/or disabled in that 
# directory (and its subdirectories). 
# 
# First, we configure the "default" to be a very restrictive set of 
# permissions. 
# 
<Directory /> 
Options FollowSymLinks 
AllowOverride None 
</Directory> 

# 
# Note that from this point forward you must specifically allow 
# particular features to be enabled - so if something's not working as 
# you might expect, make sure that you have specifically enabled it 
# below. 
# 

# 
# 다음 내용은 여러분이 설정한 DocumentRoot 값으로 변경해서 사용한다. 
# 
<Directory "/var/www/html"> 
# => 브라우저에서 도메인 주소를 쳤을 경우 index.html파일이 위치하는 디렉토리 

# 
# 다음 값에는 "None", "All", 또는 "Indexes : index.html이 없을 경우 
# 디렉토리를 보여 줄 것인지를 결정", "Includes : 서버측의 SSI를 허용할 것인지를 결정", 
# "FollowSymLinks : 서버가 디렉토리의 심볼릭 링크를 따를 것인가를 결정" 
# "ExecCGI :cgi프로그램을 실행 시킬건질 결정", "MultiViews"의 자유로운 조합이 
# 가능하다. 
# 
# "MultiViews" 만큼은 "Options All"을 사용한다 할 지라도 명시적으로 
# 적어야만 작동한다는 사실을 알아두자. 
# 
Options Indexes Includes FollowSymLinks 

# 
# 다음은 각 디렉토리에 위치한 .htaccess 파일에서 어떤 옵션을 
# 마음대로 제어할 수 있는지 결정한다. 
# "All" 또는 "Options", "FileInfo", "AuthConfig", "Limit"의 자유로운 
# 결합이 가능하다. 
# 
AllowOverride None 

# 
# 서버로부터 자료를 얻어갈 수 있는 위치를 제어한다. 
# 
#Order allow,deny 
# > CGI를 실행시킬려면 #표시하여야 함 
Allow from all 
</Directory> 

# 
# UserDir: ~user 요청을 받았을 때 사용자의 홈 디렉토리 뒤에 추가할 
# 디렉토리 이름. 
# 
# 

# 주의 : 알짜 리눅스 시스템에서는 사용자가 자신의 홈 디렉토리에 public_html 
# 디렉토리를 만들어도 외부에서 홈 페이지를 볼 수 없다. 
# 왜냐하면 각 계정 홈 디렉토리에 대한 보안을 중요하게 생각했기 때문에 
# 홈 디렉토리에 대하여 사용자 계정과 사용자 자신의 그룹 이외에는 
# 아무런 접근 허가권도 갖고 있지 않기 때문이다. => 
# 초기의 계정 디렉토리의 퍼미션은 644입니다. 
# 
# 개인 홈 디렉토리를 가질 사람은 chmod a+x ~ 명령을 일단 실행해주어 
# (보통) nobody 권한의 아파치 프로세스가 홈 디렉토리에 접근할 수 
# 있도록 허가해주어야 한다. 
# 물론 public_html과 홈 페이지 파일에 대하여 모든 사용자가 최소한 
# 읽기 권한은 갖도록 설정해주어야 한다. 
# 
UserDir public_html www web htdocs 

# 
# UserDir 디렉토리에 대한 접근을 제어한다. 다음은 사용자 홈 페이지에 
# 대하여 읽기만 가능하도록 한 예제 설정 내용이다. 참고 자료로 
# 사용하기 바란다. 
# 
#<Directory /home/*/public_html> 
# =>글<Directory "/home/httpd/html">을 참조하세요! 
# AllowOverride FileInfo AuthConfig Limit 
# Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec 
Options Indexes SymLinksIfOwnerMatch IncludesNoExec ExecCGI 
# <Limit GET POST OPTIONS PROPFIND> 
# Order allow,deny 
# Allow from all 
# </Limit> 
# <Limit PUT DELETE PATCH PROPPATCH MKCOL COPY MOVE LOCK UNLOCK> 
# Order deny,allow 
# Deny from all 
# </Limit> 
#</Directory> 

# 
# DirectoryIndex: 준비된 HTML 디렉토리 인덱스로 사용할 파일이나 
# 파일 목록의 이름을 나열한다. 여러 개를 나열할 때는 스페이스로 
# 구분한다. 

DirectoryIndex index.html index.htm index.php index.php3 index.cgi 
# => 브라우저가 맨처음 홈페이지 디렉토리에서 찾을 파일 

# 
# AccessFileName: 디렉토리에 대하여 접근 제어 정보 내용을 
# 담고 있을 파일 이름 
# 
AccessFileName .htaccess 


# 
# 다음 행은 웹 브라우져가 .htaccess 파일을 접근할 수 없도록 하는 
# 설정이다. .htaccess에는 인증 정보가 들어있는 경우가 빈번하므로 
# 보안 상 이유로 이 파일에 대한 접근은 불허해야 한다. 
# 웹 방문객들이 이 파일을 보게 하고 싶으면 다음 행들을 주석 처리하라. 
# 만약 AccessFileName 설정을 다른 파일명으로 바꾸었다면 알맞게 
# .htaccess를 그 이름으로 바꾸어준다. 
# 
<Files ~ "^.ht"> 
Order allow,deny 
Deny from all 
</Files> 

# 
# CacheNegotiateDocs: 기본적으로 아파치는 내용에 따라 협상된 문서에 
# 대해서는 "Pragma: no-cache" 내용을 전송한다. 이 행은 프록시 서버로 
# 하여금 문서를 캐쉬하지 않도록 요청한다. 다음 행의 주석을 풀면 
# 이 기능을 해제하고 모든 프록시가 문서들을 캐쉬할 수 있도록 한다. 
# 
#CacheNegotiatedDocs 

# 
# UseCanonicalName: (1.3 버전에 새롭게 등장) 이 설정을 켜두면, 
# 아파치가 자기 참조 URL(반응이 오고 있는 서버를 다시 가리키는 
# URL)을 만들 필요가 있을 때마다 "공식적인" 이름을 만들기 위해 
# ServerName과 Port를 사용한다. 그렇지 않으면 아파치는 가능한 한 
# 클라이언트가 제공한 호스트이름:포트 값을 사용한다. 
# 이 설정은 CGI 스크립트의 SERVER_NAME, SERVER_PORT에도 영향을 
# 미친다. 
# 
UseCanonicalName On 

# 
# TypesConfig 는 mime.types 파일 또는 이에 해당하는 파일을 찾을 
# 위치를 결정한다. 
# 
TypesConfig /etc/mime.types 

# 
# DefaultType이란 파일 확장자와 같은 것을 통해 MIME 타입을 알 수 없는 
# 문서에 대하여 사용할 기본 MIME 타입을 말한다. 여러분의 서버에 주로 
# 텍스트나 HTML 문서가 많다면 "text/plain"을 쓰는 것이 좋다. 
# 대부분이 실행 프로그램이나 이미지 등 바이너리인 경우에는 
# 웹 브라우져가 텍스트라고 생각하여 바이너리 파일을 화면에 표시하지 
# 않도록 하기 위해 "application/octet-stream"를 적는다. 
# 
DefaultType text/plain 

# 
# mod_mime_magic 모듈을 사용하면 파일의 내용을 가지고 파일의 타입에 
# 힌트를 얻는다. MIMEMagicFile 지시자를 사용하여 모듈에게 힌트 
# 정보가 저장되어 있는 파일을 설정한다. 
# mod_mime_magic은 기본 서버의 일부가 아니다.(따라서 LoadModule 
# 설정을 사용하여 모듈을 추가해야 한다.) 또는 서버를 다시 컴파일해서 
# mod_mime_magic을 추가해야 한다. 그렇기 때문에 <IfModule> 컨테이너에 
# 포함되어 있는 것이다. 다음 설정은 모듈이 서버에 포함되어 있을 때에만 
# MIMEMagicFile 지시자를 처리하도록 해준다. 
# 
<IfModule mod_mime_magic.c> 
MIMEMagicFile /usr/share/magic 
</IfModule> 

# 
# HostNameLookups: 클라이언트의 이름 또는 IP 주소만을 기록할 지 여부. 
# 예를 들어 www.apache.org (on) 또는 204.62.129.132 (off) 
# 기본값이 off 인 이유는 각 클라이언트 요청이 올 때마다 최소한 1 번 
# 이상의 네임 서버 요청이 발생하기 때문이다. 그러나 꼭 필요한 경우에는 
# 이 기능을 켜둔다. 
# 
HostnameLookups Off 
# => 이 기능을 켜두면 단 몇 달 사이에 로그 파일일이 엄청나게 불어난다. 

# 
# ErrorLog: 에러 기록 파일의 위치. 
# <VirtualHost> 컨테이너 안에서 ErrorLog 설정을 하지 않으면 
# 그 가상 호스트에 관련된 에러 메시지도 역시 이 곳에 기록된다. 
# <VirtualHost> 컨테이너 안에서 에러 로그 파일을 정의하면 
# 관련된 에러 메시지는 그 파일로 저장된다. 
# 
ErrorLog /var/log/httpd/error_log 

# 
# LogLevel: error_log에 기록될 메시지 분량을 제어한다. 
# debug, info, notice, warn, error, crit, alert, emerg 등의 값이 가능하다. 
# 
LogLevel warn 

# 
# 다음 지시자는 CustomLog 지시자(아래 참고)에서 사용할 몇 가지 
# 형식에 대한 별명을 정의한다. 
# 
LogFormat "%h %l %u %t "%r" %>s %b "%{Referer}i" "%{User-Agent}i"" combined 
LogFormat "%h %l %u %t "%r" %>s %b" common 
LogFormat "%{Referer}i -> %U" referer 
LogFormat "%{User-agent}i" agent 

# 
# 접근 로그 파일의 위치와 형식(공통 로그파일 형식) 
# <VirtualHost> 컨테이너 안에서 접근 로그파일 설정을 하지 않으면 
# 모든 기록이 이 파일에 남게 된다. 이와 반대로 각 <VirtualHost> 마다 
# 접근 로그파일을 정의하면 모든 처리가 바로 그 파일에 기록된다. 
# 
CustomLog /var/log/httpd/access_log common 
# => 가상 호스트 각 도메인 디렉토리내에 로그파일을 두려 할경우 

# 
# 에이전트 로그파일과 참조자(referer) 로그파일을 갖기 위해서는 
# 다음 지시 내용의 주석 처리를 해제하라. 
# 
# 여기서 에이전트란 여러분의 사이트에 방문하는 브라우져를 말한다. 
# 에이전트 로그를 남기면 여러분의 사이트에 방문하는 브라우져의 종류에 대한 
# 통계를 낼 수 있다. 
# 
# 참조자란 주로 배너 광고주에게 중요한 것으로서 여러분의 사이트 바로 
# 직전에 방문한 사이트를 말한다. 
# 
#CustomLog /var/log/httpd/referer_log referer 
#CustomLog /var/log/httpd/agent_log agent 

# 
# 하나의 로그파일에 접근, 에이전트, 참조자 정보를 다 저장하기 위해서는 
# (통합 로그파일 형식) 다음 지시 내용을 사용하라. 
# 
# 몇 달만 운영해도 접속이 많은 사이트에서는 combined 로그 파일이 어마어마하게 
# 커져서 루트 파일 시스템을 꽉 채워 버리는 일이 발생할 수 있다! 
# 
#CustomLog /var/log/httpd/access_log combined 

# 
# 부차적으로 서버가 생성하는 페이지(에러 문서, FTP 디렉토리 목록, 
# mod_status, mod_info 출력 등, 그러나 CGI 생성 문서는 제외)에 
# 서버 버전과 가상 호스트 이름을 포함하는 행을 추가하도록 한다. 
# "Email"로 설정하면 ServerAdmin으로의 mailto: 링크를 포함한다. 
# On | Off | EMail 중 하나로 설정한다. 
# 
ServerSignature On 

# 
# Aliases: 필요한 만큼의 별칭을 만들어 사용한다.(제한 없음) 
# 홈페이지의 링크와 같다면 비유가 될까 ?..... 형식은 다음과 같다. 
# Alias 가짜이름 실제이름 
# 
# 가짜 이름 뒤에 / 를 포함하면 아파치 서버는 URL에도 / 이 있어야 
# 처리함을 잘 알아두자. 따라서 "/icons"는 별칭 처리되지 않고 
# "/icons/"만 별칭 처리된다. 
# 
Alias /icons/ "/var/www/icons/" 

<Directory "/var/www/icons"> 
Options Indexes MultiViews 
AllowOverride None 
Order allow,deny 
Allow from all 
</Directory> 

# 
# ScriptAlias: 서버 스크립트를 포함하는 디렉토리를 제어한다. 
# ScriptAlias는 근본적으로 Alias와 같으나 가리키고 있는 실제 디렉토리 
# 안에 들어있는 문서를 실행 프로그램으로 취급하여 실행한다. 
# 맨 뒤에 붙는 "/" 에 대한 규칙은 Alias와 마찬가지이다. 
# 
ScriptAlias /cgi-bin/ "/var/www/cgi-bin/" 
# => 특정 디렉토리에서만 CGI스크립트가 실행 되길 원할 경우 
<Directory /home/*> 
Options ExecCGI Includes Indexes FollowSymLinks 
</Directory> 

# 
# "/home/httpd/cgi-bin" 부분은 ScriptAlias로 별칭 처리된 실제 CGI 
# 디렉토리로 설정해야 한다. 
# 
<Directory "/var/www/cgi-bin"> 
AllowOverride None 
Options ExecCGI 
Order allow,deny 
Allow from all 
</Directory> 

# 
# Redirect를 사용하면 서버의 이름공간에 존재했으나 현재에는 존재하지 않는 
# 문서에 대하여 클라이언트에게 통보할 수 있도록 해준다. 이렇게 함으로써 
# 위치가 변한 새로운 문서를 어디에서 찾을 수 있는지 클라이언트에게 
# 알려줄 수 있다. 
# 형식: Redirect 예전URI 새URI 
# 

# 
# 서버가 생성하는 디렉토리 목록의 표시 상태를 제어하는 지시자. 
# 

# 
# FancyIndexing은 예쁜 디렉토리 목록 또는 표준적인 디렉토리 목록 여부를 결정한다. 
# 
IndexOptions FancyIndexing 

# 
# AddIcon으로 시작하는 지시자는 서버에게 다양한 파일, 파일명 확장자에 
# 대하여 어떤 아이콘을 보여 줄 것인지 말해준다. 이 값들은 
# FancyIndexing을 사용하는 경우에만 해당된다. 
# 
AddIconByEncoding (CMP,/icons/compressed.gif) x-compress x-gzip 

AddIconByType (TXT,/icons/text.gif) text/* 
AddIconByType (IMG,/icons/image2.gif) image/* 
AddIconByType (SND,/icons/sound2.gif) audio/* 
AddIconByType (VID,/icons/movie.gif) video/* 

AddIcon /icons/binary.gif .bin .exe 
AddIcon /icons/binhex.gif .hqx 
AddIcon /icons/tar.gif .tar 
AddIcon /icons/world2.gif .wrl .wrl.gz .vrml .vrm .iv 
AddIcon /icons/compressed.gif .Z .z .tgz .gz .zip 
AddIcon /icons/a.gif .ps .ai .eps 
AddIcon /icons/layout.gif .html .shtml .htm .pdf 
AddIcon /icons/text.gif .txt 
AddIcon /icons/c.gif .c 
AddIcon /icons/p.gif .pl .py 
AddIcon /icons/f.gif .for 
AddIcon /icons/dvi.gif .dvi 
AddIcon /icons/uuencoded.gif .uu 
AddIcon /icons/script.gif .conf .sh .shar .csh .ksh .tcl 
AddIcon /icons/tex.gif .tex 
AddIcon /icons/bomb.gif core 

AddIcon /icons/back.gif .. 
AddIcon /icons/hand.right.gif README 
AddIcon /icons/folder.gif ^^DIRECTORY^^ 
AddIcon /icons/blank.gif ^^BLANKICON^^ 

# 
# DefaultIcon이란 명시적인 아이콘을 갖고 있지 않는 파일에 대한 
# 기본 아이콘 파일을 설정한다. 
# 
DefaultIcon /icons/unknown.gif 

# 
# AddDescription은 서버 자동 생성 인덱스의 파일명 뒤에 간단한 설명을 
# 넣을 때 사용한다. FancyIndexing을 사용할 때에만 보인다. 
# 형식: AddDescription "설명" 화일명 
# 
#AddDescription "GZIP compressed document" .gz 
#AddDescription "tar archive" .tar 
#AddDescription "GZIP compressed tar archive" .tgz 

# META 태그를 사용하여 Content-type의 charset을 설정하지 않은 
# 문서에 대하여 기본 문자셋을 iso-8859-1 로 해 버리는 패치에 
# 대한 설정 (한글 사용을 위해서는 어쩌면 필요한 설정일지도 
# 모른다. 일단 문제가 없으면 그냥 놔두는 것도 괜찮을지 모르겠지만 
# 문제가 된다면 설정을 해보는 것도 괜찮을것 같다. 일단 나의 테스트 
# 로는 euc-kr로의 설정은 문제가 발생한다. -- 패키저 주^^) 
AddDefaultCharset Off 
#AddDefaultCharset euc-kr 

# 
# ReadmeName은 서버가 디렉토리 목록 뒤에 내용을 덧붙여 넣을 README 파일의 
# 이름을 설정한다. 
# 
# HeaderName은 디렉토리 인덱스 앞에 내용을 덧붙일 파일명을 설정한다. 
# 
# 서버는 먼저 name.html을 찾고 그것이 있으면 그 내용을 포함한다. 
# 만약 없다면 서버는 name.txt 파일을 찾고 평범한 텍스트 내용으로 
# 추가한다. 
# 
ReadmeName README 
HeaderName HEADER 

# 
# IndexIgnore는 디렉토리 인덱싱에 있어 목록에서 제외시킬 파일명을 설정한다. 
# 쉘 스타일의 와일드 카드를 사용할 수 있다. 
# 
IndexIgnore .??* *~ *# HEADER* README* RCS CVS *,v *,t 

# 
# AddEncoding은 특정 브라우져(모자익/X 2.1+)로 하여금 자료를 받으면서 
# 정보의 압축을 풀 수 있도록 해준다. 주의: 모든 브라우져가 이 기능을 
# 지원하는 것은 아니다. 이름이 유사하기는 하지만 다음부터 나오게 될 
# Add로 시작하는 지시자들은 FancyIndexing과는 관련이 없다. 
# 
AddEncoding x-compress Z 
AddEncoding x-gzip gz tgz 
<IfModule mod_negotiation.c> 

# 
# AddLanguage는 문서의 언어를 명시한다. 내용 협상 과정을 통해 브라우져가 
# 이해할 수 있는 언어의 문서를 제공하는 것이 가능하다. 
# 접미어(suffix)는 언어 키워드와 꼭 같은 필요는 없다. 예를 들어 
# 폴란드어(Polish)로 된 문서는 네트웍 표준 언어 코드가 pl 이지만 
# 펄 스크립트와 확연히 구별하기 위해 "AddLanguage pl .po"라고 사용한다. 
# 

AddLanguage ko .ko 
AddLanguage en .en 
AddLanguage fr .fr 
AddLanguage de .de 
AddLanguage da .da 
AddLanguage el .el 
AddLanguage it .it 

# 
# LanguagePriority는 내용 협상 중 동점이 발생하는 경우 언어 우선권을 
# 부여한다. 언어의 우선권을 내림차순으로 나열하면 된다. 
# 
LanguagePriority en fr de 
</IfModule> 

# 
# AddType를 사용하면 mime.types 파일 수정없이 MIME 설정을 할 수 있고 
# 또는 어떤 파일들에 대하여 특정 타입으로 처리하도록 할 수 있다. 
# 
# php4 module이 설치되었을 경우 아래의 설정에 의해 사용을 할수 있도 
# 록 한다. 
# 
<IfModule mod_php4.c> 
AddType application/x-httpd-php .php4 .php3 .phtml .php 
AddType application/x-httpd-php-source .phps 
</IfModule> 

# php3의 경우 
<IfModule mod_php3.c> 
AddType application/x-httpd-php3 .php3 
AddType application/x-httpd-php3-source .phps 
</IfModule> 

# 다음은 PHP/FI (PHP2)를 위한 것입니다. 
<IfModule mod_php.c> 
AddType application/x-httpd-php .phtml 
</IfModule> 

AddType application/x-tar .tgz 

# 
# AddHandler를 사용하면 특정 파일 확장자와 "처리기"를 연결하거나 
# 특정 파일 타입에 특정 동작(action)을 연결할 수 있다. 
# 서버에 내장되어 있거나 또는 Action 명령을 사용하여 추가할 수 
# 있다.(아래 참고) 
# 
# 서버 측 포함(SSI) 또는 ScriptAlias 처리된 디렉토리 외부에 
# 존재하는 CGI 스크립트를 사용하고 싶을 때는 다음 내용의 
# 주석을 없앤다. 
# 
# CGI 스크립트를 사용하기 위해: 
# 
AddHandler cgi-script .cgi .pl 

# 
# 서버 처리 HTML 파일 사용하기 위해: 
# 
AddType text/html .shtml 
AddType text/html .htm 
AddHandler server-parsed .shtml 

# 
# 아파치의 send-asis HTTP 파일 기능을 사용하려면... 
# 
#AddHandler send-as-is asis 

# 
# 서버 처리 이미지 맵 파일을 사용하려면... 
# 
AddHandler imap-file map 

# 
# type map을 사용하려면... 
# 
#AddHandler type-map var 
# 

# 
# perl 모듈을 사용하기 위한 설정 
# 
<IfModule mod_perl.c> 
Alias /perl/ /home/httpd/perl/ 
<Location /perl> 
SetHandler perl-script 
PerlHandler Apache::Registry 
Options +ExecCGI 
</Location> 
</IfModule> 

# 
# Action을 사용하면 매칭되는 파일이 호출될 때마다 그 미디어 타입에 맞는 
# 스크립트를 시행시킬 수 있다. 빈번하게 사용되는 CGI 파일 프로세서에 
# 대하여 반복적으로 URL을 사용하지 않아도 된다. 
# Format: Action media/type /cgi-script/location 
# Format: Action handler-name /cgi-script/location 
# 

# 
# MetaDir: 아파치 서버가 메타 정보 파일을 찾을 디렉토리 이름. 
# 이 파일에는 문서를 보낼 때 추가하고자 하는 추가 HTTP 헤더 정보가 
# 들어있다. 
# 
#MetaDir .web 

# 
# MetaSuffix: 메타 정보를 담고 있는 파일의 접미어를 설정한다. 
# 
#MetaSuffix .meta 

# 
# 사용자 정의 에러 반응 메시지 (아파치 스타일) 
# 다음 3 가지 방법으로 가능하다. 
# 
# 1) 보통의 텍스트 
#ErrorDocument 500 "The server made a boo boo. 
# 주목: " 표시는 텍스트임을 알려주는 것으로서 그 자체는 출력되지 않는다. 
# 
# 2) 지역적인 방향 전환 
# ErrorDocument 404 /missing.html 
# 
# 지역적 URL인 /missing.html로 방향 전환하기 
# ErrorDocument 404 /cgi-bin/missing_handler.pl 
# 
# 주목: 스크립트나 SSI로 방향 전환시킬 수 있다. 
# ErrorDocument 401 /401.html 
# ErrorDocument 403 /403.html 
# ErrorDocument 404 /404.html 
# ErrorDocument 500 /500.html 
# 
# 
# 3) 외부 방향 전환 
# ErrorDocument 402 http://some.other_server.com/subscription_info.html 
# 주목: 원래 요청과 관련있는 환경 변수의 상당수가 스크립트에 
# 전달되지 못한다는 점을 알고 있어야 한다. 
# 
# 다음 지시자는 보통의 HTTP 반응 방식을 수정한다. 
# 첫번째 것은 네스케이프 2.x 또는 그를 흉내내는 브라우져에 대하여 
# KeepAlive 기능을 쓰지 않도록 한다. 이 브라우져들은 KeepAlive 구현에 
# 문제점을 갖고 있기 때문이다. 
# 두번째 것은 HTTP/1.1을 잘못 구현하였고 301 또는 302 (redirect) 응답에 
# 대하여 KeepAlive를 제대로 지원하지 못하는 마이크로소프트 인터넷 
# 익스플로러 4.0b2를 위한 것이다. 
# 
BrowserMatch "Mozilla/2" nokeepalive 
BrowserMatch "MSIE 4.0b2;" nokeepalive downgrade-1.0 force-response-1.0 

# 
# 다음은 기본적인 1.1 응답도 제대로 처리하지 못함으로써 HTTP/1.1 스펙을 
# 위반하고 있는 브라우져에 대하여 HTTP/1.1 응답을 하지 않도록 한다. 
# 
BrowserMatch "RealPlayer 4.0" force-response-1.0 
BrowserMatch "Java/1.0" force-response-1.0 
BrowserMatch "JDK/1.0" force-response-1.0 

# 
# 다음은 WebZIP, Teleport 등의 긁어가기 program을 막기 위한 설정 이다. 
BrowserMatch "WebZIP" no_access 
BrowserMatch "Teleport" no_access 
BrowserMatch "Teleport Pro/1.29" no_access 
BrowserMatch "NamoWebEditor" no_access 
BrowserMatch "WebTrack-HTTPP" no_access 
BrowserMatch "WebSymmetrix" no_access 
# 

# perl 모듈을 사용하기 위한 설정 
<IfModule mod_perl.c> 
Alias /perl/ /var/www/perl/ 
<Location /perl> 
SetHandler perl-script 
PerlHandler Apache::Registry 
Options +ExecCGI 
</Location> 
</IfModule> 

# 
# Allow http put (such as Netscape Gold's publish feature) 
# Use htpasswd to generate /etc/httpd/conf/passwd. 
# You must unremark these two lines at the top of this file as well: 
#LoadModule put_module modules/mod_put.so 
#AddModule mod_put.c 
# 
#Alias /upload /tmp 
#<Location /upload> 
# EnablePut On 
# AuthType Basic 
# AuthName Temporary 
# AuthUserFile /etc/httpd/conf/passwd 
# EnableDelete Off 
# umask 007 
# <Limit PUT> 
# require valid-user 
# </Limit> 
#</Location> 

# 
# http://servername/server-status을 통해 서버 상태 보고를 허용한다. 
# 웹브라우저에서 아파치의 상태를 볼수 있게 하는 기능 
# 여기서 "localhost" 부분을 허용할 도메인으로 바꿔 사용하라. 
# 
#<Location /server-status> 
# SetHandler server-status 
# Order deny,allow 
# Deny from all 
# Allow from .your_domain.com 
#</Location> 

# 
# http://servername/server-info를 통하여 원격 서버 설정 보고를 허용한다. 
# 마찬가지로 웹 브라우저에서 서버설정을 볼 수 있다. 
# (mod_info.c가 적재되어 있어야 한다.) 
# 여기서 "localhost" 부분을 허용할 도메인으로 바꿔 사용하라. 
# 
#<Location /server-info> 
# SetHandler server-info 
# Order deny,allow 
# Deny from all 
# Allow from .your_domain.com 
#</Location> 

# Allow access to local system documentation from localhost 
Alias /doc/ /usr/share/doc/ 
<Location /doc> 
order deny,allow 
deny from all 
allow from localhost 
Options Indexes FollowSymLinks 
</Location> 

# 
# 1.1 버전 이전의 오래 된 버그를 악용하려는 사람들이 있다는 보고를 받았다. 
# 이 버그는 아파치 일부분으로 제공한 CGI 스크립트와 연관있다. 
# 이 부분의 주석 처리를 없애면 이 버그를 악용하는 공격이 있을 때 
# phf.apache.org 상의 기록 스크립트로 방향 전환시킬 수 있다. 
# 또는 support/phf_abuse_log.cgi 스크립트를 사용하여 여러분 직접 기록할 
# 수도 있다. 
# 
<Location /cgi-bin/phf*> 
Deny from all 
ErrorDocument 403 http://phf.apache.org/phf_abuse_log.cgi 
</Location> 

# 
# 프록시 서버 지시자. 프록시 서버 기능을 작동시키려면 다음 행의 
# 주석을 해제시켜준다. 
# 
#<IfModule mod_proxy.c> 
#ProxyRequests On 
# 
#<Directory proxy:*> 
# Order deny,allow 
# Deny from all 
# Allow from .your_domain.com 
#</Directory> 

# 
# HTTP/1.1 "Via:" 헤더를 처리할 것인지 여부를 결정한다. 
# ("Full"은 서버 버전을 포함하고 "Block"은 나가는 모든 자료에서 
# Via: 헤더를 제거한다.) 
# Off | On | Full | Block 중 하나의 값을 지정한다. 
# 
#ProxyVia On 

# 
# 캐쉬 기능도 사용하기 위해서는 다음 행의 주석을 풀어준다: 
# (CacheRoot가 없으면 캐쉬하지 않음) 
# 
#CacheRoot "/var/cache/httpd" 
#CacheSize 5 
#CacheGcInterval 4 
#CacheMaxExpire 24 
#CacheLastModifiedFactor 0.1 
#CacheDefaultExpire 1 
#NoCache a_domain.com another_domain.edu joes.garage_sale.com 

#</IfModule> 
# 
# 프록시 설정 끝 
# 
############################################################# 

### 섹션 3: 가상 호스트 => 실제 IP 주소 1개에 여러개의 도메인 네임을 등록시킬 때 
# 예) 203.237.102.12라는 주소에 azim.co.kr 과 linux.co.kr 과 joayo.net등등 
# 여러개의 도메인을 등록 시킬때. 
# 
# VirtualHost: 여러분의 리눅스 박스에 여러 개의 도메인/호스트이름을 
# 관리하고 싶다면 각각에 대하여 VirtualHost 컨테이너를 설정한다. 
# 가상 호스트를 설정하기에 앞서 자세한 설명을 
# <URL:http://www.apache.org/docs/vhosts/>;에 들러 읽어보기 바란다. 
# 가상 호스트 설정 내용을 점검해보기 위해서는 아파치를 실행할 때 
# 명령행 옵션으로 '-S'를 사용한다. 

# 
# 이름 기반의 가상 호스트를 사용하려면 사용할 IP 주소 (최소 1 개, 
# 그리고 포트 번호)를 정의해주어야 한다. 
# 
# 경고 : 아파치 1.2.x 버전에서만 가상 호스트 기능을 사용해 온 관리자들은 
# 아파치 1.3.x 버전에서 NameVirtualHost 지시자로 IP 주소를 
# 해주어야만 가상 호스트가 제대로 동작한다는 사실을 꼭 알아야 한다!!! 
# 1.2 버전을 쓰다 1.3 버전으로 와서 가상 호스트가 동작하지 않는 
# 문제의 99% 는 바로 NameVirtualHost 설정에 있다. 
# 
# 
#NameVirtualHost 12.34.56.78:80 
#NameVirtualHost 12.34.56.78 

# 
# 가상 호스트 예제: 
# 거의 모든 아파치 지시자가 VirtualHost 컨테이너에 올 수 있다. 
# 
#<VirtualHost ip.address.of.www.yourdomain.com> 
# ServerAdmin admin@www.yourdomain.com 
# DocumentRoot /www/docs/www.yourdomain.com 
# ServerName host.yourdomain.com 
# ErrorLog logs/www.yourdomain.com-error_log 
# CustomLog logs/www.yourdomain.com-access_log common 
#</VirtualHost> 
#<VirtualHost _default_:*> 
#</VirtualHost> 

<IfDefine HAVE_SSL> 
## 
## SSL Virtual Host Context 
## 

# Apache will only listen on port 80 by default. Defining the virtual server 
# (below) won't make it automatically listen on the virtual server's port. 
Listen 443 

<VirtualHost _default_:443> 

# General setup for the virtual host 
DocumentRoot "/var/www/html" 

# SSL Engine Switch: 
# Enable/Disable SSL for this virtual host. 
SSLEngine on 

# SSL Cipher Suite: 
# List the ciphers that the client is permitted to negotiate. 
# See the mod_ssl documentation for a complete list. 
#SSLCipherSuite ALL:!ADH:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL 

# Server Certificate: 
# Point SSLCertificateFile at a PEM encoded certificate. If 
# the certificate is encrypted, then you will be prompted for a 
# pass phrase. Note that a kill -HUP will prompt again. A test 
# certificate can be generated with `make certificate' under 
# built time. Keep in mind that if you've both a RSA and a DSA 
# certificate you can configure both in parallel (to also allow 
# the use of DSA ciphers, etc.) 
SSLCertificateFile /etc/httpd/conf/ssl.crt/server.crt 
#SSLCertificateFile /etc/httpd/conf/ssl.crt/server-dsa.crt 

# Server Private Key: 
# If the key is not combined with the certificate, use this 
# directive to point at the key file. Keep in mind that if 
# you've both a RSA and a DSA private key you can configure 
# both in parallel (to also allow the use of DSA ciphers, etc.) 
SSLCertificateKeyFile /etc/httpd/conf/ssl.key/server.key 
#SSLCertificateKeyFile /etc/httpd/conf/ssl.key/server-dsa.key 

# Server Certificate Chain: 
# Point SSLCertificateChainFile at a file containing the 
# concatenation of PEM encoded CA certificates which form the 
# certificate chain for the server certificate. Alternatively 
# the referenced file can be the same as SSLCertificateFile 
# when the CA certificates are directly appended to the server 
# certificate for convinience. 
#SSLCertificateChainFile /etc/httpd/conf/ssl.crt/ca.crt 

# Certificate Authority (CA): 
# Set the CA certificate verification path where to find CA 
# certificates for client authentication or alternatively one 
# huge file containing all of them (file must be PEM encoded) 
# Note: Inside SSLCACertificatePath you need hash symlinks 
# to point to the certificate files. Use the provided 
# Makefile to update the hash symlinks after changes. 
#SSLCACertificatePath /etc/httpd/conf/ssl.crt 
#SSLCACertificateFile /etc/httpd/conf/ssl.crt/ca-bundle.crt 

# Certificate Revocation Lists (CRL): 
# Set the CA revocation path where to find CA CRLs for client 
# authentication or alternatively one huge file containing all 
# of them (file must be PEM encoded) 
# Note: Inside SSLCARevocationPath you need hash symlinks 
# to point to the certificate files. Use the provided 
# Makefile to update the hash symlinks after changes. 
#SSLCARevocationPath /etc/httpd/conf/ssl.crl 
#SSLCARevocationFile /etc/httpd/conf/ssl.crl/ca-bundle.crl 
# Client Authentication (Type): 
# Client certificate verification type and depth. Types are 
# none, optional, require and optional_no_ca. Depth is a 
# number which specifies how deeply to verify the certificate 
# issuer chain before deciding the certificate is not valid. 
#SSLVerifyClient require 
#SSLVerifyDepth 10 

# Access Control: 
# With SSLRequire you can do per-directory access control based 
# on arbitrary complex boolean expressions containing server 
# variable checks and other lookup directives. The syntax is a 
# mixture between C and Perl. See the mod_ssl documentation 
# for more details. 
#<Location /> 
#SSLRequire ( %{SSL_CIPHER} !~ m/^(EXP|NULL)-/ 
# and %{SSL_CLIENT_S_DN_O} eq "Snake Oil, Ltd." 
# and %{SSL_CLIENT_S_DN_OU} in {"Staff", "CA", "Dev"} 
# and %{TIME_WDAY} >= 1 and %{TIME_WDAY} <= 5 
# and %{TIME_HOUR} >= 8 and %{TIME_HOUR} <= 20 ) 
# or %{REMOTE_ADDR} =~ m/^192.76.162.[0-9]+$/ 
#</Location> 
# SSL Engine Options: 
# Set various options for the SSL engine. 
# o FakeBasicAuth: 
# Translate the client X.509 into a Basic Authorisation. This means that 
# the standard Auth/DBMAuth methods can be used for access control. The 
# user name is the `one line' version of the client's X.509 certificate. 
# Note that no password is obtained from the user. Every entry in the user 
# file needs this password: `xxj31ZMTZzkVA'. 
# o ExportCertData: 
# This exports two additional environment variables: SSL_CLIENT_CERT and 
# SSL_SERVER_CERT. These contain the PEM-encoded certificates of the 
# server (always existing) and the client (only existing when client 
# authentication is used). This can be used to import the certificates 
# into CGI scripts. 
# o StdEnvVars: 
# This exports the standard SSL/TLS related `SSL_*' environment variables. 
# Per default this exportation is switched off for performance reasons, 
# because the extraction step is an expensive operation and is usually 
# useless for serving static content. So one usually enables the 
# exportation for CGI and SSI requests only. 
# o CompatEnvVars: 
# This exports obsolete environment variables for backward compatibility 
# to Apache-SSL 1.x, mod_ssl 2.0.x, Sioux 1.0 and Stronghold 2.x. Use this 
# to provide compatibility to existing CGI scripts. 
# o StrictRequire: 
# This denies access when "SSLRequireSSL" or "SSLRequire" applied even 
# under a "Satisfy any" situation, i.e. when it applies access is denied 
# and no other module can change it. 
# o OptRenegotiate: 
# This enables optimized SSL connection renegotiation handling when SSL 
# directives are used in per-directory context. 
#SSLOptions +FakeBasicAuth +ExportCertData +CompatEnvVars +StrictRequire 
<Files ~ ".(cgi|shtml)$"> 
SSLOptions +StdEnvVars 
</Files> 
<Directory "/var/www/cgi-bin"> 
SSLOptions +StdEnvVars 
</Directory> 

# Notice: Most problems of broken clients are also related to the HTTP 
# keep-alive facility, so you usually additionally want to disable 
# keep-alive for those clients, too. Use variable "nokeepalive" for this. 
SetEnvIf User-Agent ".*MSIE.*" nokeepalive ssl-unclean-shutdown 

# Per-Server Logging: 
# The home of a custom SSL log file. Use this when you want a 
# compact non-error SSL logfile on a virtual host basis. 
CustomLog /var/log/httpd/ssl_request_log 
"%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x "%r" %b" 

</VirtualHost> 

</IfDefine> 

2007/01/17 16:41 2007/01/17 16:41

Counter

· Total
: 361644
· Today
: 92
· Yesterday
: 110