Multiserver Installation

Exclusive offer: get 50% off this eBook here
Learning Zimbra Server Essentials

Learning Zimbra Server Essentials — Save 50%

Learn to use the robust Zimbra server like a pro using this practical, hands-on guide with this book and ebook

$23.99    $12.00
by Abdelmonam Kouka | October 2013 | Open Source

In this article by Abdelmonam Kouka, the author of the book Learning Zimbra Server Essentials, we will cover some important topics which will help us in the installation of the Zimbra server in a multiserver environment.

The topics covered in this article are as follows:

  • Knowing the prerequisites for Zimbra multiserver installation
  • Preparing the environment

(For more resources related to this topic, see here.)

The prerequisites for Zimbra

Let us dive into the prerequisites for Zimbra:

  • Zimbra supports only 64-bit LTS versions of Ubuntu, release 10.04 and above. If you would like to use a 32-bit version, you should use Ubuntu 8.04.x LTS with Zimbra 7.2.3.
  • Having a clean and freshly installed system is preferred for Zimbra; it requires a dedicated system and there is no need to install components such as Apache and MySQL since the Zimbra server contains all the components it needs. Note that installing Zimbra with another service (such as a web server) on the same server can cause operational issues.
  • The dependencies (libperl5.14, libgmp3c2, build-essential, sqlite3, sysstat, and ntp) should be installed beforehand.
  • Configure a fixed IP address on the server.
  • Have a domain name and a well-configured DNS (A and MX entries) that points to the server.
  • The system clocks should be synced on all servers.
  • Configure the file /etc/resolv.conf on all servers to point at the server on which we installed the bind (it can be installed on any Zimbra server or on a separate server). We will explain this point in detail later.

Preparing the environment

Before starting the Zimbra installation process, we should prepare the environment. In the first part of this section, we will see the different possible configurations and then, in the second part, we will present the needed assumptions to apply the chosen configuration.

Multiserver configuration examples

One of the greatest advantages of Zimbra is its scalability; we can deploy it for a small business with few mail accounts as well as for a huge organization with thousands of mail accounts.

There are many possible configuration options; the following are the most used out of those:

  • Small configuration: All Zimbra components are installed on only one server.
  • Medium configuration: Here, LDAP and message store are installed on one server and Zimbra MTA on a separate server. Note here that we can use more Zimbra MTA servers so we can scale easier for large incoming or outgoing e-mail volume.
  • Large configuration: In this case, LDAP will be installed on a dedicated server and we will have multiple mailbox and MTA servers, so we can scale easier for a large number of users.
  • Very large configuration: The difference between this configuration and large one is the existence of an additional LDAP server, so we will have a Master LDAP and its replica.

We choose the medium configuration; so, we will install LDAP and mailbox in one server and MTA on the other server.

Install different servers in the following order (for medium configuration, 1 and 2 are combined in only one step):

1. First of all, install and configure the LDAP server.

2. Then, install and configure Zimbra mailbox servers.

3. Finally, install Zimbra MTA servers and finish the whole installation configuration.

New installations of Zimbra limit spam/ham training to the first installed MTA. If you uninstall or move this MTA, you should enable spam/ham training on another MTA as one host should have this enabled to run zmtrainsa --cleanup. To do this, execute the following command:

zmlocalconfig -e zmtrainsa_cleanup_host=TRUE


In this article, we will use some specific information as input in the Zimbra installation process, which, in most cases, will be different for each user. Therefore, we will note some of the most redundant ones in this section. Remember that you should specify your own values rather than using the arbitrary values that I have provided. The following is the list of assumptions used :

  • OS version: ubuntu-12.04.2-server-amd64
  • Zimbra version: zcs-8.0.3_GA_5664.UBUNTU12_64.20130305090204
  • MTA server name: mta
  • MTA hostname:
  • Internet domain:
  • MTA server IP address:
  • MTA server IP subnet mask:
  • MTA server IP gateway:
  • Internal DNS server:
  • External DNS server:
  • MTA admin ID: abdelmonam
  • MTA admin Password: Z!mbra@dm1n
  • Zimbra admin Password: zimbrabook
  • MTA server name: ldap
  • MTA hostname:
  • LDAP server IP address:
  • LDAP server IP subnet mask:
  • LDAP server IP gateway:
  • Internal DNS server:
  • External DNS server:
  • LDAP admin ID: abdelmonam
  • LDAP admin password: Z!mbra@dm1n

To be able to follow the steps described in the next sections, especially each time we need to perform a configuration, the reader should know how to harness the vi editor. If not, you should develop your skill set for using the vi editor or use another editor instead.

You can find good basic training for the vi editor at

System requirements

For the various system requirements, please refer to the following link:

If you are using another version of Zimbra, please check the correct requirements on the Zimbra website.

