PHP configuration/ja

PHP is a web template system that accidentally grew up into a fairly general language. PHP's syntax, capabilities, and execution model bear vague similarities to Perl; scripts are loaded by an "interpreter", compiled to bytecode, and then executed. The PHP interpreter can be run from the command line, CGI-style, or more commonly as an in-process Apache module.

MediaWikiとの互換性
どのバージョンのPHPでどのバージョンのMediaWikiが動くかの対応については、対応表をご覧ください.

インストール
http://php.net/install を参照してください.

必須
MediaWikiを動作させるには、以下のPHPエクステンションが必要です.
 * Perl互換正規表現 (PCRE)
 * セッション
 * 標準PHPライブラリ（SPL）
 * Document Object Model（DOM）
 * iconv（文字コード変換ライブラリ）
 * JSON（もしくは、フォークしたpecl-json-c）
 * 少なくとも以下のうちどれか1つのデータベースドライバ:
 * MySQL
 * PostgreSQL
 * SQLite（PDO経由）
 * MySQLやPostgreSQLのPDO経由でのアクセスや、MySQLiについては未対応です.

PCRE、セッション、SPL、JSONについてはデフォルトで有効であり、特にPHP 5.3以降ではPCREとSPLが必ず有効になっています.

省略可能
MediaWikiでは、PHPへコンパイル時に組み込むオプションについてもいくつか使おうとしますが、なくても動作は可能です.
 * mbstring：マルチバイト文字列の処理（なければ自前処理となり、遅いながらも動作はします）
 * zlib：圧縮ライブラリ、ファイルキャッシュを圧縮する場合には必要になります
 * ソケット （memcachedを使う場合に必要）
 * dba DBM-style database abstraction layer, for caching, with the following handlers:
 * CDB for interwiki cache (and maybe some other things)
 * Berkely DB3 if you want to use CACHE_DBA in either,  or
 * FastStringSearch

例
We are successfully working with these compiler options:

 './configure' \ '--with-mysql' \ '--with-apxs2=/usr/sbin/apxs2' \ '--with-zlib' \ '--with-ldap' \ '--with-gd' \ '--with-jpeg-dir' \ '--with-iconv-dir' \ '--enable-mbstring' In detail, these configure options do the following:


 * --with-mysql : Allows PHP to query MySQL. This is an essential feature (I think). You will need to have MySQL installed to enable this option.
 * --with-apxs2=/usr/sbin/apxs2 : this is required if you want to build mod_php. APXS is for configuring compilation of an Apache module. You will need to change (or omit the path) for your specific system.
 * --with-zlib : Allows PHP to read / write zipped files and send compressed data to Apache ... or something like that
 * --with-ldap : Important if you want your wiki users to be verified by LDAP
 * --with-gd : Use this if you want image processing 'within' PHP, else you can use ImageMagick. Because this option requires that you have various libraries installed... but presumably IM has the same deps... oh well...
 * --with-jpeg-dir : Seems nonsensical
 * --with-iconv-dir : Seems nonsensical
 * --enable-mbstring : Allows multibyte character string support. This is optional, as slower custom code will be used if not available.

Opcode caching

 * Manual:Cache を参照してください

Due to MediaWiki's large codebase, it is highly recommended that a system be used to cache the compiled scripts; there are a number of such plugins for PHP, some free, some proprietary. There is a list of some caches:
 * Alternative PHP Cache -- used at Wikimedia
 * Windows Cache Extension for PHP -- recommended for IIS users

Fortunately, these all seem to be easy to install as Zend plugins, you just drop in a library and change your php.ini. No fussy recompiling of the entire PHP!

Depending on the cache and options used, you may have to perform a special operation whenever updating script files.

MediaWiki can also interact with that caches and use them for object caching, see.

実行時設定 (php.ini)
php.iniの設定によってはMediaWikiの動作が変化したり、あるいはまったく動かなくなってしまうようなことがあります.


 * register_globals
 * これを有効にしていると大きなセキュリティリスクを生み、XSS攻撃に使うこともできます. MediaWikiではonにする必要はありませんので、特段の事情がない限りoffとしてください.


 * safe_mode
 * セーフモードは発想も設計もよくない設定です. 有効にしていてもMediaWikiは動かなくはないですが、一部に動かない機能が発生します.


 * magic_quotes_gpc
 * このオプションは、 、 、 に引用符を加えるというものです. 有効でもMediaWikiは動作しますが、不要な引用符を削除しながらの動作となるので、その分遅くなります.


 * magic_quotes_runtime
 * このオプションを有効にしてしまうと、ファイルやデータベースから取得したデータなど、予期しないところに引用符を入れてデータを破壊してしまいます. 有効にした状態では、MediaWikiのインストール自体も拒否されます.


 * magic_quotes_sybase
 * magic_quotes_runtime と同じです


 * mbstring.func_overload
 * This option causes errors and may corrupt data unpredictably; MediaWiki will refuse to install if this option is turned on.


 * zend.ze1_compatibility_mode
 * This option causes horrible bugs; MediaWiki will refuse to install if this option is turned on.


 * memory_limit
 * MediaWiki needs sufficiently memory to work. The minimal limit should be something like 20 MB, but if you want MediaWiki to work correctly, consider using at least 50 MB.


 * disable_functions
 * To be able to find GNU diff3 and git during installation process this entry must not contain passthru

画像のサイズ変更
画像のリサイズにImageMagickを使うこともできます. ImageMagickがない場合には、（あれば）PHPのGDを使います.

関連項目

 * PHP 知識ベース
 * PHP のチュートリアル
 * Suhosin (Hardened-PHP Project patch and extension)
 * Simple PHP Tutorials