Version 9.2 by Vincent Massol on 2016/04/27

Show last authors
1 {{box cssClass="floatinginfobox" title="**Contents**"}}
2 {{toc/}}
3 {{/box}}
4
5 You'll need to perform 2 mandatory steps:
6
7 * Install and configure a Servlet Container
8 * Install and configure a relational database
9
10 But first, you'll need to [[download>>enterprise:Main.Download]] the .war version of XWiki and check the [[System Requirements>>AdminGuide.Installation#HPrerequisites]].
11
12 = Install and configure a Servlet Container =
13
14 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.
15
16 * [[Tomcat installation>>AdminGuide.InstallationTomcat]]
17 * [[Jetty installation>>AdminGuide.InstallationJetty]]
18 * [[GlassFish installation>>AdminGuide.InstallationGlassFish]]
19 * [[WebSphere installation>>AdminGuide.InstallationWebSphere]]
20 * [[JBoss Installation>>AdminGuide.InstallationJBoss]]
21 * [[Oracle OC4J Installation>>AdminGuide.InstallationOC4J]]
22 * [[Apache Geronimo>>AdminGuide.InstallationGeronimo]]
23
24 Some containers have the Java Security Manager turned on. In this case, XWiki needs to be granted some permissions. Below there's 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:
25
26 {{code language="none"}}
27 grant codeBase "file:<full-path-here>/webapps/xwiki/WEB-INF/lib/-" {
28 permission java.util.PropertyPermission "file.encoding", "read";
29 // Needed by Hibernate -> antlr
30 permission java.util.PropertyPermission "ANTLR_DO_NOT_EXIT", "read";
31 permission java.util.PropertyPermission "ANTLR_USE_DIRECT_CLASS_LOADING", "read";
32 // Needed by Hibernate and others
33 permission java.lang.reflect.ReflectPermission "suppressAccessChecks";
34 permission java.lang.RuntimePermission "createClassLoader";
35 permission java.lang.RuntimePermission "setContextClassLoader";
36 // Needed by commons-logging
37 permission java.util.PropertyPermission "org.apache.commons.logging.LogFactory.HashtableImpl", "read";
38 // Needed for connecting to the database
39 permission java.net.SocketPermission "127.0.0.1:3306", "connect,resolve";
40 // Needed by the scheduler plugin -> quartz, but works without (maybe except scheduling? should be checked)
41 // permission java.util.PropertyPermission "org.quartz.properties", "read";
42
43 //Allow file storage directory reading - for directory and everything underneath
44 //This is dependent on the setting of environment.permanentDirectory in xwiki.properties
45 permission java.io.FilePermission "${catalina.home}${file.separator}xwikidata${file.separator}", "read,write,delete";
46 permission java.io.FilePermission "${catalina.home}${file.separator}xwikidata${file.separator}-", "read,write,delete";
47 //Allow file storage directory reading - temporary directory and everything underneath
48 //This is dependent on the setting of environment.temporaryDirectory in xwiki.properties.
49 permission java.io.FilePermission "${catalina.home}${file.separator}temp${file.separator}", "read,write,delete";
50 permission java.io.FilePermission "${catalina.home}${file.separator}temp${file.separator}-", "read,write,delete";
51 };
52 {{/code}}
53
54 You're now ready to install and configure your relational database.
55
56 = Install and configure a Relational Database =
57
58 XWiki can work with a lot of relational databases. We're only listing those that we have tested it on.
59
60 The general strategy is the following:
61
62 * Install your favorite RDBMS
63 * Create a ##xwiki## database
64 * Create a user with all privileges on that database
65 * Copy your RDBMS Java drivers to the XWiki webapp's ##WEB-INF/lib## directory
66 * 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.
67
68 == Specific databases instructions ==
69
70 Install and configure the database you wish to use:
71
72 * [[HSQL Installation>>AdminGuide.InstallationHSQL]]
73 * [[MySQL Installation>>AdminGuide.InstallationMySQL]]
74 * [[PostgreSQL Installation>>AdminGuide.InstallationPostgreSQL]]
75 * [[Oracle Installation>>AdminGuide.InstallationOracle]]
76 * [[DB2 Installation>>AdminGuide.InstallationDB2]]
77 * [[Derby Installation>>AdminGuide.InstallationDerby]]
78 * [[Microsoft SQL Server Installation>>AdminGuide.InstallationMSSQL]]
79 * [[H2 Installation>>AdminGuide.InstallationH2]]
80
81 {{info}}
82 If your database is empty this will result in a minimal empty wiki installation and when you access your wiki, the [[Distribution Wizard>>platform:Features.DistributionWizard]] will be triggered. This is the recommended way to install the default wiki pages making up the UI of XWiki. If you're upgrading from an existing installation your database should already contain the pages you had before.
83 {{/info}}
84
85 == Using a Data Source ==
86
87 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.
88
89 * Do not add your JDBC library to the web app. Install it to the container's classpath instead, like in ##$CATALINA_HOME/common/lib##.
90 * 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. Note that you should leave the ##provider_class## unset, since XWiki's implementation doesn't handle container-managed data sources.
91 * 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.
92
93 = Concluding Step =
94
95 {{include reference="AdminGuide.InstallationConcludingSteps"/}}

Get Connected