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" 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 or Libidn; however, it is strongly recommended that these packages be installed prior to installing Jabberd. Jabberd 2 also requires data packages for application and authentication; however, a single package, such as MySQL, 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 three free databases to provide data storage:

MySQL is the recommended and default data store. 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 or PostgreSQL satisfies both Jabberd data package requirements. A file may be used to store authentication data; however, this is not recommended. The recommended and default package is MySQL.

If you have one of the above five authentication data packages installed, you may configure it for use with Jabberd 2. If not, you should install one or more of the above five 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.

 

Back

Up

Next

© 2003 Will Kamishlian and Robert Norris

This 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.

Creative Commons License