Documentation: Introduction

From MozillaWiki
Jump to: navigation, search

MozillaWiki Handbook
Software help for MozillaWiki — see page histories for older versions.
Handbook Contents | Other help

This is PART 1: Introduction - General Information and Architecture of the MediaWiki documentation.


This is a general, non-technical introduction to the MediaWiki software.

Some Basic Terminology: MediaWiki, Wikimedia, and Wikipedia

MediaWiki is the software program that runs Wikipedia and other Wikimedia projects. For the software project's history see
Wikimedia (or Wikimedia Foundation) is the overarching non-profit that coordinates all management and development of Wikipedia and other Wikimedia projects.
Wikipedia is the Encyclopedia project, that initiated the development of the MediaWiki software.
Meta-Wiki (or Meta for short) is the central community site meant to coordinate discussion and documentation of about Wikipedia and other Wikimedia projects. See [1].

What is MediaWiki?

MediaWiki is the software program released under the GNU GPL that runs Wikipedia and other Wikimedia projects.

MediaWiki is a WikiWiki, meaning that anyone can easily edit any article and have those changes posted immediately. The software contains a lot of features, also. If you want to learn more about editing and other aspect of the user's point of view, you might want to read the

The name "MediaWiki" was coined by Wikipedia contributor Daniel Mayer as a play on Wikimedia [2]. Before that, the software was known as "Wikipedia software Phase III".

The MediaWiki software project is hosted in Git at; if you're interested in the code, you might want to read the following pages:

What is MediaWiki - not?

MediaWiki is not...

...a Content Management System (CMS) software.

...a Forum or Bulletin Board System (BBS) software.

...a Groupware, Messaging, or Computer Supported Cooperative Work (CSCW) software

...a Workflow Management System (WfMS).

See Wiki Uses for further description and discussion of these items.


The current MediaWiki software is built on top of an AMP environment; in this case, this means, that MediaWiki utilizes

System Requirements

The MediaWiki software typically runs in a LAMP environment on the i386 platform. (This is the primary/reference platform.) It is also possible to run the MediaWiki software efficiently under Microsoft Windows and Apple Mac OS X.


Everything you need to run a MediaWiki server is available as Open Source Software.

  • Operating system: Several platforms are possible, including GNU/Linux, Microsoft Windows, and Apple MacOS X. The software is being developed under GNU/Linux, and the recommended environment is a GNU/Linux distribution, also; we recommend Debian GNU/Linux, because this comes closest to the ideals of the Wikipedia, but in this area you are free to choose.
  • Apache httpd, version 1.3 or 2.0 - Open Source.
  • MySQL daemon, version 4.x - Open Source.
  • PHP scripting environment, version 4.3 - Open Source.
  • MediaWiki software - Open Source.
  • Some web browser - lots of alternatives are available as Open Source.


  • i386 hardware architecture (Intel, AMD etc.) recommended, some other architectures are possible (e.g. PowerPC w/ Mac OS X).
  • Memory - depending on the planned usage everything is possible starting with about 96 MB of RAM (?); for best performance, the complete database should fit into the RAM.
  • Disk space - also depending on your requirements; if you want to start a small WikiWikiWeb on your own, a few Megabytes of disk space will be enough. If you want to completely mirror the English Wikipedia with all images, you'll at least need 3 Gigabytes (?)
  • Network Interface Card (NIC) - anything that is supported by your operating system can be used.


  • The MediaWiki software can run on any networked computer; it doesn't even require a DNS entry. If you want to offer a public website, you need an Internet connection, the faster the better; but you can even run it through a leased line with DynDNS.
  • MediaWiki can also run on a local computer without a network connection and serve you as a powerful Personal Information Management system (PIM).


  • The MediaWiki software is licensed under terms of the GNU General Public License (GPL)
  • The content created by the MediaWiki can be licensed under terms of the GNU Free Documentation License, [3], as it has been done on Wikipedia and Wiktionary, but you are free to choose another type of licensing.

See also: Copyrights and [4].

Feature list

You may wonder if you should use MediaWiki for your own wiki. This depends on what kind of wiki you want to run. Wikipedia's software has many useful features that grew out of the needs of the users and the ideas of the developers -- but features also mean complexity. The functionality can be overwhelming, even though we try to do everything we can to keep things easy to use. Complexity also means that there are lots of places where you may have to customize the script for your own use.

Before you decide to use the Wikipedia script, please do take a look at other Wiki Engines and see if one of them might meet your requirements better. For small wikis, UseMod is always a safe bet -- it supports [[free links]] (as opposed to CamelCase) and does not need (or support) a database. This is, of course, also a bottleneck in terms of functionality.

Look and feel

  • Side bar: A bar on the left or right of the screen with short-cuts
  • Skins: Different ways to present the site.
  • "Stub" threshold: Users can see links to articles below a certain size rendered in a different color
  • Printable versions of articles can be generated
  • Auto-number headings in an article (optional)
  • Generate a table of contents for long articles (optional)
  • Automagically turn ISBN numbers into links to an editable list of booksellers

Multimedia and extensions

  • File upload feature allows to upload graphics or sound files, see special:Upload. Uploaded files are listed on Recent Changes and they are also logged on log:Uploads.
  • Mathematical formulas using LaTeX syntax: see texvc
  • Automatic resizing of images using ImageMagick or libgd, simple syntax for image captions and image alignment

Keeping track of edits

  • Watchlist Every page has a link "Watch this article for me". Use special:Watchlist to track changes on the articles you declared an interest in; watched articles are also bolded in the Recent changes list .
  • User contributions in the sidebar of each user page list all articles the user has worked on, according to the database.
  • Extended recent changes with dynamic collapsing of edits to the same article and quick links to diff the edit, show the article history, show the user page, show the user talk page, or block the user (for sysops)
  • "Related changes": View a filtered version of Recent Changes to the pages linked from the current page.
  • Side-by-side diffs - the diffs are shown side-by-side, and changed portions of lines are highlighted, making it much easier to see what's what. Additionally, a diff is shown during an edit conflict so you can see exactly what you need to reintegrate.

Structure and syntax

  • Editing syntax based on UseMod, with support for mixing wiki-syntax and HTML. Only free links are supported for linking, not CamelCase (deliberate design decision).
  • Namespaces allow content separation (to address the namespace, use the [[Namespace:Page title]] syntax). Discussion pages are separate from article pages, "meta" project pages can be separated from content pages, image pages are used for image descriptions.
  • Word-extension linking: If you include a link of the form [[war]]s, or [[war]]time, the system will automatically display it as if you had typed [[war|wars]] or [[war|wartime]], respectively, saving some typing.
  • Parenthetical hiding If you include a link of the form [[kernel (mathematics)|]], the parenthetical portion will be hidden in the link: kernel. This is useful for disambiguating different meanings of a word without making linking too difficult or cluttering up the text of articles. This also works with cropping out namespaces when you want a cleaner-looking link: [[Wikipedia:copyrights|]] becomes copyrights
  • Link to individual sections of an article, e.g. MediaWiki roadmap#Version 1.4 (these links may become invalid if sections are retitled or removed)
  • Support for subpages (link to "Foo/Bar" from "Foo" by just typing "/Bar", "Foo/Bar" contains a backlink to "Foo"), these can be enabled or disabled by namespace (e.g., Wikipedia currently supports subpages on discussion pages, to make archiving easy, and on user pages, to give users space for personal pages)


  • Section editing. Users can enable an option that allows them to edit individual sections of an article (separated by headlines) instead of loading the entire article.
  • Edit toolbar (JavaScript-based) for formatting text as bold, italic etc. (fully works in Mozilla and IE, other browsers use it to show the syntax, but cannot format text inside the textarea because their JavaScript implementation does not support it). If JavaScript is disabled, the toolbar is not shown.
  • Edit summary which is shown in "Recent changes"
  • Double click editing: Users can enable an option that allows them to edit articles by double clicking them.
  • Edit preview (can be shown before or after edit box)
  • Handle edit conflicts (page being saved by a user while still being edited by another one, then saved again)
  • Mark edits as minor; users can decide to hide such edits from the Recent Changes list. Only signed in users can mark edits as minor.


  • Talk pages: Each user (including every anonymous user) and every article has an associated page where messages can be left. These are separate namespaces (see above), "Talk:" and "User talk:".
  • Message notification (user gets a "You have new messages" notice if someone else has edited his user discussion page); this also works for anonymous users
  • Automatic signature: Just type three tildes (~) when you edit, and on saving the page, it will be replaced with your user name and a link to your user page. If you use four tildes, the current date will be added as well. Mainly intended for Talk pages.
  • Support for emailing users through the wiki (email address not shown to the user)

Multilanguage support


  • Database-driven (MySQL, no other databases currently supported)
  • Smart caching: rendered pages are (optionally) saved as static HTML files and served as such unless modified; support for Squid proxies
  • Cookie-based account and login system, but anonymous users can also edit pages.
  • All revisions of an article are stored (optionally compressed).


  • Different rights for anonymous users, signed in users, sysops, bureaucrats and developers.
  • Signed in users can:
    • move and rename pages
    • upload files
  • Sysops can:
    • protect pages from editing
    • delete and undelete pages
    • edit protected pages
    • ban users by IP address
    • ban users by username, if this option is enabled
    • run SQL queries on the database, if this option is enabled
  • "Bureaucrats" can:
    • create sysops
  • Developers (admins) can:
    • lock the database
    • run various maintenance tasks
  • Other permission schemes (e.g. only signed in users can edit pages) can be configured

Search and Queries

  • Full text search
  • "Go" button allows direct viewing of a specified article's contents (tries near match if no exact hit)
  • "What links here": View pages that link to the current page (backlinks)
  • Special report pages:
    • New pages: List of newly created articles
    • Ancient pages: Articles sorted by timestamp, ascending
    • List of images
    • List of users
    • Site statistics
    • Orphaned articles (articles that have no links pointing to them)
    • Orphaned images
    • Popular articles (articles by number of visits, works only if counters are enabled)
    • Most wanted articles (non-existent articles sorted by number of links pointing to them)
    • Short articles
    • Long articles
    • List of all pages by title


  • Random article display function
  • Users can configure their timezone, which is used on all report timestamps
  • The attributes of many report pages (number of results etc.) can be set in the user preferences

Structure: Orientation on the Web Site(s)

This section gives you a short introduction about the MediaWiki, Wikipedia, Wikimedia, and associated websites - what they are, what you can find there, and why you might to check them out.

  • Wikipedia - English, [5] etc. - Great to see what can be done with the MediaWiki software, to learn about the conventions used in Wiki editing, and to see lots of helpful markup samples.
  • September 11 Memorial Wiki, [6] - Another example of the MediaWiki software in use.
  • Wikipedia database download, [7].
  • ...

Project Communication - Getting in contact and keeping in touch

Most of the communication within the MediaWiki project is managed through three channels:

  • Talk pages - for associated discussions about a specifig page or topic;
  • Mailing lists - for general, asynchronous discussions, questions and answers, and announcements,
  • IRC - for real time communication, especially for active developers and contributors.

Revision History (Changelog)

  • Wikipedia software Phase I - UseMod software [8]. Until early 2002 it was used to run all versions of Wikipedia. Currently it is still used for a number of language versions, including Finnish, Italian, Portuguese, Norwegian and Lower Saxon. They are planned to be converted to MediaWiki, see m:Wikipedia software upgrade status [9].
  • Wikipedia software Phase II - first implementation in LAMP/AMP by Magnus Manske [10]. It was switched from UseModWiki software ("Phase I") to new software, written especially for Wikipedia using the PHP programming language, on January 25, 2002 ("Phase II").

Change from Phase II to Phase III [11]

On Saturday, July 20, 2002, Wikipedia moved to a new high-capacity server and new, hopefully more efficient, software base. The new software was designed to look and behave as similarly to the previous phase II software as possible, but a few new features and changes should be noted:

  • A whole new system for uploading and using images to illustrate your articles.
  • Search function now indexes 2- and 3-letter words.
  • New side-by-side diffs of article changes.
  • "Floating" sidebar option for some modern web browsers.
  • A few minor changes to wikitext syntax (see wikipedia:How does one edit a page)
  • Since anonymous users, while not having user pages, still have user contributions pages, their IP numbers in lists like Recentchanges and article histories link to their contributions.
  • Support for maths formulae using Wikipedia:TeX markup
  • Better support for auto-posting "bots"
  • A new static page caching system has greatly reduced system load
  • The database server and the page server now run on separate machines

The Phase III software is robust, and under active development. Many more features have been, and are expected to be, added to the Phase III software, together with bug fixes and improvements in stability. You are encouraged to submit bug reports.

  • Wikipedia software Phase III = MediaWiki - based on LAMP/AMP. The name "MediaWiki" was coined by Wikipedia contributor Daniel Mayer as a play on Wikimedia.[12] Before that, the software was known as "Wikipedia software Phase III"; it was was replaced by what is now called MediaWiki in June 2002.
  • "Wikipedia software Phase IV" [13], [14].

The next version of the software is Phase IV.

Where to go from here