Extension:MediaWikiFarm

The extension MediaWikiFarm creates farms of wikis, with the following strengths:
 * Multi-version: As a standard MediaWiki extension, it turns MediaWiki into a single-version farm; installed "in front of MediaWiki" it becomes possible to create multi-version farms;
 * Hierarchical configuration: The configuration can be written either in YAML, PHP, or JSON, in a hierarchical manner: default value, default value for the wikis family, value for a single wiki;
 * Performance: Caching, caching, caching; there is one cache per file, caches are written as PHP arrays to benefit from OPcache extension; with this cache architecture, this extension adds a mean time of 139µs per request (on a personal computer; PHP7+OPcache) compared to a standard LocalSettings.php.

Installation
There are two installation modes:
 * an almost classical installation in the  subdirectory, but limited to single-version MediaWiki farms;
 * a more complex and completely unusual installation for multiversion MediaWiki farms.

These instructions are only minimal; you should read the documentation available in the subdirectory  to understand the goals, the basic concepts, and prepare your naming scheme (the URLs) and directory organisations before you start installing it.

Quick installation

 * Download the MediaWikiFarm extension and copy the directory in the usual subdirectory ;
 * 1) Optionally run Composer in the subdirectory extension (to read YAML files);
 * 2) Create a directory where you want to put your configuration, e.g.  ;
 * 3) Create and configure the main configuration file , e.g. from the sample file;
 * 4) Move your existing LocalSettings.php in this configuration directory;
 * 5) Copy the placeholder LocalSettings.php provided by MediaWikiFarm in your MediaWiki directory.

Multiversion installation
C.f. documentation in the subdirectory

Documentation
An extensive documentation is available in the subdirectory  of the extension. Some basic instructions should be transferred here (installation, basic configuration).

Be aware it is non-trivial to set up a MediaWiki farm; this extension only improves the MediaWiki part, after that it remains farm-type configuration of: DNS, webserver, MySQL, HTTPS, domain names, external services (memcached, Parsoid, *oid…), this is the job of a configuration management tool (puppet, Chef, Ansible, Cfengine, etc.).

Testing
The extension has been tested with a multi-version installation with MediaWiki ranging from 1.13 to 1.18alpha, with PHP 5.6 and PHP 7.0 (MediaWiki >= 1.22 for PHP 7.0).

There is a partial support for MediaWiki from 1.9 to 1.12 (with PHP 5.2): the extension works when the call to Composer (for YAML) is disabled, because PHP 5.2 doesn’t support the PHP namespaces. For old MediaWiki versions, the parameter $wgUsePathInfo should be true, and there is a small bug in the URL for MediaWiki 1.9 and 1.10.

Related extensions

 * Extension:Farmer
 * Extension:Simple Farm
 * Extension:WikiFarm
 * Extension:Configure
 * Extension:CreateWiki