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.
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.
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 |
|
|
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 |
You should create a jabber user and group to run the server:
su
groupadd jabber
useradd -g jabber jabber
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.
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.
mkdir -p /usr/local/var/jabberd/log/
chown -R jabber:jabber /usr/local/var/jabberd/log
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
© 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.
