Wiki source code of Installation

Version 66.4 by Vincent Massol on 2011/11/09

Hide last authors
Jean-Vincent Drean 48.1 1 {{box cssClass="floatinginfobox" title="**Contents**"}}
2 {{toc/}}
3 {{/box}}
Ludovic Dubost 28.1 4
Vincent Massol 31.5 5 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.
Raffaello Pelagalli 13.1 6
fax 1.96 7 There are 2 solutions when installing XWiki:
guillemp 36.1 8
Ludovic Dubost 28.1 9 * Use the [[Standalone distribution>>xwiki:Main.Download]] 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.
10 * Use the [[WAR distribution>>xwiki:Main.Download]] and configure both your container and your database to work with it.
Vincent Massol 31.5 11
Ludovic Dubost 28.1 12 If you're instead upgrading an existing XWiki install check the [[Upgrade instructions>>#HUpgradinganXWikiInstallation]] below.
Vincent Massol 31.5 13
Vincent Massol 14.3 14 Pick one of the trails in the outline on the right to get started.
Vincent Massol 31.5 15
Ludovic Dubost 28.1 16 Once you've finished the installation check the other topics in the [[Admin Guide>>AdminGuide.WebHome]] for configuring and [[securing>>Security]] your wiki.
Vincent Massol 31.5 17
Jean-Vincent Drean 48.1 18 {{info}}
Vincent Massol 52.4 19 If you want to make manual installation or need to migrate an existing XWiki installation, check the [[Release Notes>>xwiki:ReleaseNotes.WebHome]].
Jean-Vincent Drean 48.1 20 {{/info}}
Vincent Massol 1.112 21
Vincent Massol 31.5 22 = Tutorials =
hungpt 1.95 23
Vincent Massol 14.3 24 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.
guillemp 36.1 25
Jean-Vincent Drean 48.1 26 {{warning}}
27 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.
28 {{/warning}}
Vincent Massol 14.3 29
Ludovic Dubost 28.1 30 * [[XWiki On Windows (French)>>http://agoncalves.developpez.com/tutoriels/xwiki/creer-un-site-associatif/]]
31 * [[XWiki On Debian 4 (Etch) - Tomcat - PostgreSQL (or MySQL) (English)>>http://www.howtoforge.com/xwiki-tomcat-mysql-debian-etch]]
32 * [[XWiki On Debian 4 (Etch) - Tomcat - PostgreSQL (or MySQL) (German)>>http://www.howtoforge.de/howto/xwiki-on-debian-4-etch-tomcat-mysql]]
Eugen Colesnicov 54.1 33 * [[XWiki On Windows - GlassFish - Oracle (Russian)>>http://etvc.myxwiki.org/xwiki/bin/view/UNA/XWikiInstalation]]
Vincent Massol 57.2 34 * [[XWiki on OpenSUSE - Tomcat - MySQL (English)>>http://geistreicher-papierkorb.blogspot.com/2011/03/setting-up-xwiki-on-opensuse-with-mysql.html]]
Vincent Massol 14.3 35
Vincent Massol 31.5 36 = Prerequisites =
Vincent Massol 14.3 37
Sergiu Dumitriu 63.3 38 * Java 6 or greater installed.
Vincent Massol 65.1 39 * 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##)(((
40 {{warning}}
41 Note that storing attachments with the default (in database) storage mechanism is very memory intensive. See the [[administrators guide to attachments>>platform:AdminGuide.Attachments]] for more information about memory cost and the alternative filesystem based attachment store.
42 {{/warning}}
43 )))
Vincent Massol 66.1 44 * Check the [[Release Notes>>xwiki:ReleaseNotes.WebHome]] for the version you're installing to see what Browsers are supported for it. You can also check our [[general Browser support strategy>>dev:Community.BrowserSupportStrategy]].
Sorin Burjan 64.5 45
Vincent Massol 31.5 46 = Installing the Standalone distribution =
fax 1.96 47
Vincent Massol 1.104 48 This is by far the easiest way to install XWiki. We are offering 3 packaging for ease of installation:
Ludovic Dubost 28.1 49
Sorin Burjan 64.2 50 * A Windows exe. Simply execute it and follow the instructions. Do not close the DOS Windows that shows up. This is the XWiki server running, instead point your browser to##{{{http://www.localhost:8080/}}}##.
Vincent Massol 1.124 51 * A generic Installer that works on all platforms. It requires Java to be installed on your system. Simply double-click on it and follow the instructions.
Vincent Massol 31.6 52 * A zip version. Unzip it in any ##XWIKIHOME## directory of your choice.
Vincent Massol 31.5 53
Ludovic Dubost 32.1 54 The Windows installer creates shortcuts to start and stop XWiki in your Windows start menu. Launch the Wiki using "start".
Vincent Massol 31.5 55
Ludovic Dubost 33.1 56 If you've used the zip file or generic Installer, go to the directory where you've installed XWiki (##XWIKIHOME##) and run ##start_xwiki.bat## in Windows or ##start_xwiki.sh## on Unix. To stop it, run the ##stop_xwiki.bat## script on Windows and ##stop_xwiki.sh## on Unix or Mac. On Mac you will need to use "Open with Terminal" or run this script from the Terminal.
Vincent Massol 31.5 57
Sorin Burjan 64.2 58 Once XWiki is started point your browser to##{{{http://localhost:8080/}}}##and the go to the [[User's Guide>>enterprise:UserGuide.WebHome]] to learn how to use XWiki.
Ludovic Dubost 32.1 59
Vincent Massol 34.1 60 In some cases, you might already have a Web Server running on port 8080. If this happens you have to pass another the port to the start script (e.g. by using the port 8081, as in ##start_xwiki.sh 8081##).
Ludovic Dubost 32.1 61
Jean-Vincent Drean 48.1 62 {{info}}
63 You can log in using the default ##Admin## user (first letter is capitalized). The default password is ##admin## (lowercase).
64 {{/info}}
fax 1.96 65
Vincent Massol 31.5 66 = Installing the XWiki WAR manually =
fax 1.96 67
68 You'll need to perform 2 mandatory steps:
guillemp 36.1 69
fax 1.96 70 * Install and configure a Servlet Container
71 * Install and configure a relational database
Vincent Massol 31.5 72
73 == Install and configure a Servlet Container ==
fax 1.96 74
Vincent Massol 35.1 75 XWiki will work with any Servlet Container (provided it's properly configured obviously). We're only listing instructions for a few containers but you can adapt these instructions for your favorite container.
fax 1.96 76
Ludovic Dubost 28.1 77 * [[Tomcat installation>>AdminGuide.InstallationTomcat]]
78 * [[Jetty installation>>AdminGuide.InstallationJetty]]
79 * [[GlassFish installation>>AdminGuide.InstallationGlassFish]]
80 * [[WebSphere installation>>AdminGuide.InstallationWebSphere]]
81 * [[JBoss Installation>>AdminGuide.InstallationJBoss]]
82 * [[Oracle OC4J Installation>>AdminGuide.InstallationOC4J]]
PaulSnow 50.2 83 * [[Apache Geronimo>>AdminGuide.InstallationGeronimo]]
Vincent Massol 31.5 84
Vincent Massol 35.4 85 Some containers have the Java Security Manager turned on. In this case, XWiki needs to be granted some permissions. Here's below a sample policy file if you want to run your container with the Security Manager active. Depending on the version of XWiki Enterprise that you use and on the plugins/extensions that you use the permissions might need to be adjusted to your needs:
Vincent Massol 35.1 86
Vincent Massol 35.3 87 {{code language="none"}}
Vincent Massol 35.1 88 grant codeBase "file:<full-path-here>/webapps/xwiki/WEB-INF/lib/-" {
89 permission java.util.PropertyPermission "file.encoding", "read";
90 // Needed by Hibernate -> antlr
91 permission java.util.PropertyPermission "ANTLR_DO_NOT_EXIT", "read";
92 permission java.util.PropertyPermission "ANTLR_USE_DIRECT_CLASS_LOADING", "read";
93 // Needed by Hibernate and others
94 permission java.lang.reflect.ReflectPermission "suppressAccessChecks";
95 permission java.lang.RuntimePermission "createClassLoader";
96 permission java.lang.RuntimePermission "setContextClassLoader";
97 // Needed by commons-logging
98 permission java.util.PropertyPermission "org.apache.commons.logging.LogFactory.HashtableImpl", "read";
99 // Needed for connecting to the database
100 permission java.net.SocketPermission "127.0.0.1:3306", "connect,resolve";
101 // Needed by the scheduler plugin -> quartz, but works without (maybe except scheduling? should be checked)
102 // permission java.util.PropertyPermission "org.quartz.properties", "read";
103 };
Vincent Massol 35.2 104 {{/code}}
Vincent Massol 35.1 105
fax 1.96 106 You're now ready to install and configure your relational database.
107
Vincent Massol 31.5 108 == Install and configure a Relational Database ==
fax 1.96 109
110 XWiki can work with a lot of relational databases. We're only listed those that we have tested it on.
Vincent Massol 31.5 111
fax 1.96 112 The general strategy is the following:
113
114 * Install your favorite RDBMS
Sergiu Dumitriu 64.1 115 * Create a ##xwiki## database
116 * Create a user with all privileges on that database
Vincent Massol 31.7 117 * Copy your RDBMS Java drivers to the XWiki webapp's ##WEB-INF/lib## directory
Sergiu Dumitriu 63.2 118 * Configure XWiki to use the created database. This involves modifying the ##WEB-INF/hibernate.cfg.xml## file as is described in the tutorials for each database below.
blaine 18.1 119 * (A more scalable and J2EE-conformant tactic is to use the servlet container to manage your data source. You modify the web app as little as possible... hopefully one day Xwiki will allow you to override hibernate.cfg.xml without needing to change the app itself.
Vincent Massol 31.7 120 ** Do not add your JDBC library to the web app. Install it to the container classpath instead, like to ##$CATALINA_HOME/common/lib##.
guillemp 36.1 121 ** Do not set user, url, etc., nor connection.provider_class in ##hibernate.cfg.xml##. The critical settings are ##connection.datasource## (with JNDI name like ##java:/comp/env/jdbc/XWikiDS##) and the dialect class for your DB vendor. Do not comment out <mapping resource="..."/> elements, hibernate needs them. (You should leave the provider_class unset, since Xwiki's implementation doesn't handle container-managed data sources).
122 ** Manage all database access settings using your container facilities, for example Tomcat admin webapp or server.xml + APPNAME.xml. Uncommenting the <resource-ref> element inside ##WEB-INF/web.xml## that matches the above JNDI name and looks like <res-ref-name>jdbc/XWikiDS</res-ref-name> could be a good idea.
blaine 15.1 123
fax 1.96 124 Install and configure the database you wish to use:
125
Ludovic Dubost 28.1 126 * [[HSQL Installation>>AdminGuide.InstallationHSQL]]
127 * [[MySQL Installation>>AdminGuide.InstallationMySQL]]
128 * [[PostgreSQL Installation>>AdminGuide.InstallationPostgreSQL]]
129 * [[Oracle Installation>>AdminGuide.InstallationOracle]]
130 * [[DB2 Installation>>AdminGuide.InstallationDB2]]
131 * [[Derby Installation>>AdminGuide.InstallationDerby]]
132 * [[Microsoft SQL Server Installation>>AdminGuide.InstallationMSSQL]]
PaulSnow 50.3 133 * [[H2 Installation>>AdminGuide.InstallationH2]]
fax 1.96 134
Sergiu Dumitriu 62.1 135 {{info}}
136 If your database is empty this will result in a minimal empty wiki installation. You may want to use the [[Import/Export tool>>AdminGuide.ImportExport]] to import some pages in your wiki. We recommend that you import the [[provided default XAR>>xwiki:Main.Download]]. If you're upgrading from an existing installation your database should already contain the pages you had before.
137 {{/info}}
Ludovic Dubost 55.1 138
Vincent Massol 31.5 139 == Concluding Step ==
fax 1.96 140
Vincent Massol 66.2 141 At this stage you have finished configuration XWiki. If you start your database and container and point your browser to http:~//localhost:8080/xwiki/ you'll have a working, albeit minimal, wiki (without any page loaded). The next step is either to create new pages by hand or import the default Wiki that we are providing as a [[XAR file>>xwiki:Main.Download]], by using the [[Import feature>>AdminGuide.ImportExport]].
fax 1.96 142
Vincent Massol 31.5 143 = Installing the Default Wiki XAR =
fax 1.96 144
145 The default wiki is a fully configured wiki that you can use as a starting point for creating your own wiki content. It provides the following:
Ludovic Dubost 28.1 146
fax 1.96 147 * A Blog
Jean-Vincent Drean 48.1 148 * A Recent Changes page
Vincent Massol 52.4 149 * The [[Panels Application>>extensions:Extension.Panels Application]]
fax 1.96 150 * Search
151 * Administration page (Access rights, Group and users management, etc)
152 * ... and much more
Vincent Massol 31.5 153
Ludovic Dubost 28.1 154 **It comes configured with an "Admin" user (password is "admin" in lowercase). You'll need that username/password to log in once you've imported the default wiki.**
Vincent Massol 31.5 155
Ludovic Dubost 28.1 156 To install the XAR, use the [[Import/Export tool>>AdminGuide.ImportExport]].
Vincent Massol 31.5 157
Jean-Vincent Drean 48.1 158 {{warning}}
Sergiu Dumitriu 64.1 159 If you're upgrading an existing wiki be careful that the XAR import operation will replace the content of the existing pages of your wiki with the content of the XAR (New pages that you have created will not be modified). As a consequence it's critical that you [[perform a backup>>platform:AdminGuide.Backup]] first and read the upgrade nodes bellow carefully.
Jean-Vincent Drean 48.1 160 {{/warning}}
fax 1.96 161
Vincent Massol 31.5 162 = Upgrading an XWiki Installation =
fax 1.96 163
bitman09 1.126 164 There are different parts of XWiki that you may want to upgrade:
fax 1.96 165
Ludovic Dubost 28.1 166 * [[XWiki Core>>#HUpgradingXWikiCore]]
167 * [[Documents provided with the default XWiki XAR>>#HUpgradingwikidocuments]]
Vincent Massol 31.5 168
Jean-Vincent Drean 48.1 169 {{info}}
Sergiu Dumitriu 64.1 170 If you're upgrading a pre-1.0 XWiki installation refer to [[this guide>>UpgradeXWiki09Installation]].
Jean-Vincent Drean 48.1 171 {{/info}}
Vincent Massol 1.113 172
Vincent Massol 31.5 173 == Upgrading XWiki Core ==
Vincent Massol 9.7 174
Thibaut Camberlin 58.1 175 The general strategy is to [[download the WAR distribution>>xwiki:Main.Download]] 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.
Vincent Massol 31.5 176
Vincent Massol 52.5 177 Some additional operations may be required for upgrading and you must check the [[release notes>>xwiki:ReleaseNotes.WebHome]] 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.
Vincent Massol 1.113 178
Vincent Massol 37.1 179 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:
180
181 {{code language="none"}}
182 #-# Whether migrations are enabled or not. Should be enabled when upgrading, but for a better startup time it is better to
183 #-# disable them in production.
184 xwiki.store.migration=1
185
186 #-# Whether to exit after migration. Useful when a server should handle migrations for a large database, without going
187 #-# live afterwards.
188 # xwiki.store.migration.exitAfterEnd=0
189
190 #-# Indicate the list of databases to migrate.
191 #-# to upgrade all wikis database set xwiki.store.migration.databases=all
192 #-# to upgrade just some wikis databases set xwiki.store.migration.databases=xwiki,wiki1,wiki2
193 #-# Note: the main wiki is always migrated whatever the configuration.
194 # xwiki.store.migration.databases=
195 {{/code}}
196
Vincent Massol 31.5 197 == Upgrading wiki documents ==
Vincent Massol 1.113 198
Ludovic Dubost 28.1 199 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>>#HInstallingtheDefaultWikiXAR]] 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:
Vincent Massol 1.113 200
Vincent Massol 59.1 201 * 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.
202 * XWiki.RegistrationConfig: Contains Registration configuration of your wiki.
Caleb James DeLisle 60.1 203 * Invitation.InvitationConfig: Configuration for the [[Invitation Application>>extensions:Extension.Invitation Application]].
fax 1.96 204 * XWiki.WebPreferences, Main.WebPreferences, and all other spaces WebPreferences pages: Same as XWiki.XWikiPreferences but at the level of a space.
205 * 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.
Vincent Massol 50.1 206 * 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.
fax 1.96 207 * Any other page you have modified, such as Main.WebHome, a modified Panel, etc.
208
Vincent Massol 31.5 209 === Let's clean it up ===
bitman09 1.133 210
Sergiu Dumitriu 64.1 211 * 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)
212 * 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
213 * 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)
Silvia Macovei 37.2 214
Sergiu Dumitriu 64.1 215 At this point all is set, you can experience your old wiki data over the new XWiki core!
bitman09 1.126 216
Vincent Massol 31.5 217 = Troubleshooting =
Vincent Massol 1.125 218
Ludovic Dubost 55.1 219 You can verify some basic settings of your XWiki install (on Tomcat, MySQL) using the [[Admin Tools application>>extensions:Extension.AdminTools]].

Get Connected