This document describes updating an OX 6 Server installation from version 6.22 to OX App Suite.
This document assumes you are running at least OX6 v6.22.0. If you are running on an older version of OX6, you need to update to v6.22.0 first, see Open-Xchange 6.20 to 6.22 Update Guide for Debian 6.0. (This requires an intermediate upgrade to OX6 v6.20.7 if you are running a version older than that.)
Then, update your OX6 installation to the latest 6.22 version. Since OX App Suite and OX6 use the same backend (beginning with OX App Suite 7.0.2 / OX6 v6.22.2 released on 2013-04-04), this is basically upgrading your backend to the latest OX App Suite backend, while keeping the OX6 frontend functional.
Then, add the latest OX App Suite frontend to the system.
Then, the OX6 frontend can be removed, optionally.
If not already configured, we make the latest OX6 repos available by ajdusting the corresponding sources.list file:
deb http://software.open-xchange.com/OX6/6.22/frontend/DebianSqueeze/ / deb http://software.open-xchange.com/OX6/6.22/backend/DebianSqueeze/ / deb http://software.open-xchange.com/OX6/6.22/usm/DebianSqueeze/ / # if you have a valid maintenance subscription, please uncomment the # following and add the ldb account data to the url so that the most recent # packages get installed # deb http://LDBACCOUNT:LDBPASSWORD@software.open-xchange.com/OX6/6.22/updates/frontend/DebianSqueeze / # deb http://LDBACCOUNT:LDBPASSWORD@software.open-xchange.com/OX6/6.22/updates/backend/DebianSqueeze / # deb http://LDBACCOUNT:LDBPASSWORD@software.open-xchange.com/OX6/6.22/updates/usm/DebianSqueeze /
Reload the package index:
$ apt-get update
Download and update all installed packages:
$ apt-get dist-upgrade
Please note: For some config files, the following interaction dialog may occur:
Configuration file `/opt/open-xchange/etc/hazelcast.properties' ==> File on system created by you or by a script. ==> File also in package provided by package maintainer. What would you like to do about it ? Your options are: Y or I : install the package maintainer's version N or O : keep your currently-installed version D : show the differences between the versions Z : start a shell to examine the situation The default action is to keep your current version. *** hazelcast.properties (Y/I/N/O/D/Z) [default=N] ?
Chose Y to install the new version. Check later no manual changes have been screwed. You can do this by comparing the new (installed) config file with the dpkg.old files created by dpkg.
IMPORTANT: Please be extremely careful when executing
apt-get autoremove after the upgrade. On some test systems packages were marked for automatic removal even if they were still needed.
To remove a package from the
autoremove list, you can use:
$ apt-mark unmarkauto package1 [package2 [package3 [...]]]
You need to decide whether whether you want to replace AJP by Grizzly now, or later. AJP is deprecated with OX App Suite 7.4 / OX6 v6.22.4 released in September 2013 and will be discontinued with OX App Suite 7.6 in April 2014. For more information, see AppSuite:Grizzly.
We recommend that you read the release notes vor all versions newer than your version before you started the upgrade. The release notes contain all changes to the product together with the actions required by the admin to accommodate for those changes.
You can find the release notes here:
Some of the most prominent changes are summarized below.
Introduction of hazelcast as distributed session cache. Review Hazelcast configuration after the upgrade.
OX now offers Grizzly as alternative to AJP. (AJP is deprecated with 7.4 and will be discontinued with 7.6.) Either switch to Grizzly now, following AppSuite:Grizzly, or stick with AJP for now.
The whole cluster communication will now be done through Hazelcast. Please note that even in case of an update it is important to configure the new settings as required as this will not be done automatically. The configuration of the new system is described in http://oxpedia.org/wiki/index.php?title=AppSuite:Running_a_cluster
New config file 'cluster.properties'. Set reasonable cluster name there, same for all nodes in the cluster.
Features OX Text. OX Text requires OX Realtime. OX Realtime requires Grizzly. So switch to Grizzly now if you are using OX Text.
It is now possible to disable the OX builtin replication monitor for replicated database backends which work synchronously. (configdb.properties, com.openexchange.database.replicationMonitor)
Adjustment of apache configuration required: App Suite 7.2 introduces a new realtime/push framework for which a new namespace was added to OX URLs. Please add new proxy entries to the apache configuration to map the /realtime and /atmosphere paths to the backend. e.g.:
<Proxy /atmosphere> ProxyPass balancer://oxcluster/atmosphere </Proxy> <Proxy /realtime> ProxyPass balancer://oxcluster/realtime </Proxy>
Internal OSGi events have been distributed in the cluster using the UDP push mechanism. This mechanism is now replaced using Hazelcast topics. Therefore the UDP push mechanism should be disabled. Several properties of the configuration file /opt/open-xchange/etc/push-udp.properties are configured to false by default and when upgrading the packages. This are the properties: - com.openexchange.push.udp.pushEnabled - com.openexchange.push.udp.registerDistributionEnabled - com.openexchange.push.udp.eventDistributionEnabled - com.openexchange.push.udp.multicastEnabled If your cluster requires push mechanisms to push changes to client devices, ensure to configure a proper working cluster setup. This is described here: AppSuite:Running_a_cluster
Reminder: AJP is deprecated, please switch to Grizzly. AppSuite:Grizzly
Support Debian 7 (Wheey) with OpenJDK 7 and MySQL 5.5.
Reminder: AJP is deprecated, please switch to Grizzly. AppSuite:Grizzly
Jolokia monitoring capabilities added. See: Jolokia
showruntimestats is deprecated and will be gone in Sep 2014.
Removed Sql.properties. Database Schema setup will no longer be performed by *.sql scripts but by OX internally (Java code).
Added tokenlogin. Should be more secure / robust than the former "config jump" feature.
Galera support (and possibly support for other MySQL replication mechanisms which rely on the presence of primary key in all tables) added. See server.properties / com.openexchange.server.fullPrimaryKeySupport.
Cluster discovery now handled by Hazelcast (both static and dynamic). See hazelcast.properties for configuration. Hazelcast now also listens by default only on localhost, please check.
Office capabilities configurable, see documents.properties.
To restart Open-Xchange Server after the update, run
$ service open-xchange restart
You might want to check with
$ ps aux | grep open-xchange
that there is exactly one newly spawned process running Open-Xchange Server.
You should verify that login is possible. Upon the first connection after the backend update, you will get the message
Error: updating database, try later. The second try should succeed.
Add App Suite repositories to your sources.list:
# adjust your existing repository list with the new locations #deb http://software.open-xchange.com/products/appsuite/stable/backend/DebianSqueeze/ / #deb http://software.open-xchange.com/products/appsuite/stable/usm/DebianSqueeze/ / deb http://software.open-xchange.com/products/appsuite/stable/appsuiteui/DebianSqueeze/ /
Since the OX App Suite backend is the same as the OX6 backend, there is no need to add the backend repository here. But, on the other hand, you may add it here, and remove the backend repository from the OX6 repository list.
Then, install packages:
# apt-get update # apt-get install open-xchange-appsuite open-xchange-appsuite-backend open-xchange-appsuite-manifest
Apache's service configuration needs adjustments.
If you want to run both frontends later, you need to create a default.conf file with the contents from OX6 and OX App Suite merged. If you want to drop the OX6 frontend anyways, you can now just create a default.conf file for OX App Suite. Consult the OX App Suite documentation for details about the default.conf contents for OX App Suite.
Then you need to adjust the proxy_http.conf file. Basically the OX App Suite configuration is a superset of the OX6 configuraton, so you can use the configuration described in the OX App Suite documentation for the Grizzly configuration.
After this, stop and start the apache2 and open-xchange services. Then you should be able to use the App Suite UI.
This step is optional. You may just skip it and offer both GUIs, the OX6 GUI and the App Suite GUI. (This is only supported with OX6 v6.22.2 and later.)
If you want to uninstall the OX6 GUI, this step consists of removing the OX6 GUI packages and adjusting Apache's configuration.
The packages to be removed can be identified by their version number in the output of
dpkg -l | grep open-x. It will probably boil down to uninstall everything which starts with
open-xchange-gui, as the names of the App Suite UI packages start with
# apt-get remove open-xchange-gui*
After deinstallation of the OX6 GUI packages, adjust the
/etc/apache2/sites-available/default.conf file to remove obsolete stuff which was required for the OX6 GUI, but is not required by the App Suite UI. To do so, you may consult the Installation Guide for OX Appsuite to learn which sections of the file are required for an App Suite UI.
The Grizzly configuration will not require adjustments; the settings for App Suite are a superset of the settings of the OX6 GUI.
After the update you may see leftover configuration files and runtime data below
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 ending in