InstallGuide/PreparationForJabberd2

Go up: WikiStart

2. Preparation for Jabberd 2

This section will prepare you and your system to install Jabberd 2:

The table in Section 2.1. lists information required for Jabberd 2 installation. Collecting this information at this point is optional; however, completing this table now will make installation easier.

2.1. Gather Required Information

The table below lists information that will be required during the installation process. Information is provided for each parameter below:

  • Parameter
  • Required
  • Section
  • Description
  • Your Information

"Parameter" is the name of the piece of information. Throughout this guide, specific parameters are referenced with the P convention. "Required is either "Y" (yes), "N" (no), or Option Name. Option Name refers to the option for which the parameter is necessary. Some entries have suggested entries for "Your Information." These entries represent either limited choices or default values. Where default values are given, they are used in the examples in this guide.

For a minimal installation, complete all the required parameters. For more information about the conditions under which an optional parameter is required, see the referenced section. "Description" is a short description. Again, see the referenced section for more detailed information.

I Important: Table Contains Passwords

The table below contains passwords. If you write your passwords in the table below, store this document (or page) in a secure location.

Table 2.1. Required Information for Jabberd 2 Installation

Parameter Required Section(s) Description Your Information
Jabberd User and Group Y 2.2 The Linux (or other OS) user and group that will be used to run Jabberd user: jabber group: jabber
PID Directory Y 2.3 Directory in which Jabberd stores PID Files /usr/local/var/jabberd/pid
Log Directory N 2.3 Directory for Jabberd logs. If not specified in configuration files, logging defaults to syslog. /usr/local/var/jabberd/log
Authentication Package Y 2.4.3, 3.3 Third party package to be used for Jabberd authentication management MySQL, PostgreSQL, Berkeley DB, OpenLDAP or PAM
Data Storage Package Y 2.4.4, 4.3 Third party package to be used for storage of Jabberd data MySQL, PostgreSQL or Berkeley DB
Data Directory Berkeley DB 4.1.1, 4.2.1 Directory for Berkeley DB data files /usr/local/var/jabberd/db
MySQL User and Password MySQL 3.5.2.2, 4.1.2, 4.2.2 MySQL user and password that Jabberd uses to connect to MySQL user: jabberd2 password: secret
PostgreSQL User and Password PostgreSQL 3.5.3.1, 1 3, 4.2.3 PostgreSQL user and password that Jabberd uses to connect to PostgreSQL user: jabberd2 password: secret
OpenLDAP Connection Settings OpenLDAP 2 5 Connection settings for your OpenLDAP server: FQDN for LDAP server (or IP), port, and LDAP version used (either v2 or v3)
OpenLDAP User and Password OpenLDAP 4.2.5 User and password needed to connect to your OpenLDAP server. Required only if your OpenLDAP server does not permit anonymous binding (access)
OpenLDAP Query Settings OpenLDAP 4.2.5 Base DN (distinguished name) and User ID attribute used to build queries for the OpenLDAP server. Base DN can be either the server root DN or an RDN (relative distinguished name) under which User ID's are found.
Hostname Y 4.4 Hostname on which your Jabberd server is to be installed. For Internet accessible servers, this would be something like somedomain.com
SSL Key Location N 5.3.1, 5.3.2 Location of OpenSSL pemfile. Required for SSL-encrypted communication /usr/local/etc/jabberd/server.pem
Router User and Password N 5.4 User and password used for component connections with the Jabberd Router component user: jabberd2 password: secret

2.2. Create Jabber User and Group

You should create a jabber user and group to run the server:

P Parameter: Jabber User and Group Create a user and group that will be used to run Jabberd (as superuser):

su groupadd jabber useradd -g jabber jabber

I Important: Check Your User and Group Commands The above commands are intended as an example. The commands and parameters for adding a user and group may vary for your system. Consult your manuals if you have any doubt about these commands.

2.3. Create Directories for PID's and Logs

You should create a directory for Jabberd to store its PID and log files, and ownership of these directories should be set to the user created above.

P Parameter: PID Directory

Create a directory for PID files (as superuser):

su mkdir -p /usr/local/var/jabberd/pid/ chown -R jabber:jabber /usr/local/var/jabberd/pid/

The above directory is the default location for Jabberd PID files.

You may also choose to create a directory for Jabberd logs.

O Optional: Log Directory

If you wish, create a separate directory for Jabberd logs, and set ownership to your jabber user:

