Site icon LinuxTuto

How to Install MediaWiki on Debian 12

MediaWiki on Debian 12

MediaWiki is a free and open-source wiki software platform used to power various wikis, including the most well-known one, Wikipedia.

MediaWiki is written in PHP and uses a backend database (usually MySQL or MariaDB) to store the content. It provides a powerful platform for creating collaborative websites, knowledge bases, documentation systems, and more.

In this tutorial, we will show you how to install MediaWiki on Debian 12 OS.

Step 1: Update Operating System

Update your Debian 12 operating system to the latest version with the following command:

# apt update && apt upgrade

Also, install necessary packages.

# apt install curl nano wget unzip zip

Step 2: Install Apache webserver

You can install it via apt package manager by executing the following command.

# apt install apache2

Verify the status of the Apache service using systemctl status command:

# systemctl status apache2


● apache2.service - The Apache HTTP Server
     Loaded: loaded (/lib/systemd/system/apache2.service; enabled; preset: enabled)
     Active: active (running)
    Process: 24002 ExecStart=/usr/sbin/apachectl start (code=exited, status=0/SUCCESS)
   Main PID: 24006 (apache2)
      Tasks: 6 (limit: 2273)
     Memory: 23.4M
        CPU: 13.701s
     CGroup: /system.slice/apache2.service
             ├─24006 /usr/sbin/apache2 -k start
             ├─24206 /usr/sbin/apache2 -k start
             ├─24207 /usr/sbin/apache2 -k start
             ├─24208 /usr/sbin/apache2 -k start

Step 3: Install PHP and required extensions

To install PHP and the necessary extensions, run the following command:

# apt install php libapache2-mod-php php-cli php-intl php-json php-common php-mbstring php-apcu php-mysql php-zip php-gd php-mbstring php-curl php-xml imagemagick

Once the installation is complete verify if PHP is installed:

php -v
PHP 8.2.7 (cli) (built: Jun  9 2023 19:37:27) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.2.7, Copyright (c) Zend Technologies
    with Zend OPcache v8.2.7, Copyright (c), by Zend Technologies

Step 4: Install MariaDB and create a database

To install MariaDB run the following command:

# apt install mariadb-server mariadb-client

Verify the status of the MariaDB service using systemctl status command:

# systemctl status mariadb


● mariadb.service - MariaDB 10.11.4 database server
     Loaded: loaded (/lib/systemd/system/mariadb.service; enabled; preset: enabled)
     Active: active (running)
       Docs: man:mariadbd(8)
   Main PID: 24964 (mariadbd)
     Status: "Taking your SQL requests now..."
      Tasks: 12 (limit: 2273)
     Memory: 87.9M
        CPU: 4.312s
     CGroup: /system.slice/mariadb.service
             └─24964 /usr/sbin/mariadbd

Now run the command below to log in to the MariaDB shell.

# mysql -u root

Once you are logged in to your database server you need to create a database for the MediaWiki installation:

MariaDB [(none)]> CREATE DATABASE mediawikidb;
MariaDB [(none)]> CREATE USER 'mediawikiuser'@'localhost' IDENTIFIED BY 'Str0ngPassw0rd';
MariaDB [(none)]> GRANT ALL PRIVILEGES ON mediawikidb. * TO 'mediawikiuser'@'localhost';
MariaDB [(none)]> EXIT;

Step 5: Install Composer dependency manager

To install Composer, run the following commands:

# curl -sS | php
# mv composer.phar /usr/local/bin/composer

Verify that Composer has been installed successfully by running the following command:

# composer --version
Composer version 2.6.6 2023-12-08 18:32:26

Step 6: Download MediaWiki

The latest version of MediaWiki is available to from the official website of MediaWiki. You can download it with the following command:

# wget

Then extract file into the folder /var/www/ with the following command:

# unzip -d /var/www/

Rename it to make it simpler:

# mv /var/www/mediawiki-1.40.1/ /var/www/mediawiki

Now, install all PHP dependencies using the following command:

# cd /var/www/mediawiki && composer install --no-dev

Then enable permission for the Apache webserver user to access the files:

# chown -R www-data:www-data /var/www/mediawiki/

Step 7: Configure Apache for MediaWiki

To create a new VirtualHost file run the following commands:

# nano /etc/apache2/sites-available/mediawiki.conf

Paste the content as shown below:

 <VirtualHost *:80>
    DocumentRoot /var/www/mediawiki/

    <Directory /var/www/mediawiki/> 
        Options FollowSymLinks
        AllowOverride All
        Order allow,deny
        allow from all

    ErrorLog ${APACHE_LOG_DIR}/your-domain.com_error.log
    CustomLog ${APACHE_LOG_DIR}/your-domain.com_access.log combined


Remember to replace with the domain name of your server.

Save and exit the configuration file.

To enable this site run the command:

# /usr/sbin/a2ensite mediawiki.conf

To implement the changes, restart Apache webserver:

# systemctl restart apache2

Step 8: Access MediaWiki Web Interface

To complete the setup go to your browser and visit

Start the setup clicking on the link to “set up the wiki”.

Choose language and click on the Continue button.

If everything is OK, you will get the message “The environment has been checked. You can install MediaWiki”. Click “Continue” to advance to the next step.

Add the database information such as the Database name, username, and password that you have created in the previous step.

Click on the Continue button.

Provide your website name, admin username, password and click on the Continue button.

Click on the “Continue” button.

Click on the “Continue” button. and the system will generate a “LocalSettings.php” that contains all the configuration you have done.

Copy the file to the /var/www//mediawiki directory. Then, set the correct ownership using the following command:

# chown www-data:www-data /var/www/mediawiki/LocalSettings.php

Once you have completed this last step you will be redirected to the MediaWiki dashboard:

Comments and Conclusion

Congratulations! You have successfully installed Mediawiki with Apache on your Debian 12 OS.

For additional help or useful information, we recommend you to check the official MediaWiki documentation.

If you have any questions please leave a comment below.

Exit mobile version