The Perfect Server - CentOS 5.5 x86_64 [ISPConfig 2]

Version 1.0
Author: Falko Timme
Follow me on Twitter
Last edited 05/20/2010

This tutorial shows how to set up a CentOS 5.5 server (x86_64) that offers all services needed by ISPs and web hosters: Apache web server (SSL-capable), Postfix mail server with SMTP-AUTH and TLS, BIND DNS server, Proftpd FTP server, MySQL server, Dovecot POP3/IMAP, Quota, Firewall, etc. This tutorial is written for the 64-bit version of CentOS 5.5, but should apply to the 32-bit version with very little modifications as well. In the end you should have a system that works reliably, and if you like you can install the free webhosting control panel ISPConfig (i.e., ISPConfig runs on it out of the box).

I will use the following software:

  • Web Server: Apache 2.2 with PHP 5.1.6
  • Database Server: MySQL 5.0
  • Mail Server: Postfix
  • DNS Server: BIND9 (chrooted)
  • FTP Server: Proftpd
  • POP3/IMAP server: Dovecot
  • Webalizer for web site statistics

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

I want to say first that this is not the only way of setting up such a system. There are many ways of achieving this goal but this is the way I take. 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 5.5 CD (CD 1) or the first CentOS 5.5 DVD. Press <ENTER> at the boot prompt:

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'm installing CentOS 5.5 on a fresh system, so I answer Yes to the question Would you like to initialize this drive, erasing ALL DATA?

Now we must select a partitioning scheme for our installation. For simplicity's sake I select Remove linux partitions on selected drives and create default layout. This will result in a small /boot and a large / partition as well as a swap partition. Of course, you're free to partition your hard drive however you like it. Then I hit Next:

Answer the following question (Are you sure you want to do this?) with Yes:

On to the network settings. The default setting here is to configure the network interfaces with DHCP, but we are installing a server, so static IP addresses are not a bad idea... Click on the Edit button at the top right.

In the window that pops up uncheck Use dynamic IP configuration (DHCP) and Enable IPv6 support and give your network card a static IP address (in this tutorial I'm using the IP address for demonstration purposes) and a suitable netmask (e.g.; if you are not sure about the right values, might help you):

Set the hostname manually, e.g., and enter a gateway (e.g. and up to two DNS servers (e.g. and

Choose your time zone:

Give root a password:

Share this page:

9 Comment(s)

Add comment


From: Dave at: 2010-11-05 10:10:28

Hi Falco,

I'm trying this out for the first time so I'm not sure of a lot of things and the first pit-fall I have found is the DNS stuff. I just don't understand if its for the box, the LAN or WAN so I used the Google public dns, used my router IP and for the box.

I've been setting up windows networks, building windows PC's and developing websites on Linux for over 15 years. I have a degree in computing from a top uni and I still don't get how this all works!

If you can add a link for setting up DNS settings and/or edit to say what the defaults should be for a novice I think that would be a huge help at this stage.

Thanks for all the help with this.


From: Steveorevo at: 2010-07-22 23:23:15

You can get ncftp from the "Extras Testing" by running

rpm -i


From: Anonymous at: 2010-09-29 09:55:55

how about for 32 bit?

From: Anonymous at: 2011-03-30 20:21:49

ncftp is not on this server any more!

From: Steveorevo at: 2010-07-22 04:39:41

Note: there is no ncftp package for CentOS and the instructions here will result in "No package ncftp available." Unless otherwise noted, this can be safely ignored.

From: Anonymous at: 2011-06-22 02:53:48

last command was

mysqladmin -h <hostname> -u root ....

 It should have been

mysql -h <hostname> -u root -p (then hit return, then enter your password)

From: Doug Lucy at: 2010-06-13 21:51:27

For 32-bit installs, the correct line for the second part of step 16 is:

rpm -ivh

From: at: 2010-07-31 01:29:25

There is a bug in Perl's Tar module for 5.8.8, you should check that Spamassassin is able to update correctly by running: /home/admispconfig/ispconfig/tools/spamassassin/usr/bin/sa-update If you receive the dreaded " Argument "1.39_01" isn't numeric" then be sure to edit /usr/lib/perl5/vendor_perl/5.8.8/Archive/ to read: $VERSION                = "1.39_01"; $VERSION                = eval $VERSION; Add line "$VERSION                = eval $VERSION;" as shown above to resolve problem.

From: Jazzzz at: 2010-11-22 16:00:59

If not install flex the ISPConfig's installation fail.

Type yum install flex befor setup ISPConfig

yum intall flex