MediaWiki is a popular «Wiki»-system, written in PHP and originally created as the Wikipedia's engine. MediaWiki is very extensible — there is more than 1700 useful extensions, and it’s very easy to write a new one.
Mediawiki4Intranet is a MediaWiki distribution containing many extensions and patches useful for intranet (and not only for intranet). It is important to mention that all these extensions are improved and tested to work together — integrations bugs are fixed and some features are added.
This page (english documentation) just contains the basic information. For more information see russian documentation.
Installation information: see #Installation.
Mediawiki4Intranet is a MediaWiki distribution suited for corporate («intranet») usage. It was created just as a bundle that we use in our company; it includes 89 extensions, patched core and some maintenance tools and configs.
Notable features available in the basic configuration are:
- Wiki-anything: Wiki-blogs, Wiki-forums, Wiki-polls, Wiki-quizzes, Wiki-presentations and even Wiki-bookmarks :)
- Built-in permission system (IntraACL);
- Versioning features: Duplicator, PageSnapshots, massively improved import/export engine;
- Screenshort upload (SupaMW); batch file upload (SWFUpload); Sphinx search; TikaMW for indexing binary (msword, etc) file contents;
- Editing experience: WikiEditor, wikEd, wikifikator (mainly for russian), autocomplete for page links and templates, in-place editing of page sections, SimpleTable;
- Optimized SemanticMediaWiki;
- Many other features and parser extensions.
Mediawiki4Intranet is a «rolling-release»; repo.php script is used for the updatable deployment (faster than git submodules or composer, allows simple creation of «derived» distributions).
- Original MediaWiki code.
- Base configuration files for easily creating your LocalSettings.php.
Most of these is distributed under the GPLv2 license, like the MediaWiki itself. /* I hope the tivoisation isn’t a threat for us :) */ Some extensions are under GPLv3.
The primary source code repositories are under Mediawiki4Intranet github organisation. 'configs' repository contains bundle index and configuration files, 'core' is the patched MediaWiki, other repositories are for extensions and skins.
Some of the extensions are taken directly from Wikimedia Git repositories, like for XXX extension: https://gerrit.wikimedia.org/r/gitweb?p=mediawiki/extensions/XXX.git.
Mediawiki4Intranet version may be less than the last stable release, because the differences between MediaWiki versions are not that big in terms of new features, but newer releases are less stable and patches always need updating.
MediaWiki used in 4Intranet:
- 2014-06-03 → current: 1.21.10.
- 2014-01-31 → 2014-06-03: 1.21.5.
- 2014-01-14 → 2014-01-31: 1.21.3.
- 2012-11-20 → 2014-01-14: 1.18.5.
- 2012-02-22 → 2012-11-20: 1.18.1.
- 2011-02-08 → 2012-02-22: 1.16.2.
- 2010-10-09 → 2011-02-08: 1.14.1.
- → 2010-10-09: 1.13.1 (doesn't exist in google code / github).
Minor changes to the base code of MW and basic extensions are split into and maintained as patches.
Mediawiki4Intranet contains many useful extensions, and many of them were created specially for it.
The simplest way to try MediaWiki4Intranet for Windows users is to download Windows bundle (approx. 200 MB). It's rarely updated (now it's Mediawiki4Intranet/en/WindowsBundleVersion), but it's fully standalone and includes ALL needed third-party software, even LaTeX. Windows-сборка Mediawiki4Intranet.
To install MediaWiki4Intranet on your site, you need:
Get the code
You can use one of the following ways:
- Get the code bundle (approx. 13 MB)
- Use repo.php script for automatic download via Git (which of course requires a Git client):
- git clone https://github.com/mediawiki4intranet/configs mediawiki/configs
- cd mediawiki/configs
- php repo.php install mediawiki4intranet
- Download from the Subversion mirror (usually lags behind main repos): svn co http://wiki.4intra.net/svn/mediawiki4intranet/
Create 'images' and empty DB
- Create images folder in the installation directory, grant web server user read and write access there.
- Create an empty MySQL database and a user with full access to it.
Initialise the database
First create an empty MediaWiki database:
- Either import maintenance/tables.sql:
- At first create minimal configuration (LocalSettings.php)
- Run php maintenance/patchSql.php maintenance/tables.sql from the installation directory.
- Or run the MediaWiki installer from config folder — the plus is it also does additional environment checks:
- Go to http://server/wiki/config/, answer questions, fix issues, select database type MySQL, InnoDB, 4.1/5.0 utf8 binary. Installer will initialise the DB and create a basic config LocalSettings.php.
- Remove the generated configuration — it has plenty of options which are already in MediaWiki4Intranet configs.
- At last, create minimal MediaWiki4Intranet configuration (LocalSettings.php)
And then run php maintenance/update.php from the installation directory to add extension tables.
Create minimal configuration
Minimal configuration (LocalSettings.php):
<?php require_once 'configs/ServerSettings.php'; # use this under UNIX, use BaseSettings.php under Windows $wgDBname = 'wiki'; # database name $wgDBuser = ''; # login and password for database user $wgDBpassword = ''; $wgDBadminuser = $wgDBuser; $wgDBadminpassword = $wgDBpassword; $wgScriptPath = '/wiki';
- PHP 5.3 or later.
- Notice: now there are Notice errors in the MW4Intranet, we'll fix them all, but now, use error_reporting = E_ALL & ~E_NOTICE in php.ini.
- Web server. The simplest is to use Apache, but IIS, nginx + php_fpm and others are also supported in theory.
- MySQL DBMS, preferably version 5 or later.
- UNIX system is preferred.
- php5-mysql! :-)
- php5-gd for images.
- php5-curl for uploading files via URL.
PHP configuration (php.ini):
- error_reporting = E_ALL & ~E_NOTICE
- If your PHP is < 5.3: short_open_tag = Off
- magic_quotes_gpc = Off (should be Off on every web server which respects itself)
- For SUPA screenshot upload: either disabled Suhosin, or suhosin.post.max_value_length = 8000000 and suhosin.request.max_value_length = 8000000. 8000000 is an example, you can set a bigger value.
- php5-xcache for overall performance.
- php5-fss for string operations.
- Mail и Net_SMTP PEAR packages for e-mail.
Third-party software is also required — there are many of them, but Linux users usually may 'apt-get' them, and Windows users may use our standalone bundle (see above).
- PDF: GhostScript, Poppler — бывший Xpdf (windows)
- DJVU: djvulibre, netpbm (windows).
- LaTeX (формулы <m>…</m>): a TeX distribution, usually TeXLive in Debian, usually MiKTeX on Windows; also dvisvgm is needed.
- FLV/MP4-video: ffmpeg (для windows).
- Graphviz, preferably 2.27 or later.
- Java for UMLGraph, UMLet, PlantUML.
- Sphinx search: Sphinx.