작은숲:위키노트/Nginx 미디어위키 설정
Nginx에서는 아파치와 달리 .htaccess 파일을 쓸 수 없기 때문에 필요한 설정을 모두 server 블럭에서 처리해야 한다. 특히 짧은 주소 방식을 쓰려면 location 지시자를 써서 Nginx에게 우리가 원하는 것을 알려줘야 한다.
location = / {
rewrite ^ /wiki/ break;
}location ^~ /w/ {
try_files $uri @mediawiki;
}location @mediawiki {
rewrite ^/w/(.*)$ /wiki/index.php?titles=$1&args;
}location ^~ ^/wiki/(cache|includes|maintenance|languages|serialized|tests|images/deleted)/ {
access_log off;
log_not_found off;
deny all;
}location ^~ ^/wiki/(docs|extensions|includes|maintenance|mw-config|resources|serialized|tests)/ {
internal;
}
위 설정에서는 미디어위키가 루트 디렉토리 아래 wiki 디렉토리에 설치되어 있고, 짧은 주소를 쓸 때는 /w/미디어위키와 같은 형태로 쓰고자 한다.
- 첫 번째 location 블럭은 도메인네임으로만 접속한 경우 미디어위키가 설치된 디렉토리로 보내주는 것이다.
- 두 번째 location 블럭은 짧은 주소의 형태로 접속한 경우 이를 처리하기 위한 설정이다.
- 세 번째 location 블럭에서는 실제로 rewrite 지시자를 써서 짧은 주소 형태의 주소를 제대로 처리하도록 한다.
- 네 번째 location 블럭은 외부에서 접근하지 못하게 할 미디어위키의 디렉토리를 보호한다.
- 다섯 번째 location 블럭은 미디어위키 소프트웨어 내부에서 사용할 수도 있는 디렉토리를 설정한다.
이와 같이 웹 서버를 Nginx를 쓰는 경우에는 아파치의 .htaccess 파일에서 했던 설정을 location 지시자를 써서 직접 설정해줘야 한다.
참고
- (영어) Nginx: MediaWiki
- (영어) MediaWiki on Nginx
- (영어) Nginx Installation and Configuration
- (영어) mw:Manual:Short URL/wiki/Page title -- nginx rewrite--root access
- (영어) mw:Manual:Short URL/Page title - nginx, Root Access, PHP as a CGI_module
| 설치와 설정 | |
|---|---|
| 기능과 활용 | |
| 관리와 개발 | |