Apache HTTP Server Version 2.4

Apache > HTTP Server > Documentation > Version 2.4 > How-To / Tutorials

# 사용자별 웹디렉토리

이 문서는 최신판 번역이 아닙니다. 최근에 변경된 내용은 영어 문서를 참고하세요.

여러 사용자가 있는 시스템에서 `UserDir` 지시어를 사용하면 각 사용자는 자신의 홈디렉토리 안에 웹사이트를 만들 수 있다. URL `http://example.com/~username/`에 접근하면 사용자 "`username`"의 홈디렉토리에서 `UserDir` 지시어로 지정한 하위디렉토리에 있는 페이지를 가져오게 된다.

### 참고

- URL을 파일시스템에 대응

## 사용자별 웹디렉토리

관련된 모듈 | 관련된 지시어
--- | ---
`mod_userdir` | `UserDir` `DirectoryMatch` `AllowOverride`

## UserDir로 파일경로 지정하기

`UserDir` 지시어는 사용자별 페이지를 가져올 디렉토리를 지정한다. 이 지시어의 사용법은 여러가지다.

슬래쉬로 시작하지않는 경로를 지정하면 각 사용자의 홈디렉토리에 상대적인 디렉토리 경로로 처리한다. 예를 들어, 아래 설정의 경우:

`UserDir public_html`

URL `http://example.com/~rbowen/file.html`은 파일 경로 `/home/rbowen/public_html/file.html`을 뜻한다.

슬래쉬로 시작하는 경로를 지정하면 지정한 디렉토리에 사용자명을 더한 디렉토리 경로를 사용한다. 예를 들어, 아래 설정의 경우:

`UserDir /var/html`

URL `http://example.com/~rbowen/file.html`은 파일 경로 `/var/html/rbowen/file.html`을 뜻한다.

별표 (*)를 포함한 경로를 지정하면 별표를 사용자명으로 대체한 경로를 사용한다. 예를 들어, 아래 설정의 경우:

`UserDir /var/www/*/docs`

URL `http://example.com/~rbowen/file.html`은 파일 경로 `/var/www/rbowen/docs/file.html`을 뜻한다.

## 기능을 이용할 사용자 제한하기

UserDir 문서에 있는 문법을 사용하여 사용자별 웹디렉토리 기능을 이용할 수 있는 사용자를 제한할 수 있다:

`UserDir enabled
UserDir disabled root jro fish`

위 설정은 `disabled` 문장에 열거한 사람을 제외하고 모든 사용자에게 웹디렉토리 기능을 허락한다. 또, 다음과 같이 몇몇 사용자를 제외하고 기능을 허락하지 않을 수도 있다:

`UserDir disabled
UserDir enabled rbowen krietz`

`UserDir` 문서에 있는 다른 예들도 참고하라.

## 각 사용자별 cgi 디렉토리 지정하기

사용자마다 cgi-bin 디렉토리를 부여하려면 `<Directory>` 지시어를 사용하여 사용자 홈디렉토리의 특정 하위디렉토리를 cgi 가능하게 만든다.

`<Directory /home/*/public_html/cgi-bin/>
Options ExecCGI
SetHandler cgi-script
</Directory>`

`UserDir`이 `public_html`이라고 가정하면, 다음과 같이 그 안에 있는 cgi 프로그램 `example.cgi`를 실행할 수 있다.

`http://example.com/~rbowen/cgi-bin/example.cgi`

## 사용자가 설정을 변경할 수 있도록 만들기

사용자가 자신의 웹공간에 대한 웹서버 설정을 수정하려면, `.htaccess` 파일을 사용할 수 있어야 한다. `AllowOverride`를 사용자가 수정할 수 있는 지시어에 적합한 값으로 설정하라. 어떻게 동작하는지에 대한 자세한 졍보는 .htaccess 투토리얼을 참고하라.