mkdir -p /usr/local/var/jabberd/log/ chown -R jabber:jabber /usr/local/var/jabberd/log

N Note: Log Files Default to Syslog

Note that Jabberd writes messages to syslog by default. In order to force Jabberd to write its logs to the directory above, the component XML files must be edited to specifiy the directory created above.

2.4. Install Prerequisites

Jabberd 2 has four prerequisites:

Technically, Jabberd 2 can be installed without OpenSSL; however, it is strongly recommended that the packages be installed prior to installing Jabberd. Jabberd 2 also requires data packages for application and authentication; however, a single package, such as SQLite, can be used to satisfy requirements for both data storage and authentication.

2.4.1. OpenSSL

OpenSSL provides encrypted client to server and server to server communication for Jabber. The XMPP Protocol requires that Jabber servers support TLS (Transport Security Layer). TLS is the successor to SSL.

N Note: Minimum OpenSSL Version

Jabberd 2 relies on OpenSSL versions 0.9.6b or higher.

I Important: OpenSSL Upgrade Issues

If you upgrade OpenSSL, you may need to recompile installed software that currently relies on an older version of OpenSSL. This warning is provided because many utilities rely on OpenSSL, and these may cease to function after OpenSSL is upgraded. Caution is recommended when upgrading OpenSSL, and detailed instructions for upgrading OpenSSL are beyond the scope of this manual.

See the OpenSSL site for more information. OpenSSL downloads can be found on the OpenSSL Source page. Instructions for installing OpenSSL for Jabberd 2 are included in the appendix to this guide. See Installing OpenSSL for Jabberd 2.

2.4.2 Libidn

Libidn provides necessary string manipulation functionality for Jabberd 2. Prior to Jabberd 2 stable 3, libidn was included with the Jabberd 2 distribution; however, a licensing conflict makes it necessary that libidn be installed separately.

N Note Minimum libidn Version

Jabberd 2 relies on libidn version 0.3.0 or higher.

See the Libidn site for more information. Libidn downloads can be found on the Libidn Source page. Instructions for installing libidn are included in the appendix to this guide. See Installing Libidn for Jabberd 2.

2.4.3. Data Storage Package

Jabberd 2 has better database integration than was previously supported, and Jabberd 2 can use one of the free databases to provide data storage:

For a quick and easy setup, the SQLite database is recommended. A file may be used for storing Jabberd 2 data; however, this is not recommended.

N Note: MySQL and Unicode Support

MySQL versions 4.1 and above support Unicode (UCS-2 and UTF8) character encoding. If your installation requires support for multiple alphabet encodings, and you wish to use MySQL, choose a version 4.1 or above.

If you have one of these databases installed, you may configure it to work with Jabberd. Otherwise, you should choose one of these databases and install it prior to continuing with Jabberd installation. MySQL is the recommended database; however, Berkeley DB requires the least installation and administration effort. Thus, Berkeley DB may be ideal for an installation with a relatively small number of users.

I Important: MySQL Requires Development Libraries and Headers

Note that Jabberd requires more than a minimal MySQL installation. In addition to the basic MySQL installation, Jabberd requires that the development libraries and headers be installed. Either perform a Max installation as listed on the MySQL Downloads page, or install Server, Client Programs, Libraries and header files, and Dynamic client libraries separately. It may be necessary to uninstall your current MySQL installation in order to install the additional libraries.

Appendices to this document contain instructions for installing either MySQL or Berkeley DB for Jabberd 2. See Installing Berkeley DB for Jabberd 2 or Installing MySQL for Jabberd 2.

2.4.4. Authentication Package

Jabberd 2 can use one of five free third-party authentication data packages to handle user authentication:

Note that the three supported application data packages can also be used to manage authentication information. Therefore, installing one of MySQL, Berkeley DB, PostgreSQL or SQLite satisfies both Jabberd data package requirements. A file may be used to store authentication data; however, this is not recommended.

If you have one of the above authentication data packages installed, you may configure it for use with Jabberd 2. If not, you should install one or more of the above packages.

Appendices to this document contain instructions for installing either MySQL or Berkeley DB for Jabberd 2. See Installing Berkeley DB for Jabberd 2 or Installing MySQL for Jabberd 2.


© 2003 Will Kamishlian and Robert Norris

http://jabberd.jabberstudio.org/2/docs/ccommons.gifThis work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike License. To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-sa/1.0/ or send a letter to Creative Commons, 559 Nathan Abbott Way, Stanford, California 94305, USA.