The Perfect Server - CentOS 5.2 - Page 3

4 Adjust /etc/hosts

Next we edit /etc/hosts. Make it look like this:

vi /etc/hosts

# Do not remove the following line, or various programs
# that require network functionality will fail.               localhost.localdomain localhost  server1
::1             localhost6.localdomain6 localhost6


5 Configure Additional IP Addresses

(This section is totally optional. It just shows how to add additional IP addresses to your network interface eth0 if you need more than one IP address. If you're fine with one IP address, you can skip this section.)

Let's assume our network interface is eth0. Then there is a file /etc/sysconfig/network-scripts/ifcfg-eth0 which contains the settings for eth0. We can use this as a sample for our new virtual network interface eth0:0:

cp /etc/sysconfig/network-scripts/ifcfg-eth0 /etc/sysconfig/network-scripts/ifcfg-eth0:0

Now we want to use the IP address on the virtual interface eth0:0. Therefore we open the file /etc/sysconfig/network-scripts/ifcfg-eth0:0 and modify it as follows (we can leave out the HWADDR line as it is the same physical network card):

vi /etc/sysconfig/network-scripts/ifcfg-eth0:0

# Advanced Micro Devices [AMD] 79c970 [PCnet32 LANCE]

Afterwards we have to restart the network:

/etc/init.d/network restart

You might also want to adjust /etc/hosts after you have added new IP addresses, although this is not necessary.

Now run


You should now see your new IP address in the output:

[root@server1 ~]# ifconfig
eth0      Link encap:Ethernet  HWaddr 00:0C:29:B1:97:E1
          inet addr:  Bcast:  Mask:
          inet6 addr: fe80::20c:29ff:feb1:97e1/64 Scope:Link
          RX packets:310 errors:0 dropped:0 overruns:0 frame:0
          TX packets:337 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:28475 (27.8 KiB)  TX bytes:72116 (70.4 KiB)
          Interrupt:177 Base address:0x1400

eth0:0    Link encap:Ethernet  HWaddr 00:0C:29:B1:97:E1
          inet addr:  Bcast:  Mask:
          Interrupt:177 Base address:0x1400

lo        Link encap:Local Loopback
          inet addr:  Mask:
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:8 errors:0 dropped:0 overruns:0 frame:0
          TX packets:8 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:560 (560.0 b)  TX bytes:560 (560.0 b)

[root@server1 ~]#


6 Disable The Firewall And SELinux

(You can skip this chapter if you have already disabled the firewall and SELinux at the end of the basic system installation (in the Setup Agent).)

I want to install ISPConfig at the end of this tutorial which comes with its own firewall. That's why I disable the default CentOS firewall now. Of course, you are free to leave it on and configure it to your needs (but then you shouldn't use any other firewall later on as it will most probably interfere with the CentOS firewall).

SELinux is a security extension of CentOS that should provide extended security. In my opinion you don't need it to configure a secure system, and it usually causes more problems than advantages (think of it after you have done a week of trouble-shooting because some service wasn't working as expected, and then you find out that everything was ok, only SELinux was causing the problem). Therefore I disable it, too (this is a must if you want to install ISPConfig later on).



Set both Security Level and SELinux to Disabled and hit OK:

Afterwards we must reboot the system:



7 Install Some Software

First we import the GPG keys for software packages:

rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY*

Then we update our existing packages on the system:

yum update

Now we install some software packages that are needed later on:

yum install fetchmail wget bzip2 unzip zip nmap openssl lynx fileutils ncftp gcc gcc-c++

Share this page:

27 Comment(s)

Add comment


From: at: 2008-07-23 13:27:14

ncftp does not install during the yum install command. ncftp is not listed during a yum list ncftp*



From: Noodle2732 at: 2008-09-14 15:19:46

I had the same prob, i managed to get around it though after a bit of searching google.

btw i am a linux n00b so if this is the wrong waay to do things then i apologize.

I had to add the Karan extras testing repo and set gpgcheck=0 then it installed

vi /etc/yum.conf

add this to the bottom:

[ kbs-CentOS-Testing]

name=CentOS.Karan.Org-ELS - Testing





Then import the key

rpm --import


And then finally install ncftp

yum install ncftp

From: Anonymous at: 2008-11-19 03:32:33

worked for me, thanks Noodle

From: gobok at: 2008-12-15 04:22:31

thanks for the ncftp

 and the updated repo is supposed to be in


From: at: 2008-08-30 18:53:38

yum install openssl-devel

is also needed for ISPConfig to successfully complete PHP compilation

From: admin at: 2008-08-31 08:17:07

These packages are already installed if you select the same package groups as I did during the initial system installation.

From: at: 2008-08-30 18:56:26

yum install zlib-devel is also needed to compile PHP for ISPConfig.

From: rezilient1 at: 2008-11-18 20:10:26

This line doesn't work for me, same issue for anyone else?  Is it important?  I confirmed the root password was successfull set, what does this do?

# mysqladmin -h -u root password yourrootsqlpassword

From: Milan at: 2009-01-15 13:45:45

Read step 4 of this howto carefully. It is important to assign (replace with Your server name) to actual IP address of the server.

From: Augusto at: 2009-01-07 12:05:44

It doesn't seem to work fine. I can't find the option "-h" for the command mysqladmin:

 If you can access to the mysql server, then it's ok:

[root@hello tmp]# mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 14 to server version: 5.1

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.


From: Narcarsiss at: 2010-07-06 01:42:22

Easy fix Apply -p after password

for example; mysqladmin -h -u root password -p ********************

 Cheers Narcarsiss

From: Anonymous at: 2009-03-16 17:24:53

use this to fix it.  worked for me.

From: Mike Shafer at: 2009-05-15 02:31:08

Great bit of work. I followed this to the letter and it worked perfectly. Learned a few new tricks on the process! Thanks for the efforts.

Mike Shafer

From: at: 2008-08-30 18:38:07

This manual is missing just one thing relative to ISPConfig. It requires flex package to be installed (2.2.25 at least). So, `yum install flex` is needed

From: Anonymous at: 2009-02-11 11:27:56


This tutorial is very good but I have a problem. When I try to install proftpd  it just don't stop to checking. I leave server to install 24 hours but it still checking. I can't complete install. I saw an warning message:

make: Warning: File `' has modification time 1e+08 s in the future

 What could be a problem?



From: Jeremy at: 2008-12-01 16:54:23

Great Tutorial.

I have always setup LAMP for local development, but have been wanting to do some smaller sites in house.

Followed your tutorial almost step-by-step (I prefer building php).

From: ip-adresa at: 2008-09-11 09:57:06

Thank You for great tutorial! I am going to install CentOS on my small server. Well done :-)

From: javsan at: 2008-10-13 05:41:51

Really, a good manual. Thanks you very much.

From: Kuzmich at: 2008-11-14 10:58:02

It is need flex for ./setup

yum install flex

From: PanzerThorr at: 2008-11-18 10:08:53

On the 64bits version of CentOS i need to do this because the installation crash :

yum install openssl-devel flex zlib-devel libxml2-devel libpng-devel libxslt-devel

From: rezilient at: 2008-11-20 03:39:55

I still needed the following in order to install ISPConfig 3.0.

        postgresql-devel is needed by courier-authlib-0.61.0-1.x86_64
        expect is needed by courier-authlib-0.61.0-1.x86_64
        /usr/include/ltdl.h is needed by courier-authlib-0.61.0-1.x86_64

From: Anonymous at: 2008-12-31 00:03:52

I followed this setup to install ISPConfig, and sure, this tutorial may be comprehensive, but it left me with A TON of unanswered questions and problems that made it seem not worth putting in the time to finish. Honestly, at this point, I may just wipe it and install a fresh copy of Centos and pay for cpanel. It will be cheaper in the end.....

From: Simon at: 2009-01-19 13:52:11

I followed this tutorial through and everything works great but PHP doesn't load mysql by default.

I check phpinfo() and it doesn't show mysql as loaded. I know its a bit of a noob question  and it should be obvious.

From: Elber at: 2009-02-22 01:58:42

Muchas gracias amigos (Thank so much!!!) Excelente documentación!!!

From: Jason Barnett at: 2009-02-09 19:13:45

...but after seven pages of excellent documentation I would have expected the job to be finished properly with detailed steps on how to install ISPConfig.

In my opinion this takes the shine of an otherwise excellent how-to.

From: Jason Barnett at: 2009-02-09 19:21:32

Here are some quick and dirty instructions for installing ISPConfig:

cd /tmp
tar xvzf ISPConfig-2.2.29.tar.gz
cd install_ispconfig

Accepting all the defaults will do the job quite nicely.

From: Anonymous at: 2010-02-23 17:05:04

Mi server is working very nice. Thank you