Wiki source code of Installing XWiki .war package manually
Version 13.1 by Thomas Mortagne on 2017/08/16
Show last authors
author | version | line-number | content |
---|---|---|---|
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 | = Set a proper permanent directory = | ||
57 | |||
58 | Open ##WEB-INF/xwiki.properties## and make sure you set a proper [[permanent directory>>AdminGuide.Configuration#HConfiguringDirectories]]. | ||
59 | |||
60 | = Install and configure a Relational Database = | ||
61 | |||
62 | XWiki can work with a lot of relational databases. We're only listing those that we have tested it on. However please note that the XWiki Developers [[only support some of those databases>>dev:Community.DatabaseSupportStrategy]] and the other ones are supported by the community (the XWiki devs apply patches/Pull Requests). | ||
63 | |||
64 | The general strategy is the following: | ||
65 | |||
66 | * Install your favorite RDBMS | ||
67 | * Create a ##xwiki## database | ||
68 | * Create a user with all privileges on that database | ||
69 | * Copy your RDBMS Java drivers to the XWiki webapp's ##WEB-INF/lib## directory | ||
70 | * 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. | ||
71 | * XWiki will automatically create the various tables it needs when it executes on the first run | ||
72 | |||
73 | == Specific databases instructions == | ||
74 | |||
75 | Install and configure the database you wish to use: | ||
76 | |||
77 | * [[HSQL Installation>>AdminGuide.InstallationHSQL]] | ||
78 | * [[MySQL Installation>>AdminGuide.InstallationMySQL]] | ||
79 | * [[PostgreSQL Installation>>AdminGuide.InstallationPostgreSQL]] | ||
80 | * [[Oracle Installation>>AdminGuide.InstallationOracle]] | ||
81 | * [[DB2 Installation>>AdminGuide.InstallationDB2]] | ||
82 | * [[Derby Installation>>AdminGuide.InstallationDerby]] | ||
83 | * [[Microsoft SQL Server Installation>>AdminGuide.InstallationMSSQL]] | ||
84 | * [[H2 Installation>>AdminGuide.InstallationH2]] | ||
85 | |||
86 | == Using a Data Source == | ||
87 | |||
88 | 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. | ||
89 | |||
90 | * Do not add your JDBC library to the web app. Install it to the container's classpath instead, like in ##$CATALINA_HOME/common/lib##. | ||
91 | * 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. | ||
92 | * 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. | ||
93 | |||
94 | = Install the XWiki UI = | ||
95 | |||
96 | {{include reference="AdminGuide.InstallationConcludingSteps"/}} |