OX6:Open-Xchange 620 622 Update Guide for RHEL5
Update of Open-Xchange Server v6.20 to v6.22 on RedHat Enterprise Linux 5
This article will guide you through the update of an existing Open-Xchange Server 6 installation to the newest major release, v6.22.
Supported update path
Please note that the update to v6.22 is only supported from an installed version 6.20.7 or later. If you have an earlier version of Open-Xchange Server 6 installed, please update to the latest release of v6.20 before attempting an update to v6.22.
The latest v6.20 release will remain accessible on our servers. If you need to access the repository after the release of v6.22, please use the following lines in your /etc/yum.repos.d/ox.repo repository configuration to access v6.20 packages:
[ox-updates] name=Open-Xchange Updates baseurl=http://http://software.open-xchange.com/OX6/6.20/RHEL5/ gpgkey=http://software.open-xchange.com/oxbuildkey.pub enabled=1 gpgcheck=1 metadata_expire=0m
Requirements
- An Open-Xchange Server installation v6.20.7 or later. This update guide is valid for a system installed through our Open-Xchange Server 6 on RedHat Enterprise Linux 5
- If you have custom packages done by Open-Xchange, please discuss with your Open-Xchange contact when these packages are available for 6.22. Do not attempt the update earlier
- If you have built custom packages yourself which install config files in the OX config tree, please check the page v6.22 Packaging Changes
- If you have custom plugins written by yourself which depend on Open-Xchange Server OSGI bundles, check the pages v6.22 Packaging Changes and v6.22 Necessary Code Changes for changes you might need to do.
- Custom packages built for 6.20.7 or earlier might not work with 6.22.
- As for every update we strongly recommend that you make a backup of your system(s) before you proceed.
Update Open-Xchange Repositories
Open-Xchange maintains public available software repositories for different platforms, such as RHEL. This repository should be added to the RHEL installation to enable simple installation and updates.
Start a console and create a software repository file for Open-Xchange:
In case there are issues with an username and password containing URL unsafe characters, e.g. an @, they have to be entered URL encoded. Details can be found at http://www.w3schools.com/tags/ref_urlencode.asp
Updating repositories and update packages
Reload the package index. This will download the package descriptions available at the software repositories:
$ yum update
The following command starts the download and installation process of all required package for Open-Xchange deployment:
Using Meta packages
The following Meta packages are available:
Name | Description |
---|---|
open-xchange-meta-admin | all provisioning packages |
open-xchange-meta-gui | all gui packages |
open-xchange-meta-messaging | the complete messaging packages like unified inbox, twitter, facebook, etc. |
open-xchange-meta-mobility | OXtender for business mobility |
open-xchange-meta-outlook | Outlook OXtender Updater |
open-xchange-meta-pubsub | all publish/subscribe related packages |
open-xchange-meta-server | the server backend packages |
open-xchange-meta-databaseonly | all packages needed when open-xchange is only managed via database and not e.g. LDAP |
open-xchange-meta-singleserver | most of the above |
If you want to install everything on a single server, just run
$ yum install open-xchange-meta-singleserver \ open-xchange-authentication-database open-xchange-spamhandler-default
Note: You have to choose between one of the available spamhandler and authentication packages depending on your requirements. If you plan to only manage your open-xchange installation via database and do not plan to integrate e.g. with LDAP and OXLDAPSync, you might also want to install the package open-xchange-meta-databaseonly.
Of course you can still install the single packages as usual to be able to select a specific set of functionality that you'd like to have, for example:
$ yum install \ open-xchange open-xchange-authentication-database \ open-xchange-admin-client open-xchange-admin-lib \ open-xchange-admin-plugin-hosting open-xchange-admin-plugin-hosting-client \ open-xchange-admin-plugin-hosting-lib open-xchange-configjump-generic \ open-xchange-admin-doc open-xchange-contactcollector \ open-xchange-conversion open-xchange-conversion-engine \ open-xchange-conversion-servlet open-xchange-crypto \ open-xchange-data-conversion-ical4j open-xchange-dataretention \ open-xchange-genconf open-xchange-genconf-mysql \ open-xchange-imap open-xchange-mailfilter \ open-xchange-management open-xchange-monitoring \ open-xchange-passwordchange-database open-xchange-passwordchange-servlet \ open-xchange-pop3 open-xchange-publish open-xchange-publish-basic \ open-xchange-publish-infostore-online open-xchange-publish-json \ open-xchange-publish-microformats open-xchange-push-udp \ open-xchange-resource-managerequest open-xchange-server \ open-xchange-settings-extensions open-xchange-smtp \ open-xchange-spamhandler-default open-xchange-sql open-xchange-subscribe \ open-xchange-xerces-sun open-xchange-subscribe-json \ open-xchange-subscribe-microformats open-xchange-subscribe-crawler \ open-xchange-templating open-xchange-threadpool open-xchange-unifiedinbox \ open-xchange-admin-plugin-hosting-doc open-xchange-charset \ open-xchange-group-managerequest open-xchange-i18n open-xchange-jcharset \ open-xchange-sessiond open-xchange-calendar-printing \ open-xchange-user-json open-xchange-gui-wizard-plugin \ open-xchange-report-client \ open-xchange-configjump-generic-gui \ open-xchange-gui open-xchange-gui-wizard-plugin-gui \ open-xchange-online-help-de \ open-xchange-online-help-en open-xchange-online-help-fr
Open-Xchange configuration
To avoid confusion right at the start notice that Open-Xchange uses multiple administration levels and requires different credentials at some stages at the installation and server management. Note that the passwords chosen at this guide are weak and should be replaced by stronger passwords.
- The MySQL database user
- Username: openexchange
- Password used at this guide: db_password
- Responsibility: Execute all kinds of database operations
- The Open-Xchange Admin Master
- Username: oxadminmaster
- Password used at this guide: admin_master_password
- Responsibility: Manage contexts, manage all kinds of low level server configuration
- The Context Admin
- Username: oxadmin
- Password used at this guide: admin_password
- Responsibility: Manage users/groups/resources inside a context
As stated above we assume the MySQL service has been installed previously, and it is running and available.
A good idea is to add the Open-Xchange binaries to PATH:
$ echo PATH=$PATH:/opt/open-xchange/sbin/ >> ~/.bashrc && . ~/.bashrc
Now we have to initialize the Open-Xchange configdb database. This can all be done by executing the initconfigdb script.
$ /opt/open-xchange/sbin/initconfigdb --configdb-pass=db_password -a --mysql-root-passwd=root_password
Use the --mysql-root-passwd option to supply the MySQL root password as configured during database installation.
Add the -i option if you want to remove an already existing open-xchange configdb.
Note: The -a parameter adds an openexchange account to MySQL. This account will be used for database connections from the OX App Suite middleware and requires some privileges. You can also create that account manually during database installation / configuration, in which case you can (should) skip the -a parameter here.
Before starting any service, all basic configuration files need to be set up correctly. The --configdb-pass option indicates the password of the openexchange database user previously created, the --master-pass options specifies the password of the Open-Xchange adminmaster user that will be created when executing the oxinstaller script.
Important: You should have your Open-Xchange license code at hand. If you do not plan to license Open-Xchange, you can use the option --no-license instead. Please also check OXReportClient documentation for more information about configuring a supported and maintained Open-Xchange server.
Important: For MAX_MEMORY_FOR_JAVAVM a rule of thumb for simple installations is half available system memory. The value must be in MB. For example "1024" for 1GB .
$ /opt/open-xchange/sbin/oxinstaller --add-license=YOUR-OX-LICENSE-CODE \ --servername=oxserver --configdb-pass=db_password \ --master-pass=admin_master_password --ajp-bind-port=localhost --servermemory MAX_MEMORY_FOR_JAVAVM
Note: In a clustered setup, --ajp-bind-port must be set to *
Now is a good time to configure the way OX will authenticate to your mail server. Edit the file /opt/open-xchange/etc/mail.properties and change the com.openexchange.mail.loginSource to use. This is very important for servers that require your full email address to log in with.
# adjust com.openexchange.mail.loginSource $ vim /opt/open-xchange/etc/mail.properties
After initializing the configuration, start the Open-Xchange Administration service by executing:
$ /etc/init.d/open-xchange-admin start
Next we have to register the local server at the Open-Xchange configdb database:
$ /opt/open-xchange/sbin/registerserver -n oxserver -A oxadminmaster -P admin_master_password
Now we have to create a local directory that should be used as Open-Xchange filestore. This directory will contain all Infostore content and files attached to groupware objects. To maintain access by the Open-Xchange Groupware service, it is required to grant permissions to the open-xchange system user.
$ mkdir /var/opt/filestore $ chown open-xchange:open-xchange /var/opt/filestore
Now register the directory as a filestore at the Open-Xchange server:
$ /opt/open-xchange/sbin/registerfilestore -A oxadminmaster -P admin_master_password \ -t file:/var/opt/filestore -s 1000000
Note: You might want to adapt the value provided with -s, the "The maximum size of the filestore in MB", see registerfilestore --help.
Note 2: If you are setting up OX App Suite, you need a shared filestore accross your OX servers even though you do not plan to have the OX Files feature enabled for your customers.
Finally register the groupware database, this is a separated database where all groupware specific data is stored:
$ /opt/open-xchange/sbin/registerdatabase -A oxadminmaster -P admin_master_password \ -n oxdatabase -p db_password -m true
Install additional language packages if necessary
Starting with v6.22 the localization files for German, French and British English are no longer part of the core packages. This change was necessary to allow customers to uninstall these languages when they are not needed. If you want to offer German, French and/or British English to your customers as language option, you need to install the corresponding packages after the update.
For German:
$ apt-get install open-xchange-l10n-de-de open-xchange-gui-l10n-de-de
For French:
$ apt-get install open-xchange-l10n-fr-fr open-xchange-gui-l10n-fr-fr
For British English:
$ apt-get install open-xchange-l10n-en-gb open-xchange-gui-l10n-en-gb
Restart Open-Xchange
To restart Open-Xchange Server after the update, run
$ /etc/init.d/open-xchange restart
This script will check on startup if the old processes for open-xchange-groupware
and open-xchange-admin
are running, and stops them if they are. You might still want to check with
$ ps aux | grep open-xchange
that there is now only one process running Open-Xchange Server.
Leftover configuration files and runtime data
After the update you may see leftover configuration files and runtime data below /opt/open-xchange/etc
.
Some of these files belong to packages which have been uninstalled during the update, they are marked with the status rc
in the output of dpkg -l
. You can remove these packages with the command
$ dpkg --purge <packagename>
Other orphaned files may be runtime data or temporary files which do not belong to any package and therefore couldn't be removed during the package update.
Finally, there may be backup files created by the package manager during earlier updates.
It is safe to remove:
- All files and subdirectories below:
/opt/open-xchange/admindaemon /opt/open-xchange/etc/common /opt/open-xchange/etc/groupware
unless you have built your own packages which install files into these directories.
- All files ending in
.dpkg-bak
or.dpkg-remove