Manual:Running MediaWiki on Debian or Ubuntu

This page documents how to install MediaWiki using the release tarballs. If you want to use system packages, and are not installing on Raspbian see Debian packages .

This page explains how to install MediaWiki on a Debian or Ubuntu GNU/Linux server. The instructions below refer to Debian, but unless otherwise noted also apply to Ubuntu and Raspbian.

Introduction

This installation procedure requires knowledge of issuing commands from a terminal (e.g. installing applications) and using a text editor (e.g. graphical: gedit, kate; text: nano, emacs, vi).

When text editing is required it can be carried out on the graphical desktop by pressing Alt+F2 and typing

gksudo gedit filename

Alternatively, editing can be done from a terminal

sudo nano filename

Of course, kate could be used instead of gedit or vi/emacs instead of nano.

Step-by-step

Ensure Debian is up-to-date

Double check that Debian is up-to-date by running:

sudo apt update
sudo apt upgrade

or in one line

sudo apt update && sudo apt upgrade


Install LAMP stack

Ubuntu Server Edition makes LAMP (Apache, MySQL and PHP) available for installation during the install process. During the installation step, make sure you choose to install a LAMP server. Alternately, you can install all of these packages from a standard installation using these commands:

sudo apt-get install apache2 mariadb-server php php-mysql libapache2-mod-php php-xml php-mbstring
Alternately you can use mysql (Raspberry Pi OS no longer supports mysql).
sudo apt-get install apache2 mysql-server php php-mysql libapache2-mod-php php-xml php-mbstring

Optional useful packages

These packages are not necessary but may be useful, depending on the installation:

Name Package Description
Alternative PHP Cache php-apcu Modern MediaWiki versions will automatically take advantage of this being installed for improved performance.
PHP Unicode normalization php-intl MediaWiki will fallback to a slower PHP implementation if not available.
ImageMagick imagemagick Image thumbnailing.
Inkscape inkscape Alternative means of SVG thumbnailing, than ImageMagick. Sometimes it will render SVGs better if originally created in Inkscape.
PHP GD library php-gd Alternative to ImageMagick for image thumbnailing.
PHP command-line php-cli Ability to run PHP commands from the command line, which is useful for debugging and running maintenance scripts.
PHP cURL php-curl Required by some extensions such as Extension:Math . See Manual:cURL
git source control version git If not present config script will tell you that it is not installed
Basic Calculator php-bcmath In order to make the visualeditor work on 32bit machines, like a raspi

You can install any of the above with sudo apt-get install packagename.

If you want to install all of them:

sudo apt-get install php-apcu php-intl imagemagick inkscape php-gd php-cli php-curl php-bcmath git

If you install php-apcu you will have to reload your apache configuration in order to avoid a warning message when running configuration script:

sudo systemctl reload apache2


Get MediaWiki

This can be done from a browser or by command line

cd /tmp/ wget https://releases.wikimedia.org/mediawiki/1.43/mediawiki-1.43.0.tar.gz

  • extract in your Web directory
tar -xvzf /tmp/mediawiki-*.tar.gz
sudo mkdir /var/lib/mediawiki
sudo mv mediawiki-*/* /var/lib/mediawiki

Configuring MySQL

But before proceeding with the initial MediaWiki installation, there are certain steps you need to do first!

On Raspbian, if this is a new installation of mariadb you will also need to run: sudo mysqld_safe --skip-grant-tables --skip-networking &

You will have to:

  • create a NEW mysql user (new_mysql_user):
# sudo mysql -u root -p 
Enter password: Enter password of mysql root user (if you have not configured password it will be blank, so just press enter)
mysql> CREATE USER 'new_mysql_user'@'localhost' IDENTIFIED BY 'THISpasswordSHOULDbeCHANGED';
mysql> quit;
  • create a NEW mysql database my_wiki:
# sudo mysql -u root -p
mysql> CREATE DATABASE my_wiki;
mysql> use my_wiki;
Database changed
  • GRANT the NEW mysql user access to the NEW created mysql database my_wiki:
mysql> GRANT ALL ON my_wiki.* TO 'new_mysql_user'@'localhost';
Query OK, 0 rows affected (0.01 sec)
mysql> commit;
mysql> quit;

Optional: Configure PHP

These steps are optional and can be done post-installation. MediaWiki will still work without these changes.

Edit your PHP configuration file, php.ini . It is located at /etc/php/7.*/apache2/php.ini, depending on exact version of PHP.

Maximum upload file size

Assuming that various files are going to be uploaded to the Wiki as content, the limit on the maximum size of an upload has to be adjusted. About one-half way down is the File Uploads section. Change:

upload_max_filesize = 2M

to at least 20M. You may have to adjust this again in the future if you want bigger uploads.

Memory limit

Some PHP scripts require a lot of memory to run. To increase the maximum amount of memory a script can use, page down to about 21%, and change the following entry, if found, from

memory_limit = 8M

to

memory_limit = 128M

If it is already set to 128M or more, leave it as is.

Configure MediaWiki

Navigate your browser to http://localhost/mediawiki (for certain installations it may be http://localhost/mediawiki/config or http://wiki.hostname.com/config instead) and follow the procedure given.

If this gives a 404 error then working a symbolic link should solve the issue.

sudo ln -s /var/lib/mediawiki /var/www/html/mediawiki

For Debian based systems running apache2, once you create a symbolic link in the /var/www/html directory you may still run into a 404 error. If this happens, try loading: localhost/html/mediawiki/.

  • Pay close attention for "Checking environment..." in MediaWiki installation script.

This can solve a lot of problems by specifically identifying the source of any errors.

It may complain that php extensions like mbstring and xml are missing even though you have installed them. Please manually activate them by using:

sudo phpenmod mbstring
sudo phpenmod xml
sudo systemctl restart apache2.service

Fill out all the fields in the configuration form and press the continue button. Use the username and password which you provided as above in the mysql configuration section:

mysql> CREATE USER 'new_mysql_user'@'localhost' IDENTIFIED BY 'THISpasswordSHOULDbeCHANGED';

Under Database Config, you may change the database name and DB username to new values, but you must turn on "Use superuser account", name:

debian-sys-maint

giving the mysql root password you configured earlier.

The configuration process will prompt you to download a LocalSettings.php that must be saved to the parent directory of the new wiki. The configuration page will give the exact directory/filename that must be moved:

sudo mv ~/Downloads/LocalSettings.php /var/lib/mediawiki/

And navigate your browser to http://localhost/mediawiki (or http://server_ip_address/mediawiki or http://server_ip_address/mediawiki/index.php) to see your new wiki.

Done! You now have a working Wiki


Additional wiki configuration

General information

MediaWiki is configured by the LocalSettings.php file, usually found in /var/lib/mediawiki. Manual:LocalSettings.php has detailed information that may be useful. The following are changes that appear to be universally helpful

To edit LocalSettings.php use

gksudo gedit /var/lib/mediawiki/LocalSettings.php

or from a terminal

sudo nano /var/lib/mediawiki/LocalSettings.php

File uploads

See Manual:Configuring file uploads .

See Manual:$wgLogos (1.35+) or Manual:$wgLogo .

MediaWiki extensions

The current tarball for MediaWiki comes with a package of 15 or so of the most popular extensions, but there are literally hundreds more.

Instructions on how to enable extensions can be found at Manual:Extensions .

Pretty URLs

To use /wiki/* instead of /wiki/index.php/* on Debian, follow the recommended short URL guide using '/mediawiki' as the script path instead of '/w' and placing the rewrites in /etc/apache2/conf-enabled/mediawiki.conf.

See also