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 97% complete.

Outdated translations are marked like this.
Other languages:
Deutsch • ‎English • ‎Lëtzebuergesch • ‎dansk • ‎español • ‎français • ‎italiano • ‎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 との共存で問題を起こすことが知られています。一見、エラーが不規則に起こっているような場合は、それが問題を引き起こしているかどうかを見るために、エラーログを確認してください。

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

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

<IfModule mpm_winnt_module>
ThreadStackSize 8388608
</IfModule>


スパイダーとボット

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

関連項目