AppSuite:Upgrade from 6.22 Debian 6.0
Update of Open-Xchange Server v6.22 to OX Appsuite 7.0 on Debian GNU/Linux 6.0
This example describes updating some OX 6 Server installation to OX Appsuite 7.
Supported update path
We expect the only valid update path will be latest 6.22.X to Appsuite 7.0.1. If you have an earlier version of Open-Xchange Server 6 installed, please update to the latest release of v6.22 before attempting an update to OX Appsuite 7. See Open-Xchange 6.20 to 6.22 Update Guide for Debian 6.0 for instructions regarding that update.
Requirements
- An Open-Xchange Server installation v6.22.1 or later. This update guide is valid for a system installed through our Download and Installation Guide for Debian GNU/Linux 6.0 (Squeeze)
- If you have custom packages done by Open-Xchange, please discuss with your Open-Xchange contact when these packages are available for OX Appsuite 7. 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 v7.0 Packaging Changes
- If you have custom plugins written by yourself which depend on Open-Xchange Server OSGI bundles, check the pages v7.0 Packaging Changes and v7.0 Necessary Code Changes for changes you might need to do.
- Custom packages built for 6.22.1 or earlier might not work with OX Appsuite 7.0.
- As for every update we strongly recommend that you make a backup of your system(s) before you proceed.
Update Open-Xchange Repositories
We start by adding some Appsuite repos to our sources.list.
# adjust this to some final repo location cat >/etc/apt/sources.list.d/ox-appsuite.list <<EOF deb http://buildservice.oxoe.int/repos/backend-release-7.0.1/DebianSqueeze/ / deb http://buildservice.oxoe.int/repos/frontend-release-7.0.1/DebianSqueeze/ / EOF
Then it continues with the straightforward
# apt-get update # apt-get upgrade
For all config files, chose to install 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. In my case that looked good (mail.properties, imapauth.properties settings kept preserved.)
# vi /opt/open-xchange/etc/cluster.properties com.openexchange.cluster.name=oxcluster
# service open-xchange stop # service open-xchange start
Then connect to the OX6 GUI. First connection try says: Error: updating database, try later. The second try success, GUI looks good.
Next step is to add the Appsuite GUI.
# apt-get install open-xchange-appsuite open-xchange-appsuite-backend open-xchange-appsuite-manifest
It them remains to adjust apache's default.conf as well as proxy_ajp.conf.
Basically you need to merge the OX6 and Appsuite versions of those files. This leave enough room to screw things up. Thus I paste my resulting versions of those files here.
# default <VirtualHost *:80> ServerAdmin webmaster@localhost DocumentRoot /var/www/ <Directory /var/www/> Options Indexes FollowSymLinks MultiViews AllowOverride None Order allow,deny allow from all RedirectMatch ^/$ /appsuite/ </Directory> <Directory /var/www//appsuite> Options None +SymLinksIfOwnerMatch AllowOverride Indexes FileInfo </Directory> ErrorLog ${APACHE_LOG_DIR}/error.log # Possible values include: debug, info, notice, warn, error, crit, # alert, emerg. LogLevel warn CustomLog ${APACHE_LOG_DIR}/access.log combined # deflate AddOutputFilterByType DEFLATE text/html text/plain text/javascript application/javascript text/css text/xml application/xml text/x-js application/x-javascript # pre-compressed files AddType text/javascript .jsz AddType text/css .cssz AddType text/xml .xmlz AddType text/plain .po AddEncoding gzip .jsz .cssz .xmlz SetEnvIf Request_URI "\.(jsz|cssz|xmlz)$" no-gzip ExpiresActive On <Location /ox6> # Expires (via ExpiresByType to override global settings) ExpiresByType image/gif "access plus 6 months" ExpiresByType image/png "access plus 6 months" ExpiresByType image/jpg "access plus 6 months" ExpiresByType image/jpeg "access plus 6 months" ExpiresByType text/css "access plus 6 months" ExpiresByType text/html "access plus 6 months" ExpiresByType text/xml "access plus 6 months" ExpiresByType text/javascript "access plus 6 months" ExpiresByType text/x-js "access plus 6 months" ExpiresByType application/x-javascript "access plus 6 months" ExpiresDefault "access plus 6 months" Header append Cache-Control "private" Header unset Last-Modified Header unset Vary # Strip version RewriteEngine On RewriteRule v=\w+/(.+) $1 [L] # Turn off ETag Header unset ETag FileETag None </Location> <Location /ox6/ox.html> ExpiresByType text/html "now" ExpiresDefault "now" Header unset Last-Modified Header set Cache-Control "no-store, no-cache, must-revalidate, post-check=0, pre-check=0" # Turn off ETag Header unset ETag FileETag None </Location> <Location /ox6/index.html> ExpiresByType text/html "now" ExpiresDefault "now" Header unset Last-Modified Header set Cache-Control "no-store, no-cache, must-revalidate, post-check=0, pre-check=0" # Turn off ETag Header unset ETag FileETag None </Location> </VirtualHost>
# proxy-ajp.conf # Please note that the servlet path to the soap API has changed: <Location /webservices> # restrict access to the soap provisioning API Order Deny,Allow Deny from all Allow from 127.0.0.1 192.168 # you might add more ip addresses / networks here # Allow from 192.168 10 172.16 </Location> # the old path is kept for compatibility reasons <Location /servlet/axis2/services> # restrict access to the soap provisioning API Order Deny,Allow Deny from all Allow from 127.0.0.1 192.168 # you might add more ip addresses / networks here # Allow from 192.168 10 172.16 </Location> <IfModule mod_proxy_ajp.c> ProxyRequests Off <Proxy balancer://oxcluster> Order deny,allow Allow from all # multiple server setups need to have the hostname inserted instead localhost BalancerMember ajp://localhost:8009 timeout=100 smax=0 ttl=60 retry=60 loadfactor=50 route=OX1 # Enable and maybe add additional hosts running OX here # BalancerMember ajp://oxhost2:8009 timeout=100 smax=0 ttl=60 retry=60 loadfactor=50 route=OX2 ProxySet stickysession=JSESSIONID </Proxy> # OX AppSuite frontend <Proxy /appsuite/api> ProxyPass balancer://oxcluster/ajax </Proxy> <Proxy /ajax> ProxyPass balancer://oxcluster/ajax </Proxy> <Proxy /servlet> ProxyPass balancer://oxcluster/servlet </Proxy> <Proxy /infostore> ProxyPass balancer://oxcluster/infostore </Proxy> <Proxy /publications> ProxyPass balancer://oxcluster/publications </Proxy> <Proxy /Microsoft-Server-ActiveSync> ProxyPass balancer://oxcluster/Microsoft-Server-ActiveSync </Proxy> <Proxy /usm-json> ProxyPass balancer://oxcluster/usm-json </Proxy> <Proxy /webservices> ProxyPass balancer://oxcluster/webservices </Proxy> </IfModule>
After this, stop and start the apache2 and open-xchange services. Then you should be able to use the Appsuite UI. (I again encountered a "Upgrading database, try again later" message on the first login try.)