Sunday, 27 April 2008

Installing and Configuring Mediawiki on a Ubuntu Gutsy Desktop System

Mediawiki is the web based tool (wiki software) that Wikipedia uses to manage, store and serve its contents.

Mediawiki is written in PHP, and in this installation we will use MySQL as database management system (although it can be configured to use PostgreSQL)

Mediawiki is ditributed under the GNU GPL license.


First step is installing MySQL:
$sudo aptitude install mysql-admin mysql-server

It will ask you for MySQL root password. Then choose a secure password and type it.

Now we install Mediawiki itself:
$sudo aptitude install mediawiki

It will automatically check for apache and php dependencies.

Current mediawiki version is 1.10.

At installation I get this warning:
apache2: Could not reliably determine the server's fully qualified domain name, using for ServerName

There is some info in this thread at ubuntu forums.

To get rid of the error:
$gksudo gedit /etc/apache2/httpd.conf

httpd.conf file is usually empty, and then we add this line:
ServerName localhost

After saving the file we check if the error is gone executing this command:
$sudo apache2ctl restart


Open apache.conf file:
$gksudo gedit /etc/mediawiki1.10/apache.conf

Uncomment this line:
#Alias /mediawiki /var/lib/mediawiki1.10

You can change /mediawiki to whatever you wanna the wiki be named. e.g: /myWiki

Restart the apache server with:
$sudo apache2ctl restart
$sudo /etc/init.d/apache2 restart

Now you can navigate into your wiki:

There will appear a page with a link saying: "Please set up the wiki first."

It is okey. We click on the link so entering within the wiki configuration page: http://localhost/mediawiki/config/index.php


We are at the configuration page: http://localhost/mediawiki/config/index.php and we assign adequated values for:

Wiki name: this name will appear at the top of your wiki pages.

e-mail, language, ...

Admin username: WikiSysop by default. This user will have all the privileges to mantain the wiki.

Admin password

I want a very simple configuration so I disable all email settings. So I won't be notified when a wiki page is changed, etc.

At database configuration part I leave the defaults:
NOTE: If you have an account and database already created, you can introduce those values here.

type: MySQL
host: localhost
name: wikidb
username: wikiuser

I choose and set a password for this database user.

As I have no previously created a user and a database and I am very lazy and want mysql root user to create them, so I check superuser account:

Superuser account: checked
Superuser name: root
Superuser password: MySQL root password.

Let's go and click: Install Mediawiki! button

We arrive to a page that says Installation successful! if everything has gone fine

Next and last step is configuring LocalSettings.php file:

CONFIGURING LocalSettings.php FILE

There is comprehensive info about configuring LocalSettings.php file at Manual:LocalSettings.php

Checking out DefaultSettings.php file may also be interesting. It can be found at:

We begin editing the file:
$gksudo gedit /var/lib/mediawiki1.10/config/LocalSettings.php

We are gonna allow file uploads to our wiki:

search this variable $wgEnableUploads at LocalSettings.php file and set it to true:
$wgEnableUploads = true


This wiki group configuration is going to be very simple. It consists on two user types, logged ones and anonymous users.

Anonymous users will be able to navigate through the wiki but will be unable to change or edit anything.

Logged users will be capable of reading, editing, uploading files, creating new wiki pages and creating new accounts for their friends. :)

Only WikiSysop will have privileges enough to delete or rename wiki pages.

In order to obtain this configuration, we have to copy this lines at the end of LocalSettings.php file:
#Global permissions (anonymous users too)

$wgGroupPermissions['*' ]['createaccount'] = false;
$wgGroupPermissions['*' ]['read'] = true;
$wgGroupPermissions['*' ]['edit'] = false;
$wgGroupPermissions['*' ]['delete'] = false;
$wgGroupPermissions['*' ]['createpage'] = false;
$wgGroupPermissions['*' ]['upload'] = false;
$wgGroupPermissions['*' ]['move'] = false;

#Logged users

$wgGroupPermissions['user' ]['createaccount'] = true;
$wgGroupPermissions['user' ]['read'] = true;
$wgGroupPermissions['user' ]['edit'] = true;
$wgGroupPermissions['user' ]['delete'] = false;
$wgGroupPermissions['user' ]['createpage'] = true;
$wgGroupPermissions['user' ]['upload'] = true;
$wgGroupPermissions['user' ]['move'] = false;

more info at:

MOVING LocalSettings.php TO /etc

Finally we place LocalSettings.php file at /etc directory with its adequate permissions.

$cd /var/lib/mediawiki1.10
$sudo chown root:www-data LocalSettings.php
$sudo mv config/LocalSettings.php /etc/mediawiki1.10/
$sudo chmod 0640 /etc/mediawiki1.10/LocalSettings.php


Our wiki setup is completed!
We type http://localhost/mediawiki at the navigator and access to the wiki.

First time, we will have to enter using WikiSysop account and create a normal user one.
To do that, once you have logged as WikiSysop, go to Special pages and then to Log in / create account

Enjoy your wiki!!

Most info comes from Mediawiki site:


Installing Mediawiki using SQLite Database in GNU/Debian

Backing and Restoring Mediawiki in Ubuntu

0 comentarios: