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

Version 1.0
Author: Falko Timme
Follow me on Twitter
Last edited 10/19/2012

This tutorial shows how to prepare an Ubuntu 12.10 (Quantal Quetzal) 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 12.10):

Share this page:

25 Comment(s)

Add comment


From: GoldMan at: 2013-06-15 21:16:12


I installed the ubuntu web server like in this lesson.

All work well. But when I send emails to some servers like and some other I get this answer:
550-Message rejected. Spamscore threshold (100 points) reached. Spamscore is 550-110! Details: Suspicious e-mail address; Suspected PTR DNS record points 550 to dynamic IP pool; Untrusted domain zone; Suspicious HELO argument; (in reply to RCPT TO command)

My domain is

Can somebody help me? please what I do incorrectly?

From: Jaideep at: 2012-12-23 05:08:49

At the end of step 7, My system is showing "server" in hostname, and "" in hostname -f.

 what should  I do now.

 Pls help me in this.

and , Thanks for this grt work. 

From: Anonymous at: 2013-02-17 17:31:37

Check that you have the rights to write to the file or that you are using the sudo command (ex. sudo echo > /etc/hostname)

From: Lordi at: 2012-10-26 07:53:41

by apt-get install i now see phpMyAdmin to call for install



apt-get install postfix postfix-mysql postfix-doc mysql-client mysql-server openssl getmail4 rkhunter binutils dovecot-imapd dovecot-pop3d dovecot-mysql dovecot-sieve sudo


From: Anonymous at: 2012-11-10 22:11:31

i have many projects running on php 5.3 but i have problems with these projects on php 5.4. i followed this tutorial because i am planning to build an new cms engine on php 5.4. everything is working very well and i'm very happy with this tutorial but i have problems with multiple php versions. php 5.4 is working good but if i add a website in ispconfig and i put this website on php-fpm and php version 5.3 i always get an error 403 forbidden when i browse to the website. first i thought it whas maybe a mis configuration of php 5.3 but i tested with php-fpm and version 5.4 and have the same problem. i think it is a problem with apache. if i add a website and put it on fast-cgi with default php version everything works ok.

 it would be great if someone could help me with this problem.

From: Rakesh at: 2013-01-01 20:33:02

for those who might face 'inserv: command not found', do this -

 ln -s /usr/lib/insserv/insserv /sbin/insserv

From: Anonymous at: 2013-03-25 18:58:13

insserv still saying command not found...I know its there...I looked....? Any suggestions?

From: mboy at: 2013-01-15 17:33:53

 I sorted my fix out .. for php


  ./configure --prefix=/opt/php-5.3.18 --with-pdo-pgsql --with-zlib-dir --with-freetype-dir --enable-fpm --enable-mbstring --with-libxml-dir=/usr --enable-soap --enable-calendar --with-curl --with-mcrypt --with-zlib --with-gd --with-pgsql --disable-rpath --enable-inline-optimization --with-bz2 --with-zlib --enable-sockets --enable-sysvsem --enable-sysvshm --enable-pcntl --enable-mbregex --with-mhash --enable-zip --with-pcre-regex --with-mysql --with-pdo-mysql --with-mysqli --with-jpeg-dir=/usr --with-png-dir=/usr --enable-gd-native-ttf --with-openssl --with-fpm-user=www-data --with-fpm-group=www-data --with-libdir=/lib/i386-linux-gnu

From: Graham at: 2013-02-06 18:51:24

Thanks myboy, I was getting the "configure: error: Cannot find libmysqlclient under /usr. Note that the MySQL client library is not bundled anymore" , and your configure with --with-libdir=/lib/i386-linux-gnu fixed the error for me.

Many thanks!

From: Putter at: 2013-04-13 20:25:00

Thanks for an excellent guide.

The --with-libdir parameter worked for me too! 


From: AJ at: 2013-02-18 16:44:18

I have compiled and installed additional php5.3.18 as above, however, I have problem starting the service.
It tells me it fails to start after approx 60secs, does not create the PID in /opt/php-5.3.18/var/run yet the processes do spawn and port is bound. I cannot then stop or restart the service and must manually kill.

From: chuck at: 2013-03-12 05:36:14

Thank you for this wonderful tutorial!

However, I have been closely following instructions and doing everything in the terminal. I skipped 14.3 because I don't need to worry about other versions of php. But then the tutorial all of a sudden shows ISPConfig in a browser and I have no idea how to get there because all I have in front of me is a terminal... ???

 You really have to spell everything out for us noobs ;P

From: Steve Metzler at: 2013-07-24 23:08:17

Has any one come across not being able to log on to ISPconfig 3 after installing the server to boot up in virtual box? I'm stumped. I have forwarded the 8080 port network settings are the same, I just created a bridge and a tap but I can not log into ISP. Help please!

From: Anonymous at: 2013-09-02 17:35:57

May I know the reason behind ISPConfig screen here in this page even before you installed it?! 

From: Shella at: 2013-04-03 13:36:02

Hi there,

what if I'd like to change the standard 21 port to another one?

Any tips? I changed the value in /usr/local/ispconfig/server/lib/classes/

but I guess it's not enough... right?


From: Anonymous at: 2012-10-25 05:25:14

hi dear,

 I already installed ispconfig 3 use this tutorial.

I can't configure  change password plugin. i install this plugin  change_pass-3.0-1.4.0.tar.gz .

 but, this plugin is not working. please help!!!


 thanks for help.

From: eXtReMaL at: 2012-10-30 11:56:49

Great Guide !

But i have few questions . Why when i login using ftp or webdav it shows me huge tree of folders that are locked for access. Is there a way to hide them and leave only folders that works with service that user is using at moment ? I think that should be written somwhere inside of pureftpd and ssh configs

From: at: 2012-11-13 10:52:54


Thanks for tutorial!

Could you please improve it with instructions about how to install and configure DKIM (DomainKeys Identified Mail)?

Server works great, but there is problem with Google servers, because they requests SPF and DKIM...

 Thanks in advance!

From: Feby at: 2012-12-18 00:26:05

Hey man, great tutorial, but i have 1 req, can you insert roundcube in the tutorial? i've tried earlier to install it with apt-get but it seems smth went wrong cause the page wouldn't even load it just asked me to save it, added the .php type but still nothin'.

Anyways great tutorial, thanks

From: elricho at: 2013-02-20 14:00:06

I do all of this tutorial with a new and clean pc,  but when i try to install ispconfig3 I received that error,  No PHP MySQL functions available. What can i do ?
 Thanks so much !
Installation mode (standard,expert) [standard]:

Full qualified hostname (FQDN) of the server, eg server1.domain.tld  []:

No PHP MySQL functions available. Please ensure that the PHP MySQL module is loa              root@richoserver:/tmp/ispconfig3_install/install#

From: Andrew Christensen at: 2013-03-02 18:29:09

Did you ever find a solution to the "No PHP MySQL functions available" problem? I can't get past this part. I did the PHP CGI method as the FPM one didn't work for me (there were missing folders).

Thank you.

From: M3bis at: 2013-03-27 13:56:52

Same problem here! Any solutions?

From: elricho at: 2013-02-20 20:18:35

Excelent Guide !!!

 Thank's a lot ! 

From: Joao at: 2013-05-15 16:33:09

Excellent Tutorial!

Thanks a lot!

From: Yashaswi at: 2014-03-13 10:47:37

Thanks a lot. great tutorial and great forum. Keep up the good work.