Ubuntu server installation

  1. First of all, choose the appropriate language.
  2. Choose Install Ubuntu Server and then press Enter.
  3. When the installation prompts you to provide a hostname, configure only a one-word hostname; in the Assumptions section, we've chosen ldap for the LDAP and mailstore server and mta for the MTA server—don't give the fully qualified domain name (for example, On the next screen that calls for the domain name, assign it (without the hostname).
  4. The hard disk setup is simple if you are using a single drive; however, in the case of a server, it's not the best way to do things. There are a lot of options for partitioning your drives. In our case, we just make a little partition (2x RAM) for swapping, and what remains will be used for the whole system. Others can recommend separate partitions for mailstore, system, and so on. Feel free to use the recommendation you want depending on your IT architecture; use your own judgment here or ask your IT manager.
  5. After finishing the partitioning task, you will be asked to enter the username and password; you can choose what you want except admin and zimbra.
  6. When asked if you want to encrypt the home directory, select No and then press Enter.
  7. Press Enter to accept an empty entry for the HTTP proxy.
  8. Choose Install security updates automatically and then press Enter.
  9. On the Software Selection screen, you must select the DNS Server and the OpenSSH Server choices for installation; no other options. This will authorize remote administration (SSH) and mandatorily set up bind9 for a split DNS. For bind9, you can install it on only one server, which is what we've done in this article.
  10. Select Yes and then press Enter to install the GRUB boot loader to the master boot record.

The installation should have completed successfully.

Preparing Ubuntu for Zimbra installation

In order to prepare the Ubuntu for the Zimbra installation, the following steps need to be performed:

  1. Log in to the newly installed system and update and upgrade Ubuntu using the following commands:

    sudo apt-get update sudo apt-get upgrade

  2. Install the dependencies as follows:

    sudo apt-get install libperl5.14 libgmp3c2 build-essential sqlite3 sysstat ntp

  3. Zimbra recommends (but there's no obligation) to disable and remove Apparmor.

    sudo /etc/init.d/apparmor stop sudo /etc/init.d/apparmor teardown sudo update-rc.d -f apparmor remove sudo aptitude remove apparmor apparmor-utils

  4. Set the static IP for your server as follows:

  5. Open the network interfaces file using the following command:

    sudo vi /etc/network/interfaces

    Then replace the following line:

    iface eth0 inet dhcp


    iface eth0 inet static address netmask gateway network broadcast

    Restart the network process by typing in the following:

    sudo /etc/init.d/networking restart

    Sanity test!

    To verify that your network configuration is configured properly, type in ifconfig and ensure that the settings are correct. Then try to ping any working website (such as to see if that works.

On each server, pay attention when you set the static IP address ( for the LDAP server and for the MTA server).


In this article, we learned the prerequisites for Zimbra multiserver installation and preparing the environment for the installation of the Zimbra server in a multiserver environment.

Resources for Article :

Further resources on this subject:

Learning Zimbra Server Essentials Learn to use the robust Zimbra server like a pro using this practical, hands-on guide with this book and ebook
Published: October 2013
eBook Price: $23.99
Book Price: $39.99
See more
Select your format and quantity:

About the Author :

Abdelmonam Kouka

Abdelmonam Kouka is a Tunisian computer engineer. He got his engineering diploma in computer science in 2007 from one of the best engineering schools in Tunisia (ENSI), After this he got a master's degree in Information Security from the same school (ENSI) in 2009 and a master's degree in free and open source software from ISI/UVT in 2011. Starting from 2012 and until writing this book, he was a student at master level in Innovation Management ( project).

He is not only a nonstop student; in fact, after getting his engineering degree in 2007, and in parallel to his masters marathon, he started working as a software developer in HR Access, and then a Zimbra consultant in another company. After that he came back to development with Alcatel-Lucent as a Java/JEE developer to finish with Alcatel-Lucent as an IP/MPLS Expert. He left Alcatel-Lucent in December 2012 to launch in partnership with his friend Ayed Akrout, their own startup TAC-TIC (, which provides ICT services such as software development, open source consulting, and IP/MPLS engineering and support.

Starting with his engineering study period and during all his professional experience, he was an open source activist, a member/co-founder of Ubuntu-tn community, Sabily community, and APOS association; he was also a member of Linux Arabic Community, Arabeyes, CULLT, DFSA, and a lot of other open source clubs and associations and initiatives.

Books From Packt

Zimbra: Implement, Administer and Manage
Zimbra: Implement, Administer and Manage

Koha 3 Library Management System
Koha 3 Library Management System

OpenVPN: Building and Integrating Virtual Private Networks
OpenVPN: Building and Integrating Virtual Private Networks

BlackBerry Enterprise Server for Microsoft® Exchange
BlackBerry Enterprise Server for Microsoft® Exchange

Building Telephony Systems With Asterisk
Building Telephony Systems With Asterisk

trixbox CE 2.6
trixbox CE 2.6

Django 1.0 Website Development
Django 1.0 Website Development

Designing and Implementing Linux Firewalls and QoS using netfilter, iproute2, NAT and l7-filter
Designing and Implementing Linux Firewalls and QoS using netfilter, iproute2, NAT and l7-filter

Code Download and Errata
Packt Anytime, Anywhere
Register Books
Print Upgrades
eBook Downloads
Video Support
Contact Us
Awards Voting Nominations Previous Winners
Judges Open Source CMS Hall Of Fame CMS Most Promising Open Source Project Open Source E-Commerce Applications Open Source JavaScript Library Open Source Graphics Software
Open Source CMS Hall Of Fame CMS Most Promising Open Source Project Open Source E-Commerce Applications Open Source JavaScript Library Open Source Graphics Software