This document is not (yet) complete. Please edit this if you want to help. A 100% working installation quickstart is available at debian-quickstart. Additional user contributed installation information can be found in the howto section of this wiki.
About this document
This Installation Handbook will guide you through the installation of an instance of Wikidot (version 1) software and explain the related details.
If you do not care about the details too much and want to use either Debian or Ubuntu — you can follow the Debian/Ubuntu quickstart instructions.
Requirements
As you will see, a fully-featured Wikidot instance requires a rather custom installation and therefore it might not be suitable for "shared-hosting" environments.
Currently only UNIX systems are supported.
At Wikidot Inc. we have successfully installed Wikidot on a variety of UNIX distributions and platforms: Gentoo, CentOS (Wikidot.com runs on CentOS 5.1), Debian 4.0, Ubuntu 7.10, MacOsX 10.4.
Below we will mostly refer to the Debian installation since we have found it is the easiest one. CentOS is the most difficult because of lack of required software in default repositories and outdated (but very stable) versions of software packages.
Wikidot has been also successfully installed using virtualization software VMWare (Fusion on Mac and Server 2.0 Beta on Linux). You might also consider this option since it gives you a lot of flexibility.
So to summarize, you will need:
- a dedicated server (or an instance of a virtual machine) with root access
- almost any Linux distrubution, Debian and Ubuntu are recommended
- some free time
Install and configure required software
Fortunately almost all required software is available through packages (except CentOS). Now we should install all dependencies.
PostgreSQL 8.1
At the moment Wikidot requires PostgreSQL version 8.1.x and will not install smoothly on 8.2.x. (The problem is with the TSearch2 library, if you know how to use 8.2 let us know!). Also packages from the "contrib" group wil be required.
On Debian/Ubuntu simply to:
apt-get install postgresql-8.1 postgresql-contrib-8.1
The database cluster will be automatically created for you at /var/XXXXXXX.
NOTE: It looks like the current Wikidot works well with PostgreSQL 8.2 out-of-the-box, but this has not been tested. Give it a try if you can.
Apache 2
Apache 2 is our primary web server, most 2.X.X version will be fine. Get it by:
apt-get install apache2
Several Apache modules are required:
- mod_rewrite — allows having nice, clean URLs
- mod_expires — gives extra control over browsers' cache and expiry time of cached elements (optional, you could edit .htaccess to remove dependency)
- mod_header — control over sent headers (optional, requires .htaccess modification)
- mod_deflate — enables compression in communication between the server and browser (optional, requires .htaccess modification)
To enable them all at once on Debian do:
cd /etc/apache2/mods-enabled
ln -s ../mods-available/rewrite.load ../mods-available/expires.load ../mods-available/headers.load ../mods-available/deflate.* .
Memcached (optional)
Memcached (http://www.danga.com/memcached/) is a great cache system. It is optional and is required for Wikidot installations having more than thousands of active wikis.
To get Memcached do:
apt-get install memcached
Default configuration is quite ok, but you might want to increase the used memory. Also make sure you do not expose the Memecached's port (11211) to the outside world.
PHP 5
Wikidot uses PHP (http://www.php.net) as the server-side solution. The required version is 5.1.X, but 5.2.X is highly recommended. There is no way Wikidot could run on PHP 4.
We will need both the mod_php for Apache and php-cli that you can call from the command line. Also required is php-dev because we are going to compile a few extensions by hand later.
PHP PEAR is also needed although we are not relying any of the globally-installed PEAR code. PEAR also provides PECL that we will need.
The command below will also install PHP Tidy (HTML-cleanup library) and client library for PostgreSQL.
apt-get install php5 php5-cli php5-dev php-pear php5-tidy php5-pgsql
PHP extensions
The following extensions are not found in standard packages and have to be compiled by hand. Before we even try to compile anything, a set of compilers and tools is required. Install these by:
apt-get install build-essential
Libxdiff
…