A wiki is a software platform for contributing, sharing, and managing content. Any group that has a need for a collaborative user driven content environment can benefit from using a wiki. Perhaps the most prominent example on the Web of a wiki in heavily active, popular usage today is Wikipedia, which is, as you might expect, a wiki-based encyclopedia. The Wikimedia Foundation uses as the basis of Wikipedia a GPL-licensed application called MediaWiki, and so can you.From a user perspective, MediaWiki provides a simple, feature rich environment for editing and contributing content. Content is handled with a simple WYSIWYG editor that makes editing accessible to anyone by default even without a login. All articles also have a discussion tab that allows readers to comment on the article as well as a history tab that lets you view version history when edits have been made. Its ease of use has no doubt been a contributing factor in the growth of Wikipedia.
For the purpose of this review I tested the most recent version of MediaWiki version 1.3.8, which was just released on November 15. According to the documentation all it needs to run is Apache, PHP, and MySQL. Through my own basic testing I found MediaWiki able to run on a 2.4.x kernel with Apache 1.3.x, MySQL 3.23.x, and PHP 4.x as a minimum.
Get the tarball, unpack it, and put the contents in the Web server directory that you will serve MediWiki from. There's a simple install script that handles the rest of the installation, save for some small configuration tweaks. Normally when I'm dealing with an open source application that uses MySQL I assume that I'll have to create the database first so that whatever I'm installing will be able to populate it with tables and data. With MediaWiki, there's an option that eliminates that extra step and automatically installs, creates, and populates your database if you have root user access to the MySQL server you're using.
By default MediaWiki does not allow for uploads of images into the wiki. If you want to enable that functionality you'll need to edit the LocalSettings.php file to read:
$wgDisableUploads = false;
Once you're done with the setup, you're left with one master user, the Sysop. This superuser can protect pages from being edited as well as ban IP addresses and delete and undelete pages, among other administrative privileges. Individual users can add themselves to the wiki as registered users, which will allow them to set
and track contributions. A regular user can edit and contribute, while a Sysop can delete, ban users by IP, and protect pages. The Bureaucrat user is the master user that can assign Sysop status to a user. Assigning status is easily done through an option on the Special Pages menu.
The documentation for MediaWiki is somewhat "dispersed"; there's a lot of information, online in wiki format of course, though I found it to be spread across many different articles that weren't all complete. Then again, it is a wiki and it is user driven, so maybe after this review is done I'll contribute some of my own learning back to the project. The MediaWiki mailing list and #MediaWiki IRC channel on irc.freenode.net are also tremendous resources that answered any and all questions that I had about MediaWiki.
MediaWiki users can choose from four different default skins
) from the user preferences menu. The skins are basic CSS files and define the layout of your wiki page in terms of where the various page elements fit as well as font definition. Administrators can change skins in the LocalSettings.php or change user skin setting directly by going into the database tables. A logged-in user by default may also change his skin from the default to whatever skin options are enabled.
Creating and adjusting the skins for MediaWiki involves a bit of effort, as there isn't a default skins editor inside of the application. However, since skins are really just simple CSS documents, you need only crack open your favorite editor to modify them. You can find customization instructions and a gallery of user-created styles that may help inspire you.
MediaWiki offers a robust feature set that is all about content. The watchlist feature is useful as both a user or an admin to monitor certain pages for edits. User Discussion/Talk pages are associated with every wiki page where users may leave comments on the page, which logged-in users can track with the My Talk feature. Wiki pages also have associated history pages which detail version changes and allows users to compare differences between versions.
The toolbox navigation items in MediaWiki further extend the content capabilities of the wiki with a Recent Changes options that, surprisingly enough, shows the most recent changes made to the wiki. The Special Pages item includes a plethora of details on the wiki's content, including old, new, dead, and popular pages. RDF feeds in either RSS or ATOM format are automatically generated for a good number of these Special Pages, making it even easier to track content.
An admin user (Sysop) can protect pages, delete and undelete pages, and ban users by IP address and/or username. Beyond that the admin can of course benefit from all of the same features that a regular user can.
Because it's a database-driven application, the standard URLs MediaWiki creates can be a bit awkward for some end users and unfriendly to some search engines. MediaWiki itself doesn't have any method for creating more friendly page URLs itself, but Apache's mod_rewrite can do that for you. MediaWiki documentation helps you set up mod_rewrite.
Since content is a wiki's raison d'etre, it's important to include some information for users about their rights to the content. The MediaWiki setup process allows you to automatically insert copyright and license metadata to be displayed on every page, with a choice of either a Creative Commons or a GNU Free Documentation License version 1.2.
From a user point of view I'm hard pressed to find much wrong with MediaWiki. From an administrator's point of view, the lack of a more robust administrative panel that would provide more granular control of users and permissions in one master dashboard is something I'd like to have. However, that would likely irk some purists who would argue that the wiki by definition is collaborative and not authoritative like a traditional content management system.
Though MediaWiki in its current form easily populates a MySQL database, that ease doesn't extend to backing up the database. Sure, you can also set a cron job on your *nix server to back up your database, but for technical neophytes that's not as easy as it should be.
I was first drawn to MediaWiki because it powers the wiki that I visit and respect the most. Downloading, installing, and running MediaWiki for my own purposes has only enhanced my admiration for both the wiki and the WikiMedia Foundation. It's not only easy to use, it's also easy to install and deploy. In the true spirit of the open source community MediaWiki is a shining example of what open content collaboration is all about.