Manual:Installation requirements

In addition to the software itself, a standard MediaWiki installation has the following requirements:


 * A web server is required to serve the requested pages to the client browser.


 * PHP is required to run the software.


 * A database server is required to store the pages and site data.

In addition, there are various optional dependencies which are required if you want to use certain advanced features (see below).

If your website is hosted (i.e. you don't have direct control over it) then contact your server administrator or hosting company to ensure these software packages are installed and available.

= == Simple one-download installation == =

If you are using Linux, it's best to install apache, php and MariaDB using your package manager. On Debian and Ubuntu, do the following:

On other operating systems, use XAMPP from https://www.apachefriends.org to install and configure all of the important packages – Apache web server, PHP, and MariaDB – with only one download. It is available for Linux, Windows, Mac and Solaris. As of, the latest version of XAMPP includes PHP 8.0 (MediaWiki requires at least  ).

Alternatively, if you have an Apple computer, you can use MAMP, which is the equivalent to XAMPP. MAMP currently includes the ability to run the Apache web server and a MySQL database. It is available for both Windows and Mac, but is generally used on Mac instead of Windows. It is currently running the latest versions of php and MySQL.

= == Web server == =

In order to serve wiki pages to browsers, MediaWiki requires some web server software. Often you will not have a choice of which software to use – it will be the one provided by your hosting provider.

Most installations use the Apache web server, available at [ https://httpd.apache.org/download.cgi the official download page]. However, MediaWiki has also been tested under IIS 7.0, Cherokee , Hiawatha , LiteSpeed , nginx ([ https://www.nginx.com/resources/wiki/start/topics/recipes/mediawiki/ configuration example]), lighttpd , and Caddy.

= == PHP == =

PHP is the programming language in which MediaWiki is written, and is required in order to run the software.

Note that although MediaWiki ships with an installation script which provides web-based configuration of the most important elements, some knowledge of PHP is required for more detailed customizations.


 * For the latest stable version of MediaWiki, at least [ https://www.php.net/downloads PHP ] is required.  See the page on  for further information.


 * The following extensions are required:
 * Perl Compatible Regular Expressions (PCRE)
 * sessions
 * spl
 * openssl
 * json (MediaWiki 1.22+)
 * mbstring (required since 1.27, recommended for earlier versions)
 * fileinfo (required since 1.30)
 * intl (required since 1.36)
 * calendar (required since 1.33)
 * xml


 * Note that all of these are enabled in PHP by default.


 * MediaWiki's installer will warn if you don't have the [ https://php.net/intl.setup PHP intl extension] "to handle Unicode normalization".
 * In most Debian/Ubuntu-based distros this is the php-intl package.


 * On most Debian/Ubuntu-based distros the php-mysql package is required if you want MediaWiki to use MySQL.


 * Some features of MediaWiki may require PHP functions that execute external processes, like image thumbnailing, that some cheap hosts usually disable. Please take this into consideration if you plan to install MediaWiki on a shared host.


 * MediaWiki extensions may require additional PHP features, e.g. VisualEditor requires libcurl support (php-curl on Debian/Ubuntu-based distros).

If you need to compile PHP from source, then see for compilation options that affect MediaWiki.

= == Database server == =

MediaWiki stores all the text and data (content pages, user details, system messages, etc.) in a database, which it is capable of sharing with other web-based applications (phpBB, etc.). You will need one of the following database servers to run the latest version of MediaWiki:


 * +* or MariaDB 5.1+
 * + (supported since MediaWiki 1.8) See Manual:Installing MediaWiki#PostgreSQL for more detail.
 * 3

Supported in the past, currently unsupported:


 * (unsupported on the latest MediaWiki versions due to open blocking bugs)


 * Microsoft SQL Server 2008 R2 or later is supported for LTS releases and is not guaranteed to work for non-LTS releases (requires Microsoft Windows as Operating System because it uses the SQLSRV driver).

Make sure the Full-Text module is installed.

Some users find it helpful to install an additional software package such as phpMyAdmin (MySQL/MariaDB) or phpPgAdmin (Postgres) to help administer the database server.

= == Hardware requirements == =

The recommended minimum requirements are 256MB of RAM for a single-computer website and 85MB of storage, although this will not suffice for a busy public site or a site with uploading enabled. Some users have reported running MediaWiki on computers with as little as 48MB of RAM.

The install size can be reduced to around 50MB for a developer install and to around 26MB for a non-developer, end-user install. See.

= == Optional dependencies == =

Other software

 * ImageMagick or GD is required for.


 * TeX is required for inline display of mathematical formulae. In most Debian/Ubuntu-based distros, this is in the   package.


 * A functional configuration of message transfer agent (MTA) (like Sendmail, Postfix or other) is required in order for the system to be able to send e-mails.


 * Shell access is required to run ; upgrading MediaWiki may be more difficult without it.


 *  can be provided to automatically resolve conflicts.

For further information about the above items, see.

VisualEditor
In MediaWiki version 1.34 and earlier, the extension (and also the StructuredDiscussions extension, formerly known as "Flow") required the  web service, which was implemented using Node.js. Node.js is not provided by most shared-hosting companies (HostGator, Bluehost, Dreamhost, etc.). For performance and security reasons, it is better to use a dedicated hosting solution such as a Virtual private server ("VPS").

Scribunto
If you want to invoke Lua modules (see those on this wiki) from wiki pages and templates, your wiki will also require Scribunto.