The Perfect Server - Ubuntu 13.04 (Apache2, BIND, Dovecot, ISPConfig 3)

Version 1.0
Author: Falko Timme
Follow me on Twitter
Last edited 04/26/2013

This tutorial shows how to prepare an Ubuntu 13.04 (Raring Ringtail) server (with Apache2, BIND, Dovecot) for the installation of ISPConfig 3, and how to install ISPConfig 3. ISPConfig 3 is a webhosting control panel that allows you to configure the following services through a web browser: Apache or nginx web server, Postfix mail server, Courier or Dovecot IMAP/POP3 server, MySQL, BIND or MyDNS nameserver, PureFTPd, SpamAssassin, ClamAV, and many more. This setup covers Apache (instead of nginx), BIND (instead of MyDNS), and Dovecot (instead of Courier).

Please note that this setup does not work for ISPConfig 2! It is valid for ISPConfig 3 only!

I do not issue any guarantee that this will work for you!


1 Requirements

To install such a system you will need the following:


2 Preliminary Note

In this tutorial I use the hostname with the IP address and the gateway These settings might differ for you, so you have to replace them where appropriate.


3 The Base System

Insert your Ubuntu install CD into your system and boot from it. Select your language:

Then select Install Ubuntu Server:

Choose your language again (?):

Then select your location:

If you've selected an uncommon combination of language and location (like English as the language and Germany as the location, as in my case), the installer might tell you that there is no locale defined for this combination; in this case you have to select the locale manually. I select en_US.UTF-8 here:

Choose a keyboard layout (you will be asked to press a few keys, and the installer will try to detect your keyboard layout based on the keys you pressed):

The installer checks the installation CD, your hardware, and configures the network with DHCP if there is a DHCP server in the network:

Enter the hostname. In this example, my system is called, so I enter server1:

Create a user, for example the user Administrator with the user name administrator (don't use the user name admin as it is a reserved name on Ubuntu 13.04):

Share this page:

11 Comment(s)

Add comment


From: Ajith at: 2013-11-12 08:28:03

Dear sir,

Thanks for the post it was very usefully, I have setup a mail server in Ubuntu 13.04 server as per your post. I have a setup the server as a local only. my domain is and users are able to send mails from to, my question is can we change the mail server

1. to receive mails form outside

2.create two user group and allow one group to send mails to only

From: sant3001 at: 2013-05-03 19:04:09

Thanks for this wonderful tutorial. I believe the only thing missing here is cURL for PHP. When you open ISPConfig and go to ASP Installer it tells you that you don't have the PHP cURL extension.

I fixed it using this command:

sudo apt-get install curl libcurl3 libcurl3-dev php5-curl

And then I just restarted apache:

service apache2 restart

From: SkiOne at: 2013-05-10 16:56:17

The FCGI wrapper being installed is not supported by default in ubuntu 13.04 and the syntax used by the conf file doesn't match. If you get a client denied by server configuration install this:

 apt-get install libapache2-mod-fcgid

And the restart apache

From: Anonymous at: 2013-05-11 19:30:37

Yes,  as mentioned prior, thanks for this very detailed and very complete tutorial (actually a tour-de-force) on installing the ISPConfig software.

Along the way, many questions were answered as to 'what was what'....

I ordered/downloaded the manual. 

I probably will not do anything that makes the server become a 'public' site (it's really a VM).

The most I might to is have the server join a Win2003 domain or create what appear to be virtual sites in the Apache server (almost sound like IIS' virtual sites).

Again, Many Thanks for doing this.  A real help!!



From: Anonymous at: 2013-06-30 05:10:28

I followed this guide to the letter, twice, as I've followed several of these guides for older versions of Ubuntu and also using Nginx. They never fully work out for me.

This time whenever I went to my site, either through my domain name or through its LAN IP, all that would ever come up was SquirrelMail, which wouldn't even let me log in this time. ISPConfig3 would never come up, either, and I was at least able to get that up and running through past versions of this guide, both with Apache and Nginx. PHPMyAdmin worked.

I always enjoy the learning experience, though, despite the disappointment.

From: Anonymous at: 2013-07-23 23:21:10

I got the same issue, by removing this part below on page 6, I was able to get ISPConfig working on https not http, but I'm not able to log in to SquirrelMail !!!

  DocumentRoot /usr/share/squirrelmail

From: Kenny at: 2013-09-22 20:16:02

Here is the output I got:

 ubuntu@ip-10-0-0-226:/tmp/ispconfig3_install/install$ sudo quotacheck -avugm

sudo: unable to resolve host ip-10-0-0-226

quotacheck: Scanning /dev/disk/by-label/cloudimg-rootfs [/] done

quotacheck: Checked 11946 directories and 151360 files

ubuntu@ip-10-0-0-226:/tmp/ispconfig3_install/install$ sudo quotaon -avug

sudo: unable to resolve host ip-10-0-0-226

quotaon: using // on /dev/disk/by-label/cloudimg-rootfs [/]: No such process

quotaon: Quota format not supported in kernel.

quotaon: using //quota.user on /dev/disk/by-label/cloudimg-rootfs [/]: No such process

quotaon: Quota format not supported in kernel.


Using Ubuntu 13.04 in Amazon EC2.  Worked fine in Debian Wheezy in EC2.  Do I need to do something with my fstab?  Debian takes up less space and uses less memory anyway, so I think I'm just going to use Debian.  I just wanted to try both.

From: at: 2014-01-07 04:28:48
From: Tweexter at: 2013-10-13 23:16:11

I seem to be stuck at in the SquirrelMail section regarding the additions to the squirrelmail.conf file.  

 Whenever i try to start apache2 I get an error "AddType requires at least two arguments, a mime type followed by one or more file extensions".  

To make sure I got it right I straight up copy and pasted the code from the guide to my Putty window and compared it visually.  


From: Tweexter at: 2013-10-14 17:35:32

Disregard, it was my own stupid mistake.  Somehow had the same AddType line at the top of the file, with no space before .php.  The entire line wasn't even supposed to be there, and I'm not even sure how it got there either.  Thanks for the great write up.  Can't wait to play with this a bit.  

From: at: 2013-10-22 14:37:19

There seems to be a typo in /etc/postfix/  If you edit this file you'll see the following on about line 60:

proxy_read_maps = $local_recipient_maps $mydestination $virtual_alias_maps $virtual_alias_domains $virtual_mailbox_maps $virtual_mailbox_domains $relay_recipient_maps $relay_domains $canonical_maps $sender_canonical_maps $recipient_canonical_maps $relocated_maps $transport_maps $mynetworks $virtual_mailbox_limit_maps

There is an extra word "limit" in "$virtual_mailbox_limit_maps".  Change this to "$virtual_mailbox_maps":

proxy_read_maps = $local_recipient_maps $mydestination $virtual_alias_maps $virtual_alias_domains $virtual_mailbox_maps $virtual_mailbox_domains $relay_recipient_maps $relay_domains $canonical_maps $sender_canonical_maps $recipient_canonical_maps $relocated_maps $transport_maps $mynetworks $virtual_mailbox_maps

Then restart Postfix:

/etc/init.d/postfix restart