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

Version 1.0
Author: Falko Timme
Follow me on Twitter

This tutorial shows how to prepare a CentOS 6.4 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:

Go to the Wired tab, select the network interface (probably eth0) and click on Edit...:

Mark the Connect automatically checkbox and go to the IPv4 Settings tab and select Manual in the Method drop-down menu. Fill in one, two, or three nameservers (separated by comma) in the DNS servers field (e.g.,, then click on the Add button next to the Addresses area:

Now give your network card a static IP address and netmask (in this tutorial I'm using the IP address and netmask for demonstration purposes; if you are not sure about the right values, might help you). Also fill in your gateway (e.g. and click on the Apply... button:

The network configuration is now finished. Click on the Next button:

Share this page:

6 Comment(s)

Add comment


From: Brett

I spent an afternoon following the guide to the letter, after trying previously, and ended up with a partially working server. Second time round, I realised the problem wasn't me.

Once you get to the end, exhausted and excited... go back and read the comments to figure out issues with Dovecot setup, Postfix setup, Pro-FTP, SSL certificates to name a few. If you're here like I was (because you NEED a guide for this stuff) consider yourself warned.

A sincere thanks to the Falko who put this guide together. Please work out the niggling bugs and it'll be worthy of the title 'Perfect Server'. Some of them are just a copy and paste from the comments into the guide so that they're not missed.



Here is the guide on how to make this setup to serve ASP.NET pages.

Kind regards,


I have installed this tutorial with Centos 6.5!

 One problem: You must uninstall eaccelerator... or delete file eaccelerator.ini from /etc/php.d becaouse it will not work with fasctgi (for Ispconfig)

few hours to discover the problem....




From: ed

I have problem with send mail.All mails stoped in maildrop folder.i tryed root .. #echo "Test mail" | mail -s "test" [email protected] but nothing.Whats wrong? :

alias_database = hash:/etc/postfix/aliasesalias_maps = hash:/etc/postfix/aliasesbody_checks = regexp:/etc/postfix/body_checksbroken_sasl_auth_clients = yescommand_directory = /usr/sbinconfig_directory = /etc/postfixcontent_filter = amavis:[]:10024daemon_directory = /usr/libexec/postfixdata_directory = /var/lib/postfixdebug_peer_level = 2header_checks = regexp:/etc/postfix/header_checkshome_mailbox = Mailboxhtml_directory = noinet_interfaces = allinet_protocols = ipv4mail_owner = postfixmail_spool_directory = /var/spool/mailmailbox_command = /usr/bin/procmail -Y -a $DOMAINmailq_path = /usr/bin/mailq.postfixmanpage_directory = /usr/share/manmime_header_checks = regexp:/etc/postfix/mime_header_checksmydestination =, localhost, localhost.localdomainmydomain = xxx.netmyhostname = = [::1]/128myorigin = xxx.netnested_header_checks = regexp:/etc/postfix/nested_header_checksnewaliases_path = /usr/bin/newaliases.postfixproxy_read_maps = $local_recipient_maps $mydestination $virtual_alias_maps $virt ual_alias_domains $virtual_mailbox_maps $virtual_mailbox_domains $relay_recipien t_maps $relay_domains $canonical_maps $sender_canonical_maps $recipient_canonica l_maps $relocated_maps $transport_maps $mynetworksqueue_directory = /var/spool/postfixreadme_directory = /usr/share/doc/postfix-2.6.6/README_FILESreceive_override_options = no_address_mappingsrelay_domains = mysql:/etc/postfix/mysql-virtual_relaydomains.cfrelay_recipient_maps = mysql:/etc/postfix/mysql-virtual_relayrecipientmaps.cfrelayhost = $mydomainsample_directory = /usr/share/doc/postfix-2.6.6/samplessendmail_path = /usr/sbin/sendmail.postfixsendmail_path = /usr/sbin/sendmail.postfixsetgid_group = postdropsmtp_tls_security_level = maysmtpd_client_message_rate_limit = 100smtpd_client_restrictions = check_client_access mysql:/etc/postfix/mysql-virtual _client.cfsmtpd_recipient_restrictions = check_recipient_access mysql:/etc/postfix/mysql-v, permit_mynetworks, permit_sasl_authenticated, reject_unauth _destinationsmtpd_sasl_auth_enable = yessmtpd_sasl_authenticated_header = yessmtpd_sasl_path = private/authsmtpd_sasl_type = dovecotsmtpd_sender_restrictions = check_sender_access mysql:/etc/postfix/mysql-virtual _sender.cfsmtpd_tls_cert_file = /etc/postfix/smtpd.certsmtpd_tls_key_file = /etc/postfix/smtpd.keysmtpd_tls_security_level = maysmtpd_use_tls = yestransport_maps = hash:/var/lib/mailman/data/transport-mailman, proxy:mysql:/etc/ postfix/mysql-virtual_transports.cfunknown_local_recipient_reject_code = 550virtual_alias_domains =virtual_alias_maps = proxy:mysql:/etc/postfix/, prox y:mysql:/etc/postfix/, hash:/etc/mailman/virtual-mai lmanvirtual_gid_maps = static:5000virtual_mailbox_base = /var/vmailvirtual_mailbox_domains = proxy:mysql:/etc/postfix/mysql-virtual_domains.cfvirtual_mailbox_maps = proxy:mysql:/etc/postfix/mysql-virtual_mailboxes.cfvirtual_transport = dovecotvirtual_uid_maps = static:5000


From: elvamo

Im Finish tutorial but

How Update to:

Apache httpd 2.4.12 ReleasedPHP 5.4.40 ReleasedPHP 5.6.8 is availableMySQL-Versión: 5.1.73phpMyAdmin 4.4.5


From: John Harvey



Great guide thank you.


Only problem I'm having when I load some self installing php sites like livesite.  I get the following error.

Sorry, the page that you requested could not be displayed because it requires Zend Guard Loader, which is not installed. The administrator of this website may download it and then install it.

Any thoughts