Installing Mediawiki on CentOS 8
MediaWiki is the software behind Wikipedia and many of the wikis deployed by communities and companies around the world. It provides a versatile, open, and free tool for making knowledge easily accessible and navigable. This guide explains how to install MediaWiki on CentOS 8.
Follow our Setting Up and Securing a Compute Instance guide to update your system. You may also wish to set the timezone, configure your hostname, create a limited user account, and harden SSH access.
sudo. If you’re not familiar with the
sudo command, see the Users and Groups guide.
Install Apache 2.4:
sudo yum install httpd
Enable and start the Apache service:
sudo systemctl enable httpd.service sudo systemctl start httpd.service
See the guide for How to Install Apache Web Server on CentOS 8 for more details and configuration options for the Apache web server.
MediaWiki requires PHP 7.3.19–24, 7.4.3, or later. However, the CentOS package manager (Yum) only includes PHP 7.2 in its default repository. Thus, you need to use the Remi repository to acquire one of the later PHP releases.
Add Extra Packages for Enterprise Linux (EPEL) and the Remi repository:
sudo dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm sudo dnf install https://rpms.remirepo.net/enterprise/remi-release-8.rpm
Install PHP from the Remi repository:
sudo dnf module reset php sudo dnf module install php:remi-8.0
For this example, the latest version of PHP (8.0) was used. You can, alternatively, choose either 7.3 or 7.4; doing so installs the latest release for either version.
php-mysqlndmodule to support the use of the MariaDB (described below):
sudo dnf install php-mysqlnd
Restart the Apache service:
sudo systemctl restart httpd
MediaWiki supports a variety of database options, including MariaDB, MySQL, and PostgreSQL. MariaDB is preferred in the MediaWiki documentation and has been selected for this guide.
sudo yum install mariadb-server
Enable and start the MariaDB service:
sudo systemctl enable mariadb sudo systemctl start mariadb
Secure the MariaDB installation:
This script gives you the choice to change the MariaDB root password, remove anonymous user accounts, disable root logins outside of localhost, and remove test databases. It is recommended that you answer yes to these options. You can read more about the script in the MariaDB Knowledge Base.
See the guide for How to Install MariaDB on CentOS 8 for more details and configuration options for the MariaDB installation.
Create a database and a database user for MediaWiki by opening MariaDB as the root user (
sudo mysql -u root -p) and entering the commands given in the following example. Replace
my_wikiwith the desired database name,
wikiuserwith the desired database username, and
passwordwith a password for that user, which should not match the database’s root password:
CREATE DATABASE my_wiki; CREATE USER 'wikiuser'@'localhost' IDENTIFIED BY 'password'; GRANT ALL PRIVILEGES ON my_wiki.* TO 'wikiuser'@'localhost' WITH GRANT OPTION;
Then exit MariaDB:
tar.gzcontaining the latest release of the MediaWiki software from the official MediaWiki download page.
Alternatively, you can download MediaWiki from the command line:
sudo yum install wget wget https://releases.wikimedia.org/mediawiki/1.35/mediawiki-1.35.0.tar.gz
tar.gzfile to the Apache web server’s document directory. You can find the document directory as the
DocumentRootvariable in the Apache configuration file, located at
/etc/httpd/conf/httpd.conf; the typical document directory is
/var/www/html, which is assumed in the following example:
sudo mv mediawiki-1.35.0.tar.gz /var/www/html
Navigate to the document directory, and extract the archived files:
cd /var/www/html/ sudo yum install tar sudo tar xvzf /var/www/html/mediawiki-1.35.0.tar.gz
It is recommended that you rename the resulting folder, as the folder name becomes part of the URL used for navigating to your MediaWiki. For the rest of this guide, the name
wis used for this folder:
sudo mv /var/www/html/mediawiki-1.35.0 /var/www/html/wExtracting the archive as root makes the root user the files’ owner. If this is not your intention, you need to use the
chowncommand to change the files’ ownership after extraction. For more information, see our guide on Linux Users and Groups.
In a web browser, navigate to
index.phpin the base MediaWiki folder; you can use either the web server domain (replacing
domainin the example below) or your Linode’s public IP address (replacing
192.0.2.1below), as in:
http://domain/w/index.php http://192.0.2.1/w/index.phpIf you choose to set up the MediaWiki installation using your Linode’s IP but later want to use a domain, you can do so by changing the IP address to the appropriate domain in the
LocalSettings.phpfile described below.
Select the setup link, and proceed through the setup steps. Choose the MariaDB option when prompted for a database server, and enter the database name, username, and user password you created for MediaWiki.
LocalSettings.phpfile when prompted at the end of the setup process, then move it or copy its contents to
/var/www/html/w/LocalSettings.phpon your Linode.
Adjust the file’s permissions:
sudo chmod 664 /var/www/html/w/LocalSettings.phpDepending on how you created the
LocalSettings.phpfile on your Linode, you may need to adjust its ownership using
index.phpagain in a web browser to confirm that MediaWiki has been installed successfully.
You may wish to consult the following resources for additional information on this topic. While these are provided in the hope that they will be useful, please note that we cannot vouch for the accuracy or timeliness of externally hosted materials.
This page was originally published on