Installation

Version 69.1 by Guillaume Fenollar on 2012/01/25

XWiki is a Java-based wiki and runs on a Servlet Container such as Tomcat, Jetty, JBoss, WebLogic, WebSphere, etc. It also uses a relational database to store its content. It can run on almost any database (HSQL, MySQL, etc) but XWiki and the database need to be setup correctly.

There are 2 solutions when installing XWiki:

  • Use the Standalone distribution which already packages a Servlet Container (Jetty) and a database (HSQL). This is the recommended option for first time XWiki users and for users who wish to quickly try out XWiki.
  • Use the WAR distribution and configure both your container and your database to work with it.

If you're instead upgrading an existing XWiki install check the Upgrade instructions below.

Pick one of the trails in the outline on the right to get started.

Once you've finished the installation check the other topics in the Admin Guide for configuring and securing your wiki.

If you want to make manual installation or need to migrate an existing XWiki installation, check the Release Notes.

Tutorials

Tutorials are step by step procedures to install XWiki for a specific configuration. You can choose to follow one of them or follow the instructions in the sections below.

Tutorials external to the xwiki.org site have not been validated for correctness by the XWiki dev team and it's also possible that they are out of date.

Prerequisites

  • Java 6 or greater installed.
  • A minimum of 300MB of heap memory and 96MB of permGen. Recommended value are above 512MB for the heap and 128MB for the permGen (-Xmx512m -XX:MaxPermSize=128m)

    Note that storing attachments with the default (in database) storage mechanism is very memory intensive. See the administrators guide to attachments for more information about memory cost and the alternative filesystem based attachment store.

  • Check the Release Notes for the version you're installing to see what Browsers are supported for it. You can also check our general Browser support strategy.

Installation Methods

Using a standalone distribution 

 Standalone distribution is not recommended in a production environment. Look at the two options below 

Using .war package (manual installation - usable for production)

Using .deb package (usable for production)

Upgrading an XWiki Installation

There are different parts of XWiki that you may want to upgrade:

If you're upgrading a pre-1.0 XWiki installation refer to this guide.

Upgrading XWiki Core

The general strategy is to download the WAR distribution and to replace your current installed WAR. Make sure you don't copy on top since this could leave some old files around which would make XWiki fail (like if old JARs are lying around in WEB-INF/lib). Before replacing your current WAR, make sure you back it up and more specifically that you copy the hibernate.cfg.xml, xwiki.cfg and xwiki.properties files which you'll need to copy in your newly installed WAR since they contain your XWiki configuration. Make sure you also copy any plugins you may have added or any template files you may have modified.

Some additional operations may be required for upgrading and you must check the release notes for all the versions from the version you're upgrading from up to the new version you're installing. It's also possible that new features are available and that your xwiki.cfg file needs to be modified. If this is the case then it'll be specified in the release notes.

Note that the database schema is automatically upgraded when needed. All you need to do is to ensure your xwiki.cfg file is correctly configured to perform the migration. Here's a relevant excerpt from the xwiki.cfg file:

#-# Whether migrations are enabled or not. Should be enabled when upgrading, but for a better startup time it is better to
#-# disable them in production.
xwiki.store.migration=1

#-# Whether to exit after migration. Useful when a server should handle migrations for a large database, without going
#-# live afterwards.
# xwiki.store.migration.exitAfterEnd=0

#-# Indicate the list of databases to migrate.
#-# to upgrade all wikis database set xwiki.store.migration.databases=all
#-# to upgrade just some wikis databases set xwiki.store.migration.databases=xwiki,wiki1,wiki2
#-# Note: the main wiki is always migrated whatever the configuration.
# xwiki.store.migration.databases=

Upgrading wiki documents

You may want to upgrade to a newer version of the Default Wiki XAR in order to benefit from the latest changes. As mentioned above in the "Installing the Default Wiki XAR" section you should be very careful and when doing the import make sure you selectively decide what pages you wish to import. More specifically the following pages should be imported with great care:

  • XWiki.XWikiPreferences: This page contains some configuration of your wiki (it overrides the configuration defined in xwiki.cfg). If you import a new version of this page you'll loose any customization you may have made such as the skin to use, the rights for your wiki, etc.
  • XWiki.RegistrationConfig: Contains Registration configuration of your wiki.
  • Invitation.InvitationConfig: Configuration for the Invitation Application.
  • XWiki.WebPreferences, Main.WebPreferences, and all other spaces WebPreferences pages: Same as XWiki.XWikiPreferences but at the level of a space.
  • XWiki.XWikiAllGroup (list of registered users) and XWiki.AdminGroup (list of Admins): If you have existing users and import a new version of these pages, you'll find that your users do not belong to these groups anymore and thus may not be able to edit pages, log in, etc. You'll need to add them again to the right groups.
  • XWiki.Admin: This page contains the Admin user with the default password. If you import it you'll create a security hole. Thus it's very important not to import this page.
  • Any other page you have modified, such as Main.WebHome, a modified Panel, etc.

Let's clean it up

  • Expand the XWiki WAR that you installed in your servlet container (the one that contains the JDBC drivers to access your database) into a new folder, using jar xvf xwiki-enterprise-web-3.1.war, or avoid this step if you performed an export/import data migration (you already expanded it) 
  • Merge your old xwiki.cfg, xwiki.properties and hibernate.cfg.xml files with the new versions found in the WEB-INF folder. Take care that if some changes were already made (probably because of database configuration when you installed the JDBC drivers) could be lost, so take care to add these changes
  • Install this new folder as the xwiki application in your servlet container (may be by copying the folder to the servlet filesystem space or by packing it in a WAR file and deploying it in the container's administration interface)

At this point all is set, you can experience your old wiki data over the new XWiki core!

Troubleshooting

You can verify some basic settings of your XWiki install (on Tomcat, MySQL) using the Admin Tools application.

Get Connected