PHP configuration

From MediaWiki.org

Jump to: navigation, search

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.

Contents

[edit] Installation

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

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

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

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.
--without-sqlite 
This simply trims down the build by removing an unnecessary component of PHP. This is not essential, but it should make the build less likely to fail due to missing dependencies and should result in a smaller PHP install.
--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.

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

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.

[edit] Image Resizing

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

[edit] See also

Personal tools