Installing MediaWiki Guide
Jump to navigation
Jump to search
MediaWiki, the Wiki engine powering this site, is fully open-source and free. It seems to be robust, and reasonably fast. Configuring and installing it, however, is not so easy. This guide is a tutorial for MediaWiki administrators.
Prerequisites
- Apache
- PHP
- MySQL with InnoDB support! The tables created by MediaWiki will use the InnoDB engine. I don't think it is possible to use MyISAM tables.
Optional Software
- APC. This is a PHP accelerator.
- memcached. This a daemon caching SQL requests in memory. If you run two Wikis on the same machine, beware that it can cause serious problems. If there is a single memcached daemon running, and both Wikis use it, they will interfere and one Wiki will end up serving the contents of the other. A solution can be to run memcached on several machines, or maybe on the same machine but with different ports. However, this last option on Mac OS X seems to be tricky.
- ImageMagick, in order to generate the images thumbnails. This can also be done via PHP if GD support is included; however ImageMagick is recommended since it produces better quality thumbnails. Don't forget to set $wgImageMagickConvertCommand to the correct location:
$wgImageMagickConvertCommand = "/usr/local/bin/convert";
Installation
- Installation is easy, just download MediaWiki from Sourceforge and uncompress the tarball in a directory that Apache can serve. Then follow the instructions on the README to perform the initial configuration. It involves running a PHP script that will configure the Wiki for you.
- Warning: the initial administrator account is named "WikiSysop", and is case sensitive. If you forget it, search it on the MySQL database directly.
- It is also recommended to increase your PHP memory_limit variable in php.ini. Else sometimes MediaWiki will fail with a message such as:
Fatal error: Allowed memory size of 8388608 bytes exhausted (tried to allocate 80629 bytes) in /var/www/wikistuff/includes/Parser.php on line 206
I set this variable to 30 MB. Note that with PHP 5.2.4+ it should be set at least to 128MB.
Configuration
- Using an accelerator. I am not sure how it exactly works. This seems to be needed for using APC (at least as the "main" accelerator):
$wgMainCacheType = CACHE_ACCEL; $wgMemCachedServers = array();
And this would setup support for a memcached server running on the local machine on port 11212:
$wgMainCacheType = CACHE_MEMCACHED; $wgMemCachedServers = array ( 0 => '127.0.0.1:11212', );
- Obtaining nice URLs: A guide to remove "index.php" from the URL is available online. However I don't find it very clear. The important steps are:
- Unpack the MediaWiki in a directory NOT named "wiki", for example "wikistuff" will do.
- In LocalSettings.php, set $wgScriptPath = "/wikistuff"; and $wgArticlePath = "/wiki/$1";
- Write an Alias rule for Apache: add the line
Alias /wiki /filesystem/path/to/wikistuff/index.php
in the Apache configuration file. Note: don't add the second line as mentionned in the guide!
- Disabling automatic account creation and anonymous edits. Add the following lines to LocalSettings.php:
$wgGroupPermissions['*']['edit'] = false; $wgGroupPermissions['*']['createaccount'] = false;
- Disabling anonymous reading. Add the following lines to LocalSettings.php:
# Pages anonymous (not-logged-in) users may see $wgWhitelistRead = array( "Main Page", "Special:Userlogin", "-", "MediaWiki:Monobook.css" ); $wgGroupPermissions['*']['read'] = false;
- Customizing logo (note that it should start with the name of the wiki directory, eg /wiki here):
$wgLogo = "/wiki/path/to/logo.png";
- Allowing images uploads (set $wgUseImageMagick to false if you want to use GD instead of ImageMagick to create the thumbnails):
$wgEnableUploads = true; $wgUseImageResize = true; $wgUseImageMagick = true; $wgImageMagickConvertCommand = "/usr/bin/convert";
Administration
- Deleting/removing an user is not possible with MediaWiki. You can, however, change the password with the following SQL request:
UPDATE user SET user_password = MD5(CONCAT(user_id, '-', MD5('somepass'))) WHERE user_name = 'someuser';
Usage
Customization with styles / CSS
- Link to the official skins tutorial
- There is a site wide CSS style page, accessible at MediaWiki:Common.css. There is also a corresponding page for each user. Note that this CSS page can be modified directly, this is very nice. Of course you could also edit directly the CSS files present in the software distribution of MediaWiki.