Apache の設定

From mediawiki.org
Jump to navigation Jump to search
This page is a translated version of the page Apache configuration and the translation is 95% complete.
Other languages:
Deutsch • ‎Deutsch (Sie-Form)‎ • ‎English • ‎Türkçe • ‎dansk • ‎español • ‎français • ‎magyar • ‎occitan • ‎polski • ‎português • ‎português do Brasil • ‎русский • ‎中文 • ‎日本語

Apache はMediaWiki に使用される率が最も高いウェブサーバーです。

モジュール

PHP

Apache モジュールとしての PHP

MediaWiki は、PHP を Apache モジュールとして使用するように書かれています。以下のような URL で始まる場合は、おそらく PHP はモジュールとして設定されています:

example.com/index.php/Main_Page

PHP の設定とバージョンは、ウィキの Special:Version ページを見るか、または phpinfo() を使用して確認できます。

RedHat/Fedora ベースの Linux

PHP をインストールします:

# yum install php php-xml

httpd を再読み込みします:

# service httpd reload
Debian ベースの Linux

apache2 php5 モジュールをインストールします:

# apt-get install apache2 libapache2-mod-php5 php5-cli php-apc php5-mcrypt
Ubuntu 16.04.2 LTS版
# sudo apt-get install libapache2-mod-php

apache2 php5 モジュールを有効化します:

# a2enmod php5

Apache を再起動します:

# service apache2 restart

CGI としての PHP

PHP が CGI として動作している場合は、既定では「醜い」URL になるでしょう。それでも短い URL にすることはできます。

CGIWrap

ご利用のサーバで Apache を採用していて、PHP を CGI として稼働させている場合は CGIWrap をインストールします。このツールで CGI ごとにユーザーを切り替えて Apache サーバーを稼働させることができます。

そうすると MediaWiki ページに新しいユーザーを作れます。CGIWrap のインストールは、ご利用のサーバごとにコンパイルする必要があるため、この文書では説明しません。ただし簡単な目安として以下のルールに従います。

  • ウィキメディアの利用者を作成します
useradd -M -s /sbin/nologin wikiuser
  • cgi-bin フォルダーを作り CGIWrap を保存します (サンプルは /home/myuser/cgi-bin を参照)。構成が完了した段階でこのフォルダーに cgiwrap のみ残し、デバッグ版が必要なときに備えるなら他のフォルダーに移動します。cgiwrap ファイルは Apache からのアクセスのみ許可します (chown と chmod も同様)。
chown apache:apache cgiwrap
chmod 500 cgiwrap
  • cgi-bin フォルダー内に、ウィキメディアのルートへのシンボリック リンクを作成します。
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 を特定しなくても、透明に処理されます。

ご利用のPHPラッパーとして、実際の処理を明確に示す /cgi-bin/cgiwrapd/... を使うよう強く推奨します。またこれはまさに試行錯誤のプロセスで長い時間がかかるため、すべてが完璧に動作するまで、CGIWrapのソースフォルダを削除しないことを強くお勧めします。しかしながら、ご利用のMediaWikiは他のuidを妨害することなく、独自のuidを使い独自のプロセスで実行されるため、それだけの時間を費やす価値が十分にあります。逆もまた真ですが、rootを除くと、どこでも何でも読み取れます。

mod_alias / mod_rewrite

URL を美しくするためのお勧めの方法には mod_alias が必要です。他の方法では代わりに mod_rewrite を使います。

mod_security

ModSecurity は MediaWiki との共存で問題を起こすことが知られています。一見、エラーが不規則に起こっているような場合は、それが問題を引き起こしているかどうかを見るために、エラー ログを確認してください。

VisualEditor and Subpages

In order to prevent errors contacting the Parsoid server, AllowEncodedSlashes NoDecode must be added to the wiki's VirtualHost config block (or to the general server config if VirutalHosts are not used).

スレッドのスタックサイズ

各 Apache スレッドのスタック サイズは設定可能で、その既定値はオペレーティング システムごとに異なります。Windows 環境で MediaWiki を動作させるためには、(問題があるならば)スタック サイズを増やす必要があるかもしれません。標準の 1MB は小さく、PHP スクリプトの実行中にスタック オーバーフローを引き起こす可能性があるためです。以下の httpd.conf 設定はスタック サイズを約 8MB(ほぼ、標準的な Linux の既定値)に設定します:

<IfModule mpm_winnt_module>
ThreadStackSize 8388608
</IfModule>

スパイダーとボット

悪意のないスパイダーに指示し、動的に生成されたページをダウンロードさせないためには、必ず robots.txt ファイルを使用します。 これによりウェブサーバーの負荷軽減と帯域幅の維持、検索エンジンでコンテンツが重複する問題を防ぐことができます。 しかし悪意のあるボットによってウェブサーバーを拘束されると、大量のページを非常に迅速にダウンロードさせられてしまい、帯域幅を無駄にする可能性があります。 その防止に役立つのが Request throttling です。

関連項目