How to Install MediaWiki on CentOS 7
MediaWiki is a free and open-source wiki application. It runs on many websites, including Wikipedia, Wiktionary and Wikimedia Commons. It is written in the PHP programming language and uses a backend database.
Pre-requisites
MediaWiki depends on a few prerequisites such as Apache (httpd), PHP, MariaDB/mySQL which we'll need to install first,
yum install httpd php php-mysql php-gd mariadb-server php-xml php-intl mysql
output:
[root@vps ~]# yum install httpd php php-mysql php-gd mariadb-server php-xml php-intl mysql
Loaded plugins: fastestmirror, langpacks
base | 3.6 kB 00:00
extras | 3.4 kB 00:00
updates | 3.4 kB 00:00
(1/4): base/7/x86_64/group_gz | 166 kB 00:00
(2/4): extras/7/x86_64/primary_db | 156 kB 00:00
(3/4): updates/7/x86_64/primary_db | 1.3 MB 00:00
Starting the Web Server
Let's start the Apache (httpd) web server and enable it to start automatically on system boot,
systemctl restart httpd.service ; systemctl enable httpd.service
output:
[root@vps ~]# systemctl restart httpd.service ; systemctl enable httpd.service
Created symlink from /etc/systemd/system/multi-user.target.wants/httpd.service to /usr/lib/systemd/system/httpd.service.
Starting Database Service
Next, Start the MariaDB database and enable it to start automatically on system boot as well,
systemctl restart mariadb.service ; systemctl enable mariadb.service
output:
[root@vps ~]# systemctl start mariadb.service ;systemctl enable mariadb.service
Created symlink from /etc/systemd/system/multi-user.target.wants/mariadb.service to /usr/lib/systemd/system/mariadb.service.
Create Database
Now lets create a database for MediaWiki, first login to MySQL/MariaDB,
mysql -u root -p
output:
[root@vps ~]# mysql -u root -p
Enter password:
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 5
Server version: 5.5.60-MariaDB MariaDB Server
Create the database, here we use the name "mediawiki_db" for our database,
CREATE DATABASE mediawiki_db;
output:
MariaDB [(none)]> CREATE DATABASE mediawiki_db;
Query OK, 1 row affected (0.00 sec)
Now, create a user named "wiki_user" with an unique passsword to access the database created above,
Change P@ssWord@123# to something more secure/unqiue when using it for your database password.
GRANT ALL PRIVILEGES ON mediawiki_db.* TO 'wiki_user'@'localhost' IDENTIFIED BY 'P@ssWord@123#' WITH GRANT OPTION;
output:
MariaDB [(none)]> GRANT ALL PRIVILEGES ON mediawiki_db.* TO 'wiki_user'@'localhost' IDENTIFIED BY 'P@ssWord@123#' WITH GRANT OPTION;
Query OK, 0 rows affected (0.00 sec)
Last but not least, run the command below to enable the privileges setup above,
FLUSH PRIVILEGES;
output:
MariaDB [(none)]> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)
Download MediaWiki release
At the time of this article, MediaWiki 1.24.2 was the latest release, you can download the latest release from MediaWiki when installing it,
Download (via wget) the release archive,
wget https://releases.wikimedia.org/mediawiki/1.24/mediawiki-1.24.2.tar.gz
output:
[root@vps ~]# wget https://releases.wikimedia.org/mediawiki/1.24/mediawiki-1.24.2.tar.gz
--2019-01-12 09:05:48-- https://releases.wikimedia.org/mediawiki/1.24/mediawiki-1.24.2.tar.gz
Resolving releases.wikimedia.org (releases.wikimedia.org)... 91.198.174.192, 2620:0:862:ed1a::1
Connecting to releases.wikimedia.org (releases.wikimedia.org)|91.198.174.192|:443... connected.
Untar the downloaded file using below tar command.
tar -zxpvf mediawiki-1.24.2.tar.gz
output:
[root@vps ~]# tar -zxpvf mediawiki-1.24.2.tar.gz
mediawiki-1.24.2/
mediawiki-1.24.2/opensearch_desc.php5
mediawiki-1.24.2/index.php5
mediawiki-1.24.2/extensions/
Move mediawiki-1.24.2 to its document root (/var/www/html/mediawiki/)
mv mediawiki-1.24.2 /var/www/html/mediawiki
output:
[root@vps ~]# mv mediawiki-1.24.2 /var/www/html/mediawiki
You have mail in /var/spool/mail/root
Setup permissions
chown -R apache:apache /var/www/html/mediawiki/
output:
[root@vps html]# chown -R apache:apache /var/www/html/mediawiki/
chmod 755 /var/www/html/mediawiki/
output:
[root@vps html]# chmod 755 /var/www/html/mediawiki/
output:
[root@vps html]# chmod 755 /var/www/html/mediawiki/
Enable ports 80/443
Allow HTTP/HTTPS ports under firewalld:
firewall-cmd --zone=public --add-port=80/tcp --permanent
firewall-cmd --zone=public --add-port=443/tcp --permanent
output:
[root@vps html]# firewall-cmd --zone=public --add-port=80/tcp --permanent
success
[root@vps html]# firewall-cmd --zone=public --add-port=443/tcp --permanent
success
Reload the firewall so the rules applied above are enabled,
firewall-cmd --reload
output:
[root@vps html]# firewall-cmd --reload
success
(Optionally) If your system runs iptables instead of firewalld, allow HTTP/HTTPS ports under iptables:
iptables -I INPUT -p tcp -m tcp --dport 80 -j ACCEPT
iptables -I INPUT -p tcp -m tcp --dport 443 -j ACCEPT
service iptables save
service iptables reload
SELinux Rules (Optional)
If Selinux is enabled on your server, then set the following Selinux rules on the MediaWiki folder,
restorecon -FR /var/www/html/mediawiki/
output:
[root@vps html]# restorecon -FR /var/www/html/mediawiki/
Restart the Apache (httpd) service,
systemctl restart httpd
Accessing mediawiki
Now open your web browser and head over to, your MediaWiki installation,
Replace "IP_Address_of_System" with the actual IP of your system/server,
http://IP_Address_of_System/mediawiki