AppSuite:Upgrade from 6.22 Debian 6.0: Difference between revisions

From Open-Xchange
No edit summary
No edit summary
Line 35: Line 35:


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

Revision as of 13:01, 8 February 2013

This example describes updating some OX 6.22 installation to Appsuite. The OX6 installation used in this example uses the IMAP authentication plugin.

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

In my example this upgrades the following packages:

open-xchange open-xchange-admin open-xchange-ajp open-xchange-authentication-imap open-xchange-authorization-standard open-xchange-cluster-discovery-mdns
 open-xchange-core open-xchange-imap open-xchange-mailfilter open-xchange-osgi open-xchange-smtp open-xchange-themes-default open-xchange-xerces-sun

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