Apache Options, AllowOverride
Apache 설정 중에 Directory 디렉티브(Directive) 내에서 Options, AllowOverride 등을 사용할 수 있는데 이에 대해서 자세히 알아 보겠습니다.
AllowOverride
AllowOverride 는 AccessFileName 에 지정한 파일에서 아파치의 설정을 덮어쓸 수 있도록 해줍니다. 보통 AccessFileName 에는 .htaccess 를 지정해주고 DocumentRoot 에 .htaccess 파일에 아피치 설정에 대한 것을 해두면 아파치는 이 파일을 읽어서 반영해 줍니다.
만일 AccessFileName 을 지정하지 않았고 .htaccess 파일이 필요없을 경우에는 AllowOverride 를 사용할 필요가 없기 때문에 다음과 같이 None 으로 설정해주면 좋습니다.
1 2 3 |
<Directory "/home/nymph203/www"> AllowOverride None </Directory> |
AllowOverride 를 사용할때에 지정할 수 있는 옵션들이 있는데 다음과 같습니다.
- FileInfo : 문서의 유형을 제어하는 지시자 사용을 허락함. 문서 유형을 제어하는 지시자에는 AddEncoding, AddLanguage, AddType, DefaultType, ErrorDocument, LanguagePriority 등이다.
- Indexes : 디렉토리 인덱싱을 제어하는 지시자 사용을 허락함. 사용 가능한 지시자로는 AddDescription, AddIcon, AddIconByEncoding, AddIconByType 등이 있다.
- AuthConfig : 인증 유형을 사용할 수 있도록 허용함.
- Limit : 호스트 접근을 제어하는 지시어 사용을 허용함. Allow, Deny, Order 같은 지시어를 사용할 수 있다.
- Options : 지정한 디렉토리를 제어할수 있도록 지시자 사용을 허용함.
AllowOverride 는 AccessFileName 에 지정된 파일에서 쓰일수 있는 기능들을 정의한다고 생각하면 됩니다.
Options
이것은 <Directory > 디렉티브로 지정한 파일시스템에 대해서 아파치 서버가 어떻게 제어할지를 지정해 줍니다. 아주 중요한 부분으로 보안의 시작점이라고 보시면 됩니다.
- FollowSymLinks: 파일의 심볼릭 링크를 허용하고 아파치는 이를 이용할 수 있다.
- SymLinksIfOwnerMatch: 심볼릭 링크를 허용하지만 심볼릭 링크의 소유자가 사용자여야 된다.
- Indexes : 아파치가 디렉토리에 접근했는데, DirectoryIndex 지시자로 설정한 파일이 없을 경우 디렉토리안의 파일 목록을 보여준다.
- ExecCGI : 지정한 디렉토리내에서 CGI 실행을 허용한다.
- MutiViews: 클라이언트의 요청에 따라서 적절한 페이지를 보여준다.
- None : 모든 설정을 사용할 수 없다.
예제로는 다음과 같이 사용합니다.
1 2 3 4 5 |
<Directory "/home/nymph203/www"> Options SymLinksIfOwnerMatch MultiViews AllowOverride None Require method GET POST </Directory> |