ZimbraApache

Revision as of 05:20, 24 December 2007 by Mmorse (talk | contribs)

Running apache and zimbra webmail on the same host

Apache over http (port 80) and Zimbra over https (port 443)

If you don't need to have non-SSL (http/port 80) access to zimbra webmail and you don't need to have SSL (https/port 443) access to apache, configure zimbra to only listen on https port 443.

su - zimbra
zmtlsctl https
tomcat restart

That's it! Now apache will serve websites (presumably over port 80), and zimbra will serve webmail over port 443.


Sharing http (port 80) and/or https (port 443) between Zimbra and Apache

If you do need to have access to both zimbra and apache over the same port, use this guide.

Q: How to run Apache + Zimbra on the same host without having to use a weird port to access any of them ?

A: Use mod_proxy ;)

This wiki page is based on this zimbra forums thread: http://www.zimbra.com/forums/showthread.php?t=2476 (I am using a Debian Sarge).

You must have several hostnames for your server (for example zimbra.domain.com and www.domain.com).

First of all, change zimbraMailPort, and recreate zimbraMtaAuthHost and restart zimbra so our apache can listen on 80, do it like this :

  zmprov ms zimbra.mydom.com zimbraMailPort 81
  
  zmprov ms zimbra.mydom.com zimbraMtaAuthHost zimbra.mydom.com
  
  /etc/init.d/zimbra restart


Then, install your prefered apache version (1.3 / 2) and add the proxy module :

for apache 1.3 :

  echo "LoadModule proxy_module /usr/lib/apache/1.3/libproxy.so" >> /etc/apache/modules.conf
  
  apachectl restart


for apache 2 :

  ln -s /etc/apache2/mods-available/proxy.load /etc/apache2/mods-enabled/proxy.load
  
  ln -s /etc/apache2/mods-available/proxy.conf /etc/apache2/mods-enabled/proxy.conf
  
  /etc/init.d/apache2 restart


Now we can add our virtualhosts.


for apache 1.3, go into /etc/apache/conf.d/ and create/edit vhosts.conf :

[for apache 2 go into /etc/apache2/conf.d/]

  NameVirtualHost *:80
  
  
  
  <VirtualHost *:80>
  
  ServerAdmin dz@mydom.com
  
  DocumentRoot /var/www/myweb
  
  ServerName www.mydom.com
  
  ErrorLog /var/log/apache/www-error.log
  
  CustomLog /var/log/apache/www-access.log common
  
  </VirtualHost>
  
  
  
  <VirtualHost *:80>
  
  ServerName zimbra.mydom.com
  
  ServerAdmin dz@mydom.com
  
  ProxyPass / http://zimbra.mydom.com:81/
  
  ProxyPassReverse / http://zimbra.mydom.com:81/
  
  ErrorLog /var/log/apache/zimbra-error.log
  
  CustomLog /var/log/apache/zimbra-access.log common
  
  </VirtualHost>

To do mod_proxy on the admin side do something along the following lines in httpd.conf

<VirtualHost *:80>
ServerName zimbras.domain.tld
ServerAdmin admin@domain.tld
SSLProxyEngine On
ProxyPass / https://zimbra.domain.tld:7071/    (the hostname of the real zimbra server)
ProxyPassReverse / https://zimbra.domain.tld:7071/ (the hostname of the real zimbra server)
ErrorLog /var/log/zimbras.domain-error.log
CustomLog /var/log/zimbras.domain-access.log combined
CustomLog /var/log/all-access.log combined     (something i have on all my hosts)
 </VirtualHost>


Almost done.

Restart everythings.

Test your new hosts.

Enjoy Zimbra ;)

Other links:

Zimbra_with_Apache_using_mod_jk_-_mod_proxy_-_mod_proxy_ajp

Using_Tomcat_with_Apache_(mod_jk)

Jump to: navigation, search