Last modified by Thomas Mortagne on 2024/03/12

Show last authors
1 {{box cssClass="floatinginfobox" title="**Contents**"}}
2 {{toc start="2"/}}
3 {{/box}}
4
5 This distribution allows installing XWiki and every component needed for a production instance automatically.
6
7 This method works for all Debian-based linux distribution. Feel free to use [[the User Forum>>dev:Community.Discuss]] to report issues, or discuss about it.
8
9 {{error}}
10 A critical dependency of the XWiki Tomcat Debian packages is **tomcat9**, unfortunately Debian decided to remove the ##tomcat9## package to keep only ##tomcat10## starting with Debian 12 (bookworm). The current alteralternatives are
11 * use the XJetty based packages instead
12 * go for an [[alternative non Debian specific install method>>xwiki:Documentation.AdminGuide.Installation||anchor="HInstallationMethods"]].
13
14 Note that Ubuntu decided to keep both ##tomcat9## and ##tomcat10## (at least in Ubuntu 23.04, we'll see how it goes in the next LTS, 24.04) so it's not impacted yet.
15 {{/error}}
16
17 == APT Configuration ==
18
19 First, you have to configure your package manager in order to use XWiki's repository. This can be done simply, using this command:
20
21 {{code language="bash"}}
22 sudo wget https://maven.xwiki.org/xwiki-keyring.gpg -O /usr/share/keyrings/xwiki-keyring.gpg
23 sudo wget "https://maven.xwiki.org/stable/xwiki-stable.list" -O /etc/apt/sources.list.d/xwiki-stable.list
24 {{/code}}
25
26 {{info}}
27 Note that there is several repositories you can choose (as alternatives to the stable one you have in the previous example):
28
29 * [[https:~~/~~/maven.xwiki.org/releases/xwiki-releases.list>>https://maven.xwiki.org/releases/xwiki-releases.list]]: all released versions including milestones and release candidates (beta)
30 * [[https:~~/~~/maven.xwiki.org/stable/xwiki-stable.list>>https://maven.xwiki.org/stable/xwiki-stable.list]]: all released versions excluding milestones and release candidates (stable)
31 * [[https:~~/~~/maven.xwiki.org/lts/xwiki-lts.list>>https://maven.xwiki.org/lts/xwiki-lts.list]]: the current "long term support" branch versions as defined in [[Support page>>xwiki:Main.Support]]
32 {{/info}}
33
34 Now you can update the packages database to read the data from this repository.
35
36 {{code language="bash"}}
37 sudo apt-get update
38 {{/code}}
39
40 Now you can make a little search to see what this repo offers.
41
42 {{code language="bash"}}
43 apt-cache search xwiki
44 {{/code}}
45
46 * Common packages not tied to any application server or database
47 ** ##xwiki-common## - XWiki, you can install this if you want to take care yourself of the database and application server
48 ** ##xwiki-mariadb-common## - XWiki MariaDB common package, you can install this if you want to take care yourself of the application server
49 ** ##xwiki-mysql-common## - XWiki MySQL common package, you can install this if you want to take care yourself of the application server
50 ** ##xwiki-pgsql-common## - XWiki PostgreSQL common package, you can install this if you want to take care yourself of the application server
51
52 * {{version since="14.10.19, 15.5.4, 15.9"}} {{/version}}
53 Packages based on a customized Jetty optimized for XWiki
54 ** ##xwiki-xjetty-common## - XWiki Jetty common package, you can install this if you want to take care yourself of the database link
55 ** ##xwiki-xjetty-mariadb## - XWiki Jetty/MariaDB based package
56 ** ##xwiki-xjetty-mysql## - XWiki Jetty/MySQL based package
57 ** ##xwiki-xjetty-pgsql## - XWiki Jetty/PostgreSQL
58
59 * Packages based on the standard Tomcat package
60 ** ##xwiki-tomcat8-common## - XWiki Tomcat 8 common package, you can install this if you want to take care yourself of the database link
61 ** ##xwiki-tomcat9-common## - XWiki Tomcat 9 common package, you can install this if you want to take care yourself of the database link
62 ** ##xwiki-tomcat8-mariadb## - XWiki Tomcat 8/MariaDB based package
63 ** ##xwiki-tomcat9-mariadb## - XWiki Tomcat 9/MariaDB based package
64 ** ##xwiki-tomcat8-mysql## - XWiki Tomcat 8/MySQL based package
65 ** ##xwiki-tomcat9-mysql## - XWiki Tomcat 9/MySQL based package
66 ** ##xwiki-tomcat8-pgsql## - XWiki Tomcat 8/PostgreSQL
67 ** ##xwiki-tomcat9-pgsql## - XWiki Tomcat 9/PostgreSQL
68
69 * Not really XWiki itself but Solr cores needed when you want to use a standalone Solr instance with XWiki
70 ** ##xwiki-solr-all## - An entry point package with dependencies on all the Solr 8 cores required to setup a standalone version compatible with XWiki Standard
71 ** ##xwiki-solr-core## - A pre configured Solr 8 core for the XWiki search feature
72 ** ##xwiki-solr-events## - A pre configured Solr 8 core for the XWiki events/notifications storage
73 ** ##xwiki-solr-ratings## - A pre configured Solr 8 core for the XWiki rating storage
74 ** ##xwiki-solr-extension_index## - A pre configured Solr 8 core for the XWiki extensions index
75 ** ##xwiki-solr9-all## - An entry point package with dependencies on all the Solr 9 cores required to setup a standalone version compatible with XWiki Standard
76 ** ##xwiki-solr9-search## - A pre configured Solr 9 core for the XWiki search feature
77 ** ##xwiki-solr9-events## - A pre configured Solr 9 core for the XWiki events/notifications storage
78 ** ##xwiki-solr9-ratings## - A pre configured Solr 9 core for the XWiki rating storage
79 ** ##xwiki-solr9-extension_index## - A pre configured Solr 9 core for the XWiki extensions index
80
81 Plus legacy packages from older versions of XWiki like ##xwiki-enterprise-*## packages or for unsupported versions of Tomcat.
82
83 {{error}}
84 ##xwiki-enterprise-*## packages were deprecated as of 9.4. Installations requiring those packages will appear to have stopped updating at version 9.4. Install the corresponding ##xwiki-*## package to update to the latest version. (For example, if you were relying on the ##xwiki-enterprise-tomcat8-mysql## package, you will now need to install the ##xwiki-tomcat8-mysql## package.)
85 {{/error}}
86
87 {{info}}
88 According to selection, package manager will install all necessary dependencies (application server, database, Java runtime). If you haven't installed these packages before, package manager can ask additional info from you.
89 {{/info}}
90
91 {{warning}}
92 On Ubuntu you will need [[##universe## repository>>https://help.ubuntu.com/community/Repositories/CommandLine]] to install Tomcat packages. It's generally enabled by default.
93 {{/warning}}
94
95 == Complete Installation ==
96
97 {{warning}}
98 Most Debian distributions provide a Tomcat package with a pretty low Memory setting by default (128MB) and this need to be increased for XWiki to fully work. See [[Tomcat Usability section>>||anchor="HTomcatUsability"]] for more details.
99 {{/warning}}
100
101 === Using MariaDB ===
102
103 {{warning}}
104 Note that XWiki requires at least MariaDB 10.2.
105 {{/warning}}
106
107 {{version since="14.10.19, 15.5.4, 15.9"}}
108 Xjetty:
109
110 {{code language="bash"}}
111 sudo apt install xwiki-xjetty-mariadb
112 {{/code}}
113 {{/version}}
114
115 Tomcat:
116
117 {{code language="bash"}}
118 sudo apt install xwiki-tomcat9-mariadb
119 {{/code}}
120
121 During the installation you may get some questions from DBconfig, which is in charge of the configuration of XWiki with the MariaDB database. Don't confuse it with the MariaDB root password prompt that asks you for a root password (which is intented for the superuser). If you haven't already installed any MariaDB databases and you are not familiar with it you should let DBconfig handle this.
122
123 Afterwards DBconfig asks you for the MariaDB root password for the "xwiki" MariaDB user. This user will be used to connect to MariaDB from the XWiki application. You should choose the password wisely but you don't have to pay a lot of attention to it after that because DBconfig internally configures XWiki to start up with these credentials.
124
125 {{warning}}
126 The password should not contain any special characters, otherwise XWiki will fail to start. See [[https:~~/~~/jira.xwiki.org/browse/XWIKI-14406>>https://jira.xwiki.org/browse/XWIKI-14406]]
127 {{/warning}}
128
129 The installation ends with the start of the XWiki or Tomcat daemon which is also setup to start automatically from boot.
130
131 === Using MySQL ===
132
133 {{warning}}
134 Note that XWiki requires at least MySQL 5.7. It's not recommended to use this package if you "MySQL" server is in fact MariaDB, see [[the MariaDB section>>||anchor="#HUsingMariaDB"]].
135 {{/warning}}
136
137 {{version since="14.10.19, 15.5.4, 15.9"}}
138 Xjetty:
139
140 {{code language="bash"}}
141 sudo apt install xwiki-xjetty-mysql
142 {{/code}}
143 {{/version}}
144
145 Tomcat:
146
147 {{code language="bash"}}
148 sudo apt install xwiki-tomcat9-mysql
149 {{/code}}
150
151 Everything else is similar to what is described in the [[the MariaDB section>>||anchor="#HUsingMariaDB"]].
152
153 === Using PostgreSQL ===
154
155 It's as simple as the MySQL installation, you only need to choose the right virtual package.
156
157 {{version since="14.10.19, 15.5.4, 15.9"}}
158 Xjetty:
159
160 {{code language="bash"}}
161 sudo apt install xwiki-xjetty-pgsql
162 {{/code}}
163 {{/version}}
164
165 Tomcat:
166
167 {{code language="bash"}}
168 sudo apt install xwiki-tomcat9-pgsql
169 {{/code}}
170
171 Everything else is similar to what is described in the [[the MariaDB section>>||anchor="#HUsingMariaDB"]].
172
173 === Starting up XWiki for the first time... ===
174
175 After you've made sure to update the memory settings (see below), you can now point your favorite browser to the following URL to use your wiki: ##[[http:~~/~~/localhost:8080/xwiki>>http://localhost:8080/xwiki]]##
176
177 {{warning}}
178 Note that your wiki is absolutely empty, like a WAR installation. Distribution Wizard will take care of the rest.
179 {{/warning}}
180
181 == Performance ==
182
183 === XWiki ===
184
185 You can find various [[various generic advices and troubleshooting related to XWiki>>Documentation.AdminGuide.Performances]].
186
187 === Tomcat ===
188
189 You can find [[various generic advices and troubleshooting related to Tomcat>>Documentation.AdminGuide.Installation.InstallationWAR.InstallationTomcat.WebHome]].
190
191 ==== Java Version ====
192
193 Make sure Tomcat is executed with the right [[Java version>>Documentation.AdminGuide.Installation||anchor="HHardwareandSoftwarerequirements"]].
194
195 This is usually indicated in the file ##/etc/default/tomcat9## (or ##/etc/default/tomcat8## for Tomcat 8, etc).
196
197 ==== Memory ====
198
199 The default Tomcat memory setup is too low for XWiki's needs.
200
201 You can change it in the file ##/etc/default/tomcat9## (or ##/etc/default/tomcat8## for Tomcat 8, etc).
202
203 Modify the property ##JAVA_OPTS##. For example:
204
205 {{code language="none"}}
206 JAVA_OPTS="-Djava.awt.headless=true -Xmx1024m"
207 {{/code}}
208
209 You should [[check the Memory settings we recommend>>Documentation.AdminGuide.Performances||anchor="HMemory"]].
210
211 ==== /dev/urandom ====
212
213 In most Debian-based systems the default random implementation is ##/dev/random## which can be very slow. ##/dev/urandom## is much faster and it's fine for XWiki's needs so you should use it when possible:
214
215 * edit ##/etc/default/tomcat9## file and add
216
217 {{code language="bash"}}
218 JAVA_OPTS="${JAVA_OPTS} -Djava.security.egd=file:/dev/./urandom"
219 {{/code}}
220
221 == Concluding Step ==
222
223 {{include reference="Documentation.AdminGuide.Installation.InstallationConcludingSteps.WebHome"/}}
224
225 == Uninstallation ==
226
227 If you want to remove XWiki from your system, you only have to uninstall the package you've installed at the beginning of this documentation. For example:
228
229 {{code language="bash"}}
230 sudo apt-get --purge remove xwiki-common
231 {{/code}}
232
233 Attention, these commands do not remove MySQL/PostgreSQL nor Tomcat from your system. To do so, if you don't use these applications for another purpose, you can make some cleaning with
234
235 {{code language="bash"}}
236 sudo apt-get --purge autoremove
237 {{/code}}
238
239 == Troubleshooting ==
240
241 === Log file location ===
242
243 This installation manual should guide you all the way to a fresh and clean XWiki platform. If on the other hand issues may arise, it is important to inspect the XWiki log file for any WARNING messages that may have been brought up. Below you can find the location of this log file for the respective application servers.
244
245 ==== XJetty ====
246
247 {{code language="none"}}
248 /var/log/xwiki/[date].jetty.log
249 {{/code}}
250
251 ==== Tomcat8 ====
252
253 {{code language="none"}}
254 /var/log/tomcat8/Catalina.[date].log
255 {{/code}}
256
257 ==== Tomcat9 ====
258
259 {{code language="none"}}
260 /var/log/tomcat9/Catalina.[date].log
261 {{/code}}
262
263 You can find a generic Troubleshooting section on [[https://www.xwiki.org/xwiki/bin/view/Documentation/AdminGuide/Installation/#HTroubleshooting]].
264
265 === No package can be found for Java ===
266
267 XWiki require at least Java 8 since XWiki 8.1 and Java 11 since XWiki 14.0, **OpenJDK 17** (the recommended version) will be automatically installed as dependency on recent distributions.
268
269 If your Debian based distribution does not provide any package for the Java version you need you can try with:
270
271 * Adoptium provides a Debian repository to install Temurin (OpenJDK), see https://adoptium.net/installation/linux/#_deb_installation_on_debian_or_ubuntu
272
273 === Tomcat ===
274
275 See [[Tomcat Installation>>Documentation.AdminGuide.Installation.InstallationWAR.InstallationTomcat||anchor="HTroubleshooting"]] for generic Tomcat related issues.
276
277 === MySQL ===
278
279 See [[MySQL Installation>>Documentation.AdminGuide.Installation.InstallationWAR.InstallationMySQL||anchor="HTroubleshooting"]] for generic MySQL related issues.
280
281 === PostgreSQL ===
282
283 See [[PostgreSQL Installation>>Documentation.AdminGuide.Installation.InstallationWAR.InstallationPostgreSQL||anchor="HTroubleshooting"]] for generic PostgreSQL related issues.
284
285 == Other useful info ==
286
287 === XWiki as root webapp (short URLs) ===
288
289 Note that this section is only the part of Short URL specific to the Debian setup. To fully configure the URL to your liking, see [[full documentation on short URLs>>doc:Documentation.AdminGuide.ShortURLs.WebHome]].
290
291 ==== For Tomcat 9 ====
292
293 {{warning}}
294 When doing it make sure to check after upgrade if all is OK in /etc/tomcat9/Catalina/localhost folder (xwiki.xml might be restored).
295 {{/warning}}
296
297 * Rename file ##/etc/tomcat9/Catalina/localhost/xwiki.xml## into ##/etc/tomcat9/Catalina/localhost/ROOT.xml##
298 * Edit file ##/etc/xwiki/xwiki-tomcat9.xml## and modify ##Context## XML element path from ##/xwiki## to ##/## as in moving from(((
299 {{code language="xml"}}
300 <Context path="/xwiki" docBase="/usr/lib/xwiki"
301 containerSciFilter="org.apache.tomcat.websocket.server.WsSci|org.apache.jasper.servlet.JasperInitializer">
302 {{/code}}
303
304 to
305
306 {{code language="xml"}}
307 <Context path="" docBase="/usr/lib/xwiki"
308 containerSciFilter="org.apache.tomcat.websocket.server.WsSci|org.apache.jasper.servlet.JasperInitializer">
309 {{/code}}
310 )))
311 * Edit file ##/etc/xwiki/xwiki.cfg## and uncomment {{code language="properties"}}xwiki.webapppath={{/code}}
312 * Restart Tomcat 9.
313
314 === Integrate with LibreOffice ===
315
316 Install libreoffice with {{code language="none"}}sudo apt-get install libreoffice{{/code}}.
317
318 And setup XWiki to automatically start and access libreoffice in ##/etc/xwiki/xwiki.properties##:
319
320 {{code language="properties"}}
321 openoffice.autoStart=true
322 openoffice.homePath=/usr/lib/libreoffice/
323 {{/code}}
324
325 See [[Office Importer Application>>extensions:Extension.Office Importer Application]] for more details.
326
327 === Standalone Solr setup ===
328
329 Take a look at [[Solr documentation>>https://solr.apache.org/guide/8_11/taking-solr-to-production.html]] to install it.
330
331 Then you will need to add the XWiki schema configuration: you should install the package ##xwiki-solr-all## for Solr 8 or {{version since="XWiki 16.2.0"}}##xwiki-solr9-all## for Solr 9{{/version}} to automatically register the Solr cores needed by XWiki Standard in the Solr server (provided the standard setup was used).
332
333 == Overview of the important files ==
334
335 Here is a list of a different tree. The point is to help you find useful files easily. This list is showing a few files and directories, to keep it simple and clear. The '->' is used to show a link to another file/directory.
336
337 === XWiki ===
338
339 The configuration: **/etc/xwiki/**
340
341 * hibernate.cfg.xml //Hibernate configuration, helping to configure the database resources//
342 * xwiki.cfg
343 * xwiki.properties
344 * xwiki-tomcat9-systemd.conf // Injected trough ##/etc/systemd/system/tomcat9.service.d/xwiki-tomcat-systemd.conf##// in the tomcat9 service configuration
345 * xwiki-tomcat<version> // The Tomcat integration linked from ##/etc/tomcat<version>/Catalina/localhost##//
346
347 The permanent directory: **/var/lib/xwiki/data**
348
349 The home directory: **/usr/lib/xwiki/**
350
351 * META-INF
352 * resources
353 * skins
354 * templates
355 * WEB-INF
356 ** hibernate.cfg.xml -> /etc/xwiki/hibernate.cfg.xml
357 ** xwiki.cfg -> /etc/xwiki/xwiki.cfg
358 ** xwiki.properties -> /etc/xwiki/xwiki.properties
359
360 === XJetty ===
361
362 **/lib/systemd/system/xwiki.service** is the configuration in charge of controlling the ##xwiki## service, it's also where you can customize its java startup configuration
363
364 === Tomcat ===
365
366 **/etc/tomcat##<version>##/**
367
368 * context.xml
369 * logging.properties
370 * server.xml
371 * tomcat-users.xml
372 * web.xml
373
374 **/etc/default/**
375
376 * tomcat##<version>## //This file helps configuring the Tomcat daemon. Every change needs a restart to be effective//
377
378 **/var/lib/tomcat##<version>##/**
379
380 * common
381 * conf -> /etc/tomcat##<version>##
382 * logs -> ../../log/tomcat##<version>     //Note that starting Debian 10 and Ubuntu 18.04 systemd service log is used//##
383 * server
384 * shared
385 * webapps
386
387 **/var/log/tomcat##<version>##/**
388
389 * catalina.out //First logging file. Check this one if you're experiencing troubles with Tomcat/XWiki.//
390 * localhost.<date>.log // "Container Log file": Start of each filter and failures thereof are listed.//
391
392 === MariaDB/MySQL ===
393
394 **/etc/mysql/**
395
396 * debian.cnf
397 * my.cnf //Database configuration. Max_allowed_packet is the parameter you need to change to improve upload data size.// permitted.
398
399 **/var/lib/mysql/**
400
401 * mysql
402 * xwiki //This is the xwiki database. You may want to backup this directory from time to time.//
403
404 **/var/log/**
405
406 * syslog
407 * mysql
408 ** error.log
409
410 === PostgreSQL ===
411
412 **/etc/postgresql/**
413
414 * ##<version>##
415 ** main
416 *** postgresql.conf
417 *** pg_hba.conf
418
419 **/var/lib/postgresql/##<version>##/main/**
420
421 * base

Get Connected