AppSuite:Parallel UISupport OX6 AppSuite RHEL 6 CentOS 6

From Open-Xchange

TODO:

  • verify the version numbers: 6.22.2 for OX6 and 7.0.2 of OX App Suite
  • Add some disclaimer that plugins require dedicated versions for OX6 and App Suite in the requirements section?
  • verify repo locationhttp://software.open-xchange.com/OX6/6.22/frontend/RHEL6/ ? Or OX6/stable? or something else?
  • I was unable to get one single unanimous answer on how to correctly write the product name of the product with the code name OX7. I used OX App Suite in this document. Please search/replace if this is not correct.
  • verify this logging adjustment for apache. in my centos box the syntax ${APACHE_LOG_DIR}/error.log works not. however, it is not from me, it is from install guide in wiki

Add OX6 UI to an OX App Suite Installation

This document outlines the steps required to add an OX6 UI to an OX App Suite installation.

Supported OX Versions

Running parallel UIs (OX6 and OX App Suite) is supported beginning with OX6 version 6.22.2 (backend version 7.0.2) and OX App Suite version 7.0.2.

Requirements

Add Open-Xchange Repository

We start by adding some OX6 frontend repos to our yum repos.

# /etc/yum.repos.d/ox.repo
[ox-frontend]
name=Open-Xchange-frontend
baseurl=http://software.open-xchange.com/OX6/6.22/frontend/RHEL6/
gpgkey=http://software.open-xchange.com/oxbuildkey.pub
enabled=1
gpgcheck=1
metadata_expire=0m

Updating repositories and install packages

Install the OX6 frontend packages.

$ yum install open-xchange-gui

This will install the OX6 fronted packages. (OX App Suite frontend package names start with open-xchange-appsuite.)

Configure services

Since we are only adding a frontend, there is nothing to change in the configuration of the backend servers, the database, mail, or such. It is only required to adjust the apache web server configuration in the file /etc/apache2/sites-available/default.

Basically we need to merge the OX App Suite and OX6 versions of this file. A sample is given in the following.

# /etc/apache2/sites-available/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>

That's it. It should now be able to access the OX6 frontend using the location /ox6/ in the request.