아파치 구성

This page is a translated version of the page Apache configuration and the translation is 100% complete.

Apache HTTP Server (httpd)는 미디어위키에서 가장 많이 사용되는 웹서버입니다.

모듈

PHP

PHP를 Apache 모듈로 사용

미디어위키는 PHP를 Apache 모듈로 사용하도록 작성되었습니다. 다음과 같은 URL로 시작하면 PHP가 모듈로 구성되었을 것입니다:

example.com/index.php/Main_Page

위키의 Special:Version 페이지를 보거나 phpinfo()를 사용하여 현재 가지고 있는 PHP의 구성과 버전을 확인할 수 있습니다.

PHP, Apache 및 Apache용 PHP 모듈을 설치합니다. 그런 다음 Apache 서비스가 실행 중인지 확인하십시오. 특정 명령에 대해서는 운영 체제 또는 배포판의 설명서를 참조하세요.

CGI로서의 PHP

PHP가 CGI로 실행되는 경우 기본적으로 "추악한" URL이 있지만 짧은 URL을 구현할 수 있습니다.

CGIWrap

Apache를 실행하는 자체 서버가 있고 PHP를 CGI로 실행 중인 경우 CGIWrap을 설치할 수 있습니다. 이 도구를 사용하면 CGI에 대한 다른 사용자로 Apache 서버를 실행할 수 있습니다.

이렇게 하면 미디어위키 페이지에 대한 새 사용자를 생성할 수 있습니다. CGIWrap 설치는 특히 자신의 서버에 맞게 컴파일해야 하기 때문에 이 문서의 범위를 벗어납니다. 그러나 빠른 지침으로 다음 규칙을 따를 수 있습니다:

  • 위키미디어 사용자 생성
useradd -M -s /sbin/nologin wikiuser
  • CGIWrap(/home/myuser/cgi-bin의 예)을 포함하는 cgi-bin 폴더가 있습니다. 모든 것이 구성되면 cgiwrap만 유지하고 필요할 경우 디버그 버전을 다른 폴더로 이동하십시오. cgiwrap 파일은 Apache(따라서 chown 및 chmod)에서만 액세스할 수 있어야 합니다.
chown apache:apache cgiwrap
chmod 500 cgiwrap
  • cgi-bin 폴더 안에 Wikimedia 루트에 대한 심볼릭 링크를 만듭니다.
ln -s /home/myuser/public_html/wiki /home/myuser/cgi-bin/wikilink
  • 위키의 .htaccess 파일에 다음 정의를 추가하세요:
AddHandler php-wrapper .php
Action php-wrapper /cgi-bin/cgiwrap/wikiuser/wikilink
  • 마지막으로 Wikimedia 폴더의 모든 .php 파일을 chown 및 chmod하여 wikiuser만 액세스할 수 있도록 하세요.
find . -name \*.php -exec chown wikiuser:wikiuser {} \;
find . -name \*.php -exec chmod 500 {} \;

평소와 같이 파일에 액세스할 수 있습니다. 경로에 cgi-bin을 지정할 필요가 없습니다. 이는 투명하게 처리되기 때문입니다.

/cgi-bin/cgiwrapd/...를 php-wrapper로 사용하여 시작하는 것이 좋습니다. 이는 현재 작동 중인 작업을 정확하게 보여주기 때문입니다. 또한 모든 것이 완벽하게 작동할 때까지 CGIWrap 소스 폴더를 삭제하지 않는 것이 좋습니다. 이는 실제 시행착오 과정이므로 시간이 오래 걸립니다. 그러나 MediaWiki는 다른 uid를 방해하지 않고 자체 uid에서 별도의 프로세스로 실행되므로 시간을 투자할 가치가 있습니다. 어디에서나 무엇이든 읽을 수 있는 루트를 제외하면 역(Inverse)도 참입니다.

mod_alias / mod_rewrite

URL을 아름답게하는 데 권장되는 방법은 mod_alias를 포함합니다. 다른 방법에서는 대신 mod_rewrite를 사용합니다.

mod_security

ModSecurity 은 MediaWiki에 문제를 일으키는 것으로 알려져 있습니다. 오류가 무작위로 발생하는 경우 오류 로그를 확인하여 문제를 일으키는지 확인하세요.

시각 편집기 및 하위 페이지

Parsoid 서버 연결 오류를 방지하려면 위키의 가상 호스트 구성 블록(또는 가상 호스트를 사용하지 않는 경우 일반 서버 구성)에 AllowEncodedSlashes NoDecode를 추가해야 합니다.[1]

스레드 스택 크기

각 아파치 스레드의 스택 크기는 구성 가능이며 기본값은 운영 체제에 따라 다릅니다. 윈도우 환경에서 미디어위키를 실행하려면 스택 크기를 늘려야 할 수도 있습니다(문제가 있는 경우). 1MB 기본값은 작고 PHP 스크립트 실행 중에 인해 스택 오버플로가 발생할 수 있음 때문입니다. 다음 httpd.conf 설정은 스택 크기를 약 8MB(일반적인 리눅스 기본값)로 설정합니다:

<IfModule mpm_winnt_module>
ThreadStackSize 8388608
</IfModule>

거미와 봇

robots.txt 파일을 사용하여 선량하게 행동하는 스파이더에게 동적으로 생성된 페이지(예: 편집 페이지)를 다운로드하지 않도록 지시해야 합니다. 이를 통해 웹 서버의 로드를 줄이고 대역폭을 보존하며 검색 엔진의 중복 콘텐츠 문제를 방지할 수 있습니다. 그러나 악성 봇은 대량의 페이지를 매우 빠르게 다운로드하여 웹 서버를 묶고 대역폭을 낭비할 수 있습니다. Request throttling은 이를 방지하는 데 도움이 될 수 있습니다.

참조

참고자료