PHPの設定
PHP とはウェブテンプレートのシステムで、いつのまにか一般的な使い方がされるようになったものです。PHP の構文、能力、実行モデルは Perl とあまりにも似ており、「インタプリター」を使って読み込んだスクリプトをバイトコードにコンパイルして実行します。一般的に PHP インタープリターは、コマンドライン、CGI スタイルで実行でき、より一般的なインプロセスの Apache モジュールとしても実行できます。
MediaWikiとの互換性
どのバージョンの PHP でどのバージョンの MediaWiki を使用できるかの対応は、互換性#PHP を参照してください。
インストール
https://php.net/install を参照してください。
コンパイル時のオプション
必須
MediaWikiを動作させるには、以下のPHP拡張が必要です。
- Perl互換正規表現 (PCRE)
- セッション
- 標準PHPライブラリ(SPL)
- Document Object Model(DOM)
- iconv(文字コード変換ライブラリ)
- JSON(もしくは、フォークしたpecl-json-c)
- mbstring マルチバイト文字列の処理
- fileinfo MIMEタイプの検出
- intl Unicode正規化
- calendar 異なる暦の間の変換をサポート
- 少なくとも以下のうちどれか1つのデータベースドライバ:
- MySQL
- PostgreSQL
- SQLite(PDO経由)
MySQLやPostgreSQLのPDO経由でのアクセスについては未対応です
PCRE、セッション、SPL、JSONについては既定で有効であり、特にPHP 5.3以降ではPCREとSPLが必ず有効になっています。
省略可能
MediaWikiでは、PHPへコンパイル時に組み込むオプションについてもいくつか使おうとしますが、なくても動作は可能です。
- zlib:圧縮ライブラリ、ファイルキャッシュを圧縮する場合には必要になります
- ソケット (memcachedを使う場合に必要)
- exif functions to display EXIF data from uploaded images (
$wgShowEXIF
).
例
これらのコンパイラオプションを使用して正常に作業しています:
'./configure' \ '--with-mysqli=mysqlnd' \ '--with-pdo-mysql=mysqlnd' \ '--with-apxs2=/usr/sbin/apxs2' \ '--with-zlib' \ '--with-ldap' \ '--with-gd' \ '--with-jpeg-dir' \ '--with-iconv-dir' \ '--enable-mbstring'
詳細には、これらの設定オプションは次のとおりです。
- --with-mysqli=mysqlnd
- Include MySQLi (MySQL improved) support. The MySQL native driver will be used when value is
mysqlnd
. - --with-pdo-mysql=mysqlnd
- PDO: MySQL support. The native driver will be used when value is
mysqlnd
. - --with-apxs2=/usr/sbin/apxs2
- mod_php の構築に必要です。Apache モジュールの解析に APXS を使い、特定のシステムではパスの変更(除外)をします。
- --with-zlib
- 圧縮ファイルの読み書きを PHP に認め、圧縮ファイルを Apache ... やその他に送信させます
- --with-ldap
- LDAP を使用してご利用のウィキのユーザー承認をする場合に重要です
- --with-gd
- PHP '内で'画像処理をする場合に使い、それ以外であれば ImageMagick を採用します。このオプションには、さまざまなライブラリのインストールが前提であり... おそらくは ImageMagick も同様の深さがあるわけで... (訳注: 違いは不明瞭)...
- --with-jpeg-dir
- 無意味なようです
- --with-iconv-dir
- 無意味なようです
- --enable-mbstring
- マルチバイトの文字列サポートを許可。これはオプションであり、もしサポートがない場合には処理の遅い特性のコードを使用します。
命令コードのキャッシュ
- Manual:パフォーマンス チューニング を参照してください
MediaWikiのコードベースは大きいので、コンパイル後のスクリプトを何かしらの形でキャッシュすることを強く推奨します。PHPには無料から商用向けを含め、その種のキャッシュ用のプラグインがいくつかあります。以下に少し例示します: PHP usually comes with this extension pre-installed and enabled.
実行時設定 (php.ini)
php.iniの設定によってはMediaWikiの動作が変化したり、あるいはまったく動かなくなってしまうようなことがあります。
- magic_quotes_gpc
- このオプションは、
$_GET
、$_POST
、$_COOKIES
に引用符を加えるというものです。有効でもMediaWikiは動作しますが、不要な引用符を削除しながらの動作となるので、その分遅くなります。 - magic_quotes_runtime
- このオプションを有効にしてしまうと、ファイルやデータベースから取得したデータなど、予期しないところに引用符を入れてデータを破壊してしまいます。有効にした状態では、MediaWikiのインストール自体も拒否されます。
- magic_quotes_sybase
- magic_quotes_runtime と同じです
- mbstring.func_overload
- このオプションはエラーの原因となり、またデータを破壊してしまう危険もあります。有効にした状態では、MediaWikiのインストール自体も拒否されます。
- zend.ze1_compatibility_mode
- このオプションが有効だと深刻なバグを引き起こします。有効にした状態では、MediaWikiのインストール自体も拒否されます。
- memory_limit
- MediaWikiの動作には、充分なメモリが必要です。最低限20MB程度あれば動作するかもしれませんが、きちんと動作させたいなら最低でも50MBのメモリを用意することが必要でしょう。
- disable_functions
- インストール中にGNU diff3やgitを検出するためには、passthruを指定してはいけません。
- post_max_size
- エラー「編集フォームの一部がサーバーに届きませんでした。ご確認の上、そのまま再度投稿してください。」が表示されている場合は、「M」の代わりに「MB」という接頭辞が設定されている可能性があります(後者はメガバイトではなくバイトで解釈される)。
画像のサイズ変更
画像の縮小にImageMagickまたはPHPのGDモジュールを使用することができます。 See Manual:Image administration#Image thumbnailing