Setup your own Wikipedia like website using MediaWiki

MediaWiki is a free, open source wiki software developed by Wikimedia Fountation. It is the same software used by Wikipedia. You can build a Wikipedia like website using MediaWiki in minutes or you can add this website along with your existing websites.

Wikipedia

Here i use CentOS 6.4 to setup my Wikipedia website. My server hostname and IP address are server.unixmen.com and 192.168.1.200/24. Changer these values as per your own scenario.

Prerequisites

Install Apache, MySQL, PHP and PHP modules:

[root@server ~]# yum install mysql mysql-server httpd php php-mysql php-gd php-imap php-ldap php-odbc php-pear php-xml php-xmlrpc php-mbstring php-pecl-apc php*intl wget unzip -y

Start/restart MySQL and Apache services now:

[root@server ~]# /etc/init.d/mysqld start
[root@server ~]# /etc/init.d/httpd start
[root@server ~]# chkconfig mysqld on
[root@server ~]# chkconfig httpd on

Create MySQL root user password:

[root@server ~]# /usr/bin/mysql_secure_installation 

NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MySQL
      SERVERS IN PRODUCTION USE!  PLEASE READ EACH STEP CAREFULLY!

In order to log into MySQL to secure it, we'll need the current
password for the root user.  If you've just installed MySQL, and
you haven't set the root password yet, the password will be blank,
so you should just press enter here.

Enter current password for root (enter for none): 
OK, successfully used password, moving on...

Setting the root password ensures that nobody can log into the MySQL
root user without the proper authorisation.

Set root password? [Y/n] y
New password: 
Re-enter new password: 
Password updated successfully!
Reloading privilege tables..
 ... Success!

By default, a MySQL installation has an anonymous user, allowing anyone
to log into MySQL without having to have a user account created for
them.  This is intended only for testing, and to make the installation
go a bit smoother.  You should remove them before moving into a
production environment.

Remove anonymous users? [Y/n] 
 ... Success!

Normally, root should only be allowed to connect from 'localhost'.  This
ensures that someone cannot guess at the root password from the network.

Disallow root login remotely? [Y/n] 
 ... Success!

By default, MySQL comes with a database named 'test' that anyone can
access.  This is also intended only for testing, and should be removed
before moving into a production environment.

Remove test database and access to it? [Y/n] 
 - Dropping test database...
 ... Success!
 - Removing privileges on test database...
 ... Success!

Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.

Reload privilege tables now? [Y/n] 
 ... Success!

Cleaning up...

All done!  If you've completed all of the above steps, your MySQL
installation should now be secure.

Thanks for using MySQL!

Create MySQL database and user for MediaWiki:

For instance, here i create database called mediawikidb and user called mediawikiadmin with password centos.

[root@server ~]# mysql -u root -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.1.69 Source distribution

Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> create database mediawikidb;
Query OK, 1 row affected (0.02 sec)

mysql> GRANT ALL PRIVILEGES ON mediawikidb.* TO 'mediawikiadmin' IDENTIFIED BY 'centos';
Query OK, 0 rows affected (0.01 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

mysql> exit
Bye

Open the Apache default port 80 through your firewall/router:

[root@server html]# vi /etc/sysconfig/iptables
# Firewall configuration written by system-config-firewall
# Manual customization of this file is not recommended.
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -p udp -m state --state NEW --dport 80 -j ACCEPT
-A INPUT -p tcp -m state --state NEW --dport 80 -j ACCEPT
-A INPUT -p udp -m state --state NEW --dport 53 -j ACCEPT
-A INPUT -p tcp -m state --state NEW --dport 53 -j ACCEPT
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT

Restart the iptables to save the changes:

[root@server html]# /etc/init.d/iptables restart

Disable SELinux and reboot your system:

[root@server ~]# vi /etc/sysconfig/selinux 
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#     enforcing - SELinux security policy is enforced.
#     permissive - SELinux prints warnings instead of enforcing.
#     disabled - No SELinux policy is loaded.
SELINUX=disabled
# SELINUXTYPE= can take one of these two values:
#     targeted - Targeted processes are protected,
#     mls - Multi Level Security protection.
SELINUXTYPE=targeted

Getting and Preparing to install MediaWiki

Download the latest version from here or you can download it using the following command.

[root@server ~]# wget http://download.wikimedia.org/mediawiki/1.21/mediawiki-1.21.1.tar.gz

Extract and move the file to your website root folder. If you want to setup MediaWiki along with your Website, then move it to a sub directory.

[root@server ~]# tar zxvf mediawiki-1.21.1.tar.gz 
[root@server ~]# mv mediawiki-1.21.1/ /var/www/html/mediawiki

Begin Installation

Navigate to http://ip-address or domain/mediawiki/ from your browser and follow the onscreen instructions.

MediaWiki 1.21.1 - Mozilla Firefox_001

Click On setup the wiki first link. Select your language and click Continue.

MediaWiki 1.21.1 installation - Mozilla Firefox_002

Now the installer will perform the environment checks. If everything seems Ok, Click Continue.

MediaWiki 1.21.1 installation - Mozilla Firefox_004

Enter MySQL Settings such as Database name, user and password etc.

MediaWiki 1.21.1 installation - Mozilla Firefox_005

Select MySQL storage engine and click Continue.

MediaWiki 1.21.1 installation - Mozilla Firefox_007

Enter your Wikipedia website name and create a  new administrative account with username, password and mail id.

MediaWiki 1.21.1 installation - Mozilla Firefox_009

Click Continue.

MediaWiki 1.21.1 installation - Mozilla Firefox_010

Now th installer will begin to setup database, create administrative accounts and other things. Click Continue.

MediaWiki 1.21.1 installation - Mozilla Firefox_011

Now the Wikipedia website has been installed successfully. The installer will download a file called LocalSettings.php which contains all your configuration details. It is recommended to download and keep it safe, you will need it.

MediaWiki 1.21.1 installation - Mozilla Firefox_012

Copy the downloaded LocalSettings.php file to the mediawiki directory. And set write permissions of the LocalSettings.php and WebStart.php files.

[root@server ~]# cp LocalSettings.php /var/www/html/mediawiki/
[root@server ~]# chmod 755 /var/www/html/mediawiki/LocalSettings.php
[root@server ~]# chmod 755 /var/www/html/mediawiki/includes/WebStart.php

Now click on enter to wiki link or navigate to http://ip-address or domain/mediawiki/ from your browser. Now you will be redirected to your wikipedia home page.

Unixmen Wiki - Mozilla Firefox_013

Thats it. Start uploading contents and spread the word of your new wiki website. For more information about installation and configuration and user manuals, refer the official link.