Difference between revisions of "AppSuite:Parallel UISupport OX6 AppSuite RHEL 6 CentOS 6"

(Updating repositories and install packages)
(Configure services)
Line 39: Line 39:
 
= Configure services =
 
= 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 <code>/etc/apache2/sites-available/default</code>.
+
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 <code>/etc/httpd/conf.d/ox.conf</code>.
  
Basically we need to merge the  [[AppSuite:Open-Xchange_Installation_Guide_for_Debian_6.0#Configure_services|OX App Suite]] and [[Open-Xchange_Installation_Guide_for_Debian_6.0_622#Configure_services|OX6]] versions of this file. A sample is given in the following.
+
Basically we need to merge the  [[AppSuite:Open-Xchange_Installation_Guide_for_RHEL6#Configure_services|OX App Suite]] and [[Open-Xchange_Installation_Guide_for_RHEL6_622#Configure_services|OX6]] versions of this file. A sample is given in the following.
  
  # /etc/apache2/sites-available/default
+
  # /etc/httpd/conf.d/ox.conf
 
  <VirtualHost *:80>
 
  <VirtualHost *:80>
        ServerAdmin webmaster@localhost
+
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
+
DocumentRoot /var/www/html
        AddType text/javascript .jsz
+
        AddType text/css .cssz
+
        <Directory /var/www/html>
        AddType text/xml .xmlz
+
                Options Indexes FollowSymLinks MultiViews
        AddType text/plain .po
+
                AllowOverride None
 
+
                Order allow,deny
        AddEncoding gzip .jsz .cssz .xmlz
+
                allow from all
        SetEnvIf Request_URI "\.(jsz|cssz|xmlz)$" no-gzip
+
                RedirectMatch ^/$ /appsuite/
 
+
        </Directory>
        ExpiresActive On
+
 
 
+
        <Directory /var/www/html/appsuite>
        <Location /ox6>
+
                Options None +SymLinksIfOwnerMatch
                # Expires (via ExpiresByType to override global settings)
+
                AllowOverride Indexes FileInfo
                ExpiresByType image/gif "access plus 6 months"
+
        </Directory>
                ExpiresByType image/png "access plus 6 months"
+
                ExpiresByType image/jpg "access plus 6 months"
+
        # deflate
                ExpiresByType image/jpeg "access plus 6 months"
+
        AddOutputFilterByType DEFLATE text/html text/plain text/javascript application/javascript text/css text/xml application/xml text/x-js application/x-javascript
                ExpiresByType text/css "access plus 6 months"
+
                ExpiresByType text/html "access plus 6 months"
+
# pre-compressed files
                ExpiresByType text/xml "access plus 6 months"
+
AddType text/javascript .jsz
                ExpiresByType text/javascript "access plus 6 months"
+
AddType text/css .cssz
                ExpiresByType text/x-js "access plus 6 months"
+
AddType text/xml .xmlz
                ExpiresByType application/x-javascript "access plus 6 months"
+
        AddType text/plain .po
                ExpiresDefault "access plus 6 months"
+
                Header append Cache-Control "private"
+
AddEncoding gzip .jsz .cssz .xmlz
                Header unset Last-Modified
+
SetEnvIf Request_URI "\.(jsz|cssz|xmlz)$" no-gzip
                Header unset Vary
+
                # Strip version
+
ExpiresActive On
                RewriteEngine On
+
                RewriteRule v=\w+/(.+) $1 [L]
+
<Location /ox6>
                # Turn off ETag
+
        # Expires (via ExpiresByType to override global settings)
                Header unset ETag
+
        ExpiresByType image/gif "access plus 6 months"
                FileETag None
+
        ExpiresByType image/png "access plus 6 months"
        </Location>
+
        ExpiresByType image/jpg "access plus 6 months"
 
+
        ExpiresByType image/jpeg "access plus 6 months"
        <Location /ox6/ox.html>
+
        ExpiresByType text/css "access plus 6 months"
                ExpiresByType text/html "now"
+
        ExpiresByType text/html "access plus 6 months"
                ExpiresDefault "now"
+
        ExpiresByType text/xml "access plus 6 months"
                Header unset Last-Modified
+
        ExpiresByType text/javascript "access plus 6 months"
                Header set Cache-Control "no-store, no-cache, must-revalidate, post-check=0, pre-check=0"
+
        ExpiresByType text/x-js "access plus 6 months"
                # Turn off ETag
+
        ExpiresByType application/x-javascript "access plus 6 months"
                Header unset ETag
+
        ExpiresDefault "access plus 6 months"
                FileETag None
+
        Header append Cache-Control "private"
        </Location>
+
        Header unset Last-Modified
 
+
        Header unset Vary
        <Location /ox6/index.html>
+
        # Strip version
                ExpiresByType text/html "now"
+
        RewriteEngine On
                ExpiresDefault "now"
+
        RewriteRule v=\w+/(.+) $1 [L]
                Header unset Last-Modified
+
        # Turn off ETag
                Header set Cache-Control "no-store, no-cache, must-revalidate, post-check=0, pre-check=0"
+
        Header unset ETag
                # Turn off ETag
+
        FileETag None
                Header unset ETag
+
</Location>
                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>
 
  </VirtualHost>
 +
 +
Restart the web server:
 +
 +
$ /etc/init.d/httpd restart
  
 
That's it. It should now be able to access the OX6 frontend using the location <code>/ox6/</code> in the request.
 
That's it. It should now be able to access the OX6 frontend using the location <code>/ox6/</code> in the request.

Revision as of 13:22, 25 February 2013

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/httpd/conf.d/ox.conf.

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

# /etc/httpd/conf.d/ox.conf
<VirtualHost *:80>
	ServerAdmin webmaster@localhost

	DocumentRoot /var/www/html

        <Directory /var/www/html>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride None
                Order allow,deny
                allow from all
                RedirectMatch ^/$ /appsuite/
        </Directory>
  
        <Directory /var/www/html/appsuite>
                Options None +SymLinksIfOwnerMatch
                AllowOverride Indexes FileInfo
        </Directory>

        # 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>

Restart the web server:

$ /etc/init.d/httpd restart

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