|This page is outdated, but if it were updated, it may still be useful. Please help by correcting, augmenting and revising the text into an up-to-date form.|
This is a general, non-technical introduction to the MediaWiki software, and its use and functionality on Wikimedia.
- 1 Wikimedia, Mediawiki, Wikipedia, and Meta-Wiki
- 2 What is MediaWiki?
- 3 What else can MediaWiki do?
- 4 Architecture
- 5 System Requirements
- 6 Licensing
- 7 Feature list
- 8 Structure: Orientation on the Web Site(s)
- 9 Project Communication - Getting in contact and keeping in touch
- 10 Revision History (Changelog)
- 11 Where to go from here
Wikimedia, Mediawiki, Wikipedia, and Meta-Wiki
- Wikimedia Foundation
- Wikimedia is the overarching nonprofit foundation that coordinates all users' contributions to the constantly-growing GNU FDL text database that holds Wikipedia , Wiktionary  and other projects managed by the foundation.
- MediaWiki ] is the software program that runs Wikipedia  and other Wikimedia projects, as well as other websites. MediaWiki is wiki software, released under a GPL.
- Wikipedia  is the encyclopedia project that initiated the development of the MediaWiki software. For a project's description and its history see History of Wikipedia and other articles containing Wikipedia basic information.
- Wikimedia Meta-Wiki
- Meta-Wiki , or just Meta, is the primary community site for discussion and coordination of most Wikimedia projects, including Wikipedia , Wiktionary , Wikibooks , among others, as well as the Wikimedia movement in general. In addition to coordination, Meta-Wiki discussions concern areas such as research, documentation, and planning for future Wikimedia projects and activities. For more information on Meta-Wiki see their About page.
What is MediaWiki?
MediaWiki software (released under a GNU GPL) is the software program that runs Wikipedia  and other Wikimedia projects , as well as other websites. It is developed by contributors to these projects.
MediaWiki is a wiki or wikiwiki, meaning that anyone can relatively easily edit any article and have those changes appear live on the internet as soon as they are saved. The software contains extensive documentation, as well as tutorials. If you want to learn more about editing and other aspects of the user's point of view, you might want to read Help:Reader or Help:Editor.
The name "MediaWiki" was coined by Wikipedia contributor Daniel Mayer as a play on Wikimedia . Before that, the software was known as "Wikipedia software Phase III".
What else can MediaWiki do?
While MediaWiki is not designed to do these things, it can be used as...
...Content Management System (CMS) software
...Forum or Bulletin Board System (BBS) software
...Groupware, Messaging, or Computer Supported Cooperative Work (CSCW) software
...a Workflow Management System (WfMS).
See m: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:
- the Apache web server for delivering web pages,
- the relational database management system MySQL as a database backend for storing the content, and
- the scripting language PHP for the application logic that glues together these components.
The MediaWiki software typically runs in a LAMP environment on the i386 and SPARC platform. (This is the primary/reference platform.) It is also possible to run the MediaWiki software efficiently under Solaris, Microsoft Windows, Apple Mac OS X and IBM i5/OS.
Everything you need to run a MediaWiki server is available as Open Source Software.
- Operating system: Several platforms are possible, including GNU/Linux, BSD, Sun, Microsoft Windows, Apple MacOS X and IBM System i. 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 5 - Open Source.
- MediaWiki software - Open Source.
- Some web browser - lots of options are available as Open Source.
- x86 hardware architecture (Intel, AMD etc.) recommended, some other architectures are possible (e.g. PowerPC w/ Mac OS X/ SPARC).
- 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 need at least 3 Gigabytes (?)
- Network Interface Card (NIC) - anything that is supported by your operating system can be used.
- The MediaWiki software can run locally on a computer without a network connection. You might use MediaWiki this way to serve as a powerful Personal Information Management (PIM) system.
- MediaWiki can run on a Local Area Network (LAN) computer. This is useful as an enterprise wide collaboration tool for universities or corporations.
- For public access, MediaWiki must run on a computer connected to the Internet. The computer may use a static IP address defined in a Domain Name Server (DNS) entry or a dynamic IP address registered with a Dynamic DNS service.
- 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, as it has been done on Wikipedia and Wiktionary, but you are free to choose another type of licensing.
See also: Copyrights.
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
- Navigation 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)
- Automatically turn ISBNs into links to an editable list of booksellers
Multimedia and extensions
- File upload feature allows the upload of graphics or sound files, see Special:Upload. Uploaded files are listed on Recent Changes and they are also logged on Special:Log/upload.
- 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|]] at English Wikipedia becomes copyrights
- Link to individual sections of an article, e.g. m: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 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).
- Database-driven (MySQL, and PostgreSQL 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 want to check them out.
- Wikipedia - English,  etc. - Great place 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,  - Another example of the MediaWiki software in use.
- Wikipedia database download, 
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 specific 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 . 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 Wikipedia software upgrade status.
- Wikipedia software Phase II - first implementation in LAMP/AMP by Magnus Manske en:User:Magnus Manske. 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").
- Wikipedia software Phase III en:Wikipedia:PHP script
- 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 Recent Changes 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. Before that, the software was known as "Wikipedia software Phase III"; it was replaced by what is now called MediaWiki in June 2002.
Where to go from here
- If you want to setup a MediaWiki on your own, go to the Administrator's Guide.
- If you want see MediaWiki live, go to Wikipedia or one of its sister sites.
- If you want to learn how to use MediaWiki, go to the Help:Reader or Help:Editor.
- If you want to dive right into the code, read mw:How to become a MediaWiki hacker.