PHP configuration

From MediaWiki.org
Jump to: navigation, search

Other languages:
Deutsch • ‎English • ‎British English • ‎español • ‎français • ‎italiano • ‎日本語 • ‎polski • ‎português do Brasil • ‎русский

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 compatibility[edit | edit source]

For the allowed set of PHP versions you can use with your version of MediaWiki, see Compatibility#PHP.

Installation[edit | edit source]

Please see [1].

Compile-time options[edit | edit source]

Required[edit | edit source]

The following extensions are required by MediaWiki:

Perl Compatible Regular Expressions, Session, Standard PHP Library, and JSON are enabled by default; Perl Compatible Regular Expressions and Standard PHP Library cannot be disabled since PHP 5.3.

Optional[edit | edit source]

MediaWiki either needs or wants a number of optional features of PHP that need to be enabled at compile time:

Example[edit | edit source]

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[edit | edit source]

see 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:

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.

Runtime configuration (php.ini)[edit | edit source]

Some settings in php.ini affects MediaWiki behavior and some of them are incompatible with MediaWiki

register_globals
Warning Warning: Enabling this is a major security risk and can be used for XSS attacks; MediaWiki doesn't require it, so please turn it off if you can!
safe_mode
Safe mode is an ill-conceived, broken-by-design setting in PHP; MediaWiki can work with this option on, but some features won't work.
magic_quotes_gpc
This options adds quotes to data in $_GET, $_POST and $_COOKIES. MediaWiki can work with this option turned on, but will have to remove these quotes and thus will be slower.
magic_quotes_runtime
This option corrupts data input unpredictably by adding quotes in e.g. opened files, data received from database etc. MediaWiki will refuse to install if this option is turned on.
magic_quotes_sybase
same as 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

Image Resizing[edit | edit source]

ImageMagick can be used for image resizing When it is not available the GD PHP module is used instead where found.

See also[edit | edit source]