Wiki source code of Installation

Version 55.1 by Ludovic Dubost on 2011/03/02

Show last authors
1 {{box cssClass="floatinginfobox" title="**Contents**"}}
2 {{toc/}}
3 {{/box}}
4
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.
6
7 There are 2 solutions when installing XWiki:
8
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.
11
12 If you're instead upgrading an existing XWiki install check the [[Upgrade instructions>>#HUpgradinganXWikiInstallation]] below.
13
14 Pick one of the trails in the outline on the right to get started.
15
16 Once you've finished the installation check the other topics in the [[Admin Guide>>AdminGuide.WebHome]] for configuring and [[securing>>Security]] your wiki.
17
18 {{info}}
19 If you want to make manual installation or need to migrate an existing XWiki installation, check the [[Release Notes>>xwiki:ReleaseNotes.WebHome]].
20 {{/info}}
21
22 = Tutorials =
23
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.
25
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}}
29
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]]
33 * [[XWiki On Windows - GlassFish - Oracle (Russian)>>http://etvc.myxwiki.org/xwiki/bin/view/UNA/XWikiInstalation]]
34
35 = Prerequisites =
36
37 * Java 5 or greater installed.
38 * A minimum of 200MB of heap memory and 70MB of permGen. Recommended value are 512MB for the heap and 128MB for the permGen (##-Xmx512m -XX:MaxPermSize=128m##)
39 * (((
40 {{include document="Features.WysiwygEditorPrerequisites"/}}
41 )))
42
43 {{warning}}
44 Note that attachments are currently very memory intensive and if you manipulate large attachments you'll need a lot more heap memory (roughly 30 times the size of your attachment). We're working on fixing this.
45 {{/warning}}
46
47 = Installing the Standalone distribution =
48
49 This is by far the easiest way to install XWiki. We are offering 3 packaging for ease of installation:
50
51 * 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/}}}.
52 * 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.
53 * A zip version. Unzip it in any ##XWIKIHOME## directory of your choice.
54
55 The Windows installer creates shortcuts to start and stop XWiki in your Windows start menu. Launch the Wiki using "start".
56
57 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.
58
59 Once XWiki is started point your browser to {{{http://localhost:8080/xwiki/bin/view/Main/WebHome}}} and the go to the [[User's Guide>>enterprise:UserGuide.WebHome]] to learn how to use XWiki.
60
61 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##).
62
63 {{info}}
64 You can log in using the default ##Admin## user (first letter is capitalized). The default password is ##admin## (lowercase).
65 {{/info}}
66
67 = Installing the XWiki WAR manually =
68
69 You'll need to perform 2 mandatory steps:
70
71 * Install and configure a Servlet Container
72 * Install and configure a relational database
73
74 {{info}}
75 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. If you're using the new XWiki 1.0 skin you might want to install the [[Panels Application>>extensions:Extension.Panels Application]].
76 {{/info}}
77
78 {{info}}
79 If you are installing in a linux/unix environment you have to setup the //xwiki.upload.tempdir// parameter as explained in the JIRA entry ([[http://jira.xwiki.org/jira/browse/XWIKI-530]]) **before** importing anything into XWiki.
80 {{/info}}
81
82 == Install and configure a Servlet Container ==
83
84 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.
85
86 * [[Tomcat installation>>AdminGuide.InstallationTomcat]]
87 * [[Jetty installation>>AdminGuide.InstallationJetty]]
88 * [[GlassFish installation>>AdminGuide.InstallationGlassFish]]
89 * [[WebSphere installation>>AdminGuide.InstallationWebSphere]]
90 * [[JBoss Installation>>AdminGuide.InstallationJBoss]]
91 * [[Oracle OC4J Installation>>AdminGuide.InstallationOC4J]]
92 * [[Apache Geronimo>>AdminGuide.InstallationGeronimo]]
93
94 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:
95
96 {{code language="none"}}
97 grant codeBase "file:<full-path-here>/webapps/xwiki/WEB-INF/lib/-" {
98 permission java.util.PropertyPermission "file.encoding", "read";
99 // Needed by Hibernate -> antlr
100 permission java.util.PropertyPermission "ANTLR_DO_NOT_EXIT", "read";
101 permission java.util.PropertyPermission "ANTLR_USE_DIRECT_CLASS_LOADING", "read";
102 // Needed by Hibernate and others
103 permission java.lang.reflect.ReflectPermission "suppressAccessChecks";
104 permission java.lang.RuntimePermission "createClassLoader";
105 permission java.lang.RuntimePermission "setContextClassLoader";
106 // Needed by commons-logging
107 permission java.util.PropertyPermission "org.apache.commons.logging.LogFactory.HashtableImpl", "read";
108 // Needed for connecting to the database
109 permission java.net.SocketPermission "127.0.0.1:3306", "connect,resolve";
110 // Needed by the scheduler plugin -> quartz, but works without (maybe except scheduling? should be checked)
111 // permission java.util.PropertyPermission "org.quartz.properties", "read";
112 };
113 {{/code}}
114
115 You're now ready to install and configure your relational database.
116
117 == Install and configure a Relational Database ==
118
119 XWiki can work with a lot of relational databases. We're only listed those that we have tested it on.
120
121 The general strategy is the following:
122
123 * Install your favorite RDBMS
124 * Create a xwiki database
125 * Create a user with all privileges on that xwiki database
126 * Copy your RDBMS Java drivers to the XWiki webapp's ##WEB-INF/lib## directory
127 * 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. Also make sure that your ##xwiki.cfg## file has an entry that points to your ##WEB-INF/hibernate.cfg.xml## file (##xwiki.store.hibernate.path=/WEB-INF/hibernate.cfg.xml##) as otherwise your settings won't be used.
128 * (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.
129 ** Do not add your JDBC library to the web app. Install it to the container classpath instead, like to ##$CATALINA_HOME/common/lib##.
130 ** 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).
131 ** 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.
132
133 Install and configure the database you wish to use:
134
135 * [[HSQL Installation>>AdminGuide.InstallationHSQL]]
136 * [[MySQL Installation>>AdminGuide.InstallationMySQL]]
137 * [[PostgreSQL Installation>>AdminGuide.InstallationPostgreSQL]]
138 * [[Oracle Installation>>AdminGuide.InstallationOracle]]
139 * [[DB2 Installation>>AdminGuide.InstallationDB2]]
140 * [[Derby Installation>>AdminGuide.InstallationDerby]]
141 * [[Microsoft SQL Server Installation>>AdminGuide.InstallationMSSQL]]
142 * [[H2 Installation>>AdminGuide.InstallationH2]]
143
144 {{warning}}XWiki does not create automatically the Database Indexes. You can use the [[Admin Tools Application>extensions:Extension.AdminTools]] for that or [[create them manually>>AdminGuide.Database Administration]]{{/warning}}
145
146
147 == Concluding Step ==
148
149 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]].
150
151 = Installing the eXo Enterprise WebOS integration WAR =
152
153 {{warning}}
154 The integration with eXo is still very experimental and the instructions below are not finalized yet. Proceed with caution!
155 {{/warning}}
156
157 == Install eXo WebOS ==
158
159 * Download the latest version of eXo Portal on http://forge.objectweb.org/projects/exoplatform/ (version 2.0-Alpha-2 or greater is required).
160 * Follow the eXo installation instructions located inside the Portal ZIP and try to login in the portal.
161
162 == Install XWiki inside eXo ==
163
164 * Stop eXo Portal.
165 * Download the [[latest XWiki eXo WAR>>xwiki:Main.Download]]. You'll need version 1.0-beta-6 or above.
166 * Create a directory //exo-tomcat/webapps/xwiki//.
167 * Unzip the WAR in //exo-tomcat/webapps/xwiki// and rename the exploded directory to "xwiki".
168 * Move the //ehcache.jar// from //xwiki/WEB-INF/lib// to //exo-tomcat/common/lib// (There are some conflicts with it that both XWiki/eXo will need to fix in future versions).
169 * Remove all the eXo jars from //xwiki/WEB-INF/lib//
170 * Configure XWiki's database as explained [[above>>#HInstallandconfigureaRelationalDatabase]].
171 * Change in //xwiki.cfg//: xwiki.exo=1 to xwiki.exo=0. TODO: Explain why this is required as it is very counter-intuitive!
172 * Restart eXo Portal.
173 * You can now either import XWiki as a Portlet inside the Portal as described below or access XWiki directly by using the usual URL.
174 * [[Change the skin to use the XWiki 1.0 skin>>AdminGuide.Skins#HChangingtheskin]]. This skin is compatible with the Portlet mode and specifically with eXo WebOS.
175 * Import the [[default wiki XAR>>xwiki:Main.Download]] or use your own XWiki database.
176 * Give the admin right to XWikiGuest
177 * To be continued...
178
179 == Use XWiki inside the WebOS ==
180
181 Inside the WebOS, XWiki is seen as a Portlet and therefore must be imported in eXo through the PortletRegistry application. To do so you need to login as exoadmin / exo in eXo and go to the Administration desktop and use the PortletRegistry application. Click on the "Import Portlet Category" icon, you should now see XWiki in the list. You can now add the Portlet in your desktop page though the "Add Application" icon in the desktop dock.
182
183 = Installing the Default Wiki XAR =
184
185 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:
186
187 * A Blog
188 * A Recent Changes page
189 * The [[Panels Application>>extensions:Extension.Panels Application]]
190 * Search
191 * Administration page (Access rights, Group and users management, etc)
192 * ... and much more
193
194 **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.**
195
196 To install the XAR, use the [[Import/Export tool>>AdminGuide.ImportExport]].
197
198 {{warning}}
199 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.
200 {{/warning}}
201
202 = Upgrading an XWiki Installation =
203
204 There are different parts of XWiki that you may want to upgrade:
205
206 * [[XWiki Core>>#HUpgradingXWikiCore]]
207 * [[Documents provided with the default XWiki XAR>>#HUpgradingwikidocuments]]
208
209 {{info}}
210 If you're upgrading an XWiki 0.9 installation refer to [[this guide>>UpgradeXWiki09Installation]].
211 {{/info}}
212
213 == Upgrading XWiki Core ==
214
215 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 container your XWiki configuration. Make sure you also copy any plugins you may have added or any template files you may have modified.
216
217 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.
218
219 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:
220
221 {{code language="none"}}
222 #-# Whether migrations are enabled or not. Should be enabled when upgrading, but for a better startup time it is better to
223 #-# disable them in production.
224 xwiki.store.migration=1
225
226 #-# Whether to exit after migration. Useful when a server should handle migrations for a large database, without going
227 #-# live afterwards.
228 # xwiki.store.migration.exitAfterEnd=0
229
230 #-# Indicate the list of databases to migrate.
231 #-# to upgrade all wikis database set xwiki.store.migration.databases=all
232 #-# to upgrade just some wikis databases set xwiki.store.migration.databases=xwiki,wiki1,wiki2
233 #-# Note: the main wiki is always migrated whatever the configuration.
234 # xwiki.store.migration.databases=
235 {{/code}}
236
237 == Upgrading wiki documents ==
238
239 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:
240
241 * XWiki.XWikiPreferences: This page contains the 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.
242 * XWiki.WebPreferences, Main.WebPreferences, and all other spaces WebPreferences pages: Same as XWiki.XWikiPreferences but at the level of a space.
243 * 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.
244 * 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.
245 * Any other page you have modified, such as Main.WebHome, a modified Panel, etc.
246
247 === Let's clean it up ===
248
249 * 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-1.1-enterprise.war##, or avoid this step if you performed an export/import data migration (you already expanded it)
250 * Copy your old ##xwiki.cfg##, ##xwiki.properties## and ##hibernate.cfg.xml## file to 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
251 * Rename the skins/albatross folder to albatross.original, and copy the skins/default folder from XWiki 0.9 to skin/albatross. (//**WARNING:** this is an optional step, in case you don't want to use the default skin for 1.1x and want to retain your current skin in the new version//)
252 * 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)
253
254 At this point all is set, you can experience our old wiki data over the new XWiki core !!!
255
256 = Troubleshooting =
257
258 == Verify your installation ==
259
260 You can verify some basic settings of your XWiki install (on Tomcat, MySQL) using the [[Admin Tools application>>extensions:Extension.AdminTools]].
261
262 == Field 'XWD_ARCHIVE' doesn't have a default value ==
263
264 If you get an error like the one below it probably means you had an old XWiki version installed (most likely a 0.9 version) which had a wrong schema. We're normally automatically fixing schemas at startup when you set the ##xwiki.store.hibernate.updateschema## configuration parameter in ##xwiki.cfg## (it's set to on by default). However it's currently not done for this error.
265
266 {{code language="none"}}
267 Wrapped Exception: Could not execute JDBC batch update
268 [...]
269 Wrapped Exception:
270 java.sql.BatchUpdateException: Field 'XWD_ARCHIVE' doesn't have a default value
271 {{/code}}
272
273 To fix this run the following SQL command on your database:
274
275 {{code language="sql"}}
276 alter table xwikidoc modify column XWD_ARCHIVE mediumtext null;
277 {{/code}}
278
279 == Failure to log in ==
280
281 Check that you don't have some old cookies and try deleting them.

Get Connected