The Perfect Server - CentOS 6.5 x86_64 (Apache2, Dovecot, ISPConfig 3)

Version 1.0
Author: Falko Timme, updated by Srijan Kishore

This tutorial shows how to prepare a CentOS 6.5 x86_64 server 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 web server, Postfix mail server, MySQL, BIND nameserver, PureFTPd, SpamAssassin, ClamAV, Mailman, and many more. Since version 3.0.4, ISPConfig comes with full support for the nginx web server in addition to Apache; this tutorial covers the setup of a server that uses Apache, not nginx.

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 Install The Base System

Boot from your first CentOS 6.4 DVD (DVD 1). Select Install or upgrade an existing system:

It can take a long time to test the installation media so we skip this test here:

The welcome screen of the CentOS installer appears. Click on Next:

Choose your language next:

Select your keyboard layout:

I assume that you use a locally attached hard drive, so you should select Basic Storage Devices here:

You might see the following warning - Error processing drive. If you see this click on the Re-initialize all button to proceed:

Fill in the hostname of the server (e.g., then click on the Configure Network button:

Share this page:

25 Comment(s)

Add comment

Please register in our forum first to comment.


By: kephra

I installed this Perfect Server onto two vps machines last year, and everything worked as planned.  I just tried installing it on a third vps and had a few issues.

system-config-firewall-ui errored with a dbus error message.  I had to 'service messagebus restart' to correct that.

Also, when installing phpMyAdmin, there was no file to edit.  Copying this file from a previous install caused a lot of errors when starting phpMyAdmin, although it did run.  Error messages were like:

$cfg['Servers'][$i]['pmadb'] ... not OK [ Documentation ] $cfg['Servers'][$i]['relation'] ... not OK [ Documentation ] General relation features: Disabled   $cfg['Servers'][$i]['table_info'] ... not OK [ Documentation ]

Display Features: Disabled


By: PacoW

Great tutorial, just did it on CentOS 6.6. ISPConfig site says Debian is recommended, but I want ISPConfig to manage OpenVZ containers too and can't install OpenVZ on Debian 7.8.0. Maybe someday I can... Can I expect weird stuff when using ISPConfig on CentOS instead of Debian?

A few things regarding my installation, perhaps some readers may benefit with it...

(1) CentOS 6.6 using a "Basic Server" install has a broken system-config-firewall-tui package. This can be solved by installing some missing dependencies:

# yum install system-config-firewall (yes, without the "tui")

I experienced a mysterious crash after doing this (something failed when shutting down the system) so I wasn't very confident about my installation. So I did this: a "Minimal" install, and when finished I manually installed the "Basic Server" packages like this:

# yum groupinstall "base" "console-internet" "core" "debugging" "directory-client" "hardware-monitoring" "java-platform" "large-systems" "network-file-system-client" "performance" "perl-runtime" "server-platform"

(2) RPMForge has renamed itself to RepoForge, and EPEL can be installed more easily (yum install epel-release). Don't forget to set EPEL's priority to 10.

(3) I was playing with my repo's priorities. I recommend: just don't. I installed the antivirus stuff from RepoForge instead of EPEL which caused the following command to fail:

# chkconfig --levels 235 clamd.amivisd on

...just because /etc/init.d/clamd.amivisd was missing.

By: PacoW

When installing PureFTPd one uncomments the line "TLS 1" in /etc/pure-ftpd/pure-ftpd.conf. This setting is lost after the last step of this howto (installing ISPConfig), so as a last step... uncomment it again and restart the PureFTPd service.

Or else... trouble connecting using FTP. :)

By: PacoW

Just discovered an easier workaround for failing system-config-firewall-tui on CentOS 6.6...

Just install CentOS as "Basic Server". When installed, first do "yum -y update" and reboot.

By: Lefteros

I've succesfuly setup the server and everything works like charm. Also installed vnc+xrdp to have remote desktop for like cloud use.

The thing is, from webmail and thunderbird using localhost from the vnc session my emails connect send and receive ok.

I can't connect from outside the server, i've started by testing SSL/TLS, and no encryption, plain password all ports for imap + smtp, nothing works when i try to connect from home. Maybe these ports are blocked thru the firewall (iptables), is there a way to check these out cause i'm out of ideas..

Please respond, thank you!

By: vijay

what is the default user name and password for squirrelmail ...


we have not configured it when installing. please help me

By: till

There is no default user or password. You login to squirrelmail with the email address and password of a mail account that you created in ISPConfig.

By: Gabri Shally

do ispconfig manage fail2ban config?i don't see any log came out from it,while i see a lot of failed attempt in /var/log/secure

By: till

No, ISPConfig is not managing the Fail2ban configuration.

By: Gabri Shally

creating certificate for pure-ftpd doesn't work. where does pure-ftpd load certificate?

By: Gabri Shally

the right setting for Pure-FTPd certificate location is /etc/pki/pure-ftpd/pure-ftpd.pem

By: till

Just follow the tutorial. Choosing a different path will cause the setup to fail later as ISPConfig expects the pure-ftpd certificate in the path that is used in this tutorial.

By: Bim

Actually when accessing the phpmyadmin, it said: You don't have permission to access /phpmyadmin on this server. What happend?

By: Aasif beg

Hi Bim,

I need to modify the file /etc/httpd/conf.d/phpMyAdmin.conf in order to allow remote users and add following Lines to reduce the error.

<Directory "/usr/share/phpMyAdmin/"> Options Indexes FollowSymLinks MultiViews AllowOverride all Order Allow,Deny Allow from all </Directory>


By: Greg

I have installed ISP Config but the iptables are not updated with the firewall rules set in ispconfig control panel.

Am I missing something?

By: dilip

I successfully installed ISPConfig 3 from the begining of the tutorial. when i try to browse https://:8080 then i am directed to the Apache default page rather than ispconfig login. help in it. My os is Centos 6.5.

By: rohit rai

because due to missing of virtual hosting in your server


By: Caesar

Correct link for suphp:


By: Denny

404 not found anyone have the new link ?

rpm --import

By: user

8 Quota

(If you have chosen a different partitioning scheme than I did, you must adjust this chapter so that quota applies to the partitions where you need it.)

It means that if have separated home partiton I should implement quota on "/home" partition? Right?

By: till

Yes and no. The /home partition is not used at all, so it does not need any quota. But if you have a separate /var partition, then you would have to enable quota for that.

By: comachada

 "Edit /etc/fstab and add ,usrjquota=aquota.user,,jqfmt=vfsv0 to the / partition (/dev/mapper/vg_server1-lv_root): "

If I have separated partition /home , /var should I implement quota for this partitions instead of " / " partition?

By: till

Add quota to the /var partition instead as the websites are located there. /home is not used on this setup.

By: Sam Hong

Sorry, newbie here.  There seems to be something worng with step 7: "rpm --import"   I get:

curl: (6) Couldn't resolve host ''

error: import read failed(2).

quick search shows the repositiry no longer exists, is there another?

Thank you

By: till

CentOS 6 is really old and outdated, don't use it anymore for new installations. Better use CentOS 7 if it has to be CentOS or even better Ubuntu 18.04 or Debian 10 which are easier to install and maintain.