PHP configuration

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.

Installation
Please see http://www.php.net/manual/en/installation.php.

Compile-time options
MediaWiki either needs or wants a number of optional features of PHP that need to be enabled at compile time:
 * mbstring multibyte character string support (optional; slower custom code will be used if not available)
 * iconv character set conversion library (optional; other conversion functions will be used if not available)
 * zlib compression library, optionally to compress the file cache
 * sockets support for network communication, if using memcached

Example
We are successfully working with these compiler options:

'./configure' '--with-mysql' '--without-sqlite' '--with-apxs2=/usr/sbin/apxs2' '--with-zlib' '--with-ldap' '--with-gd' '--with-jpeg-dir' '--with-iconv-dir' '--enable-mbstring'

Opcode caching
If running a high-traffic site, 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
 * Turck MMcache
 * ionCube PHP Accelerator

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 Manual:$wgMainCacheType.

Image Resizing
ImageMagick can be used for image resizing (see Manual:Configuration settings). When it is not available the GD PHP module is used instead where found.