The Perfect Server - CentOS 5.6 x86_64 [ISPConfig 3] - 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

# Intel Corporation 82545EM Gigabit Ethernet Controller (Copper)

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:95:4B:52
          inet addr:  Bcast:  Mask:
          RX packets:413 errors:0 dropped:0 overruns:0 frame:0
          TX packets:298 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:39156 (38.2 KiB)  TX bytes:61756 (60.3 KiB)

eth0:0    Link encap:Ethernet  HWaddr 00:0C:29:95:4B:52
          inet addr:  Bcast:  Mask:

lo        Link encap:Local Loopback
          inet addr:  Mask:
          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*

Enable the contrib and centosplus repositories:

vi /etc/yum.repos.d/CentOS-Base.repo

Edit the lines below:


Then we update our existing packages on the system:

yum update

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

yum groupinstall 'Development Tools'

yum groupinstall 'Development Libraries'


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.)

To install quota, we run this command:

yum install quota

Edit /etc/fstab and add ,usrquota,grpquota to the / partition (/dev/VolGroup00/LogVol00):

vi /etc/fstab

/dev/VolGroup00/LogVol00 /                       ext3    defaults,usrquota,grpquota        1 1
LABEL=/boot             /boot                   ext3    defaults        1 2
tmpfs                   /dev/shm                tmpfs   defaults        0 0
devpts                  /dev/pts                devpts  gid=5,mode=620  0 0
sysfs                   /sys                    sysfs   defaults        0 0
proc                    /proc                   proc    defaults        0 0
/dev/VolGroup00/LogVol01 swap                    swap    defaults        0 0

Then run

touch /aquota.user /
chmod 600 /aquota.*
mount -o remount /
quotacheck -avugm
quotaon -avug

to enable quota.


9 Install Apache, MySQL, phpMyAdmin

First we enable the RPMforge repository on our CentOS system as lots of the packages that we are going to install in the course of this tutorial are not available in the official CentOS 5.6 repositories:

rpm --import

cd /tmp
rpm -ivh rpmforge-release-0.5.2-2.el5.rf.x86_64.rpm

(If the above link doesn't work anymore, you can find the current version of rpmforge-release here:

Afterwards we can install the needed packages with one single command:

yum install ntp httpd mysql-server php php-mysql php-mbstring php-mcrypt phpmyadmin

Share this page:

31 Comment(s)

Add comment


From: Anonymous at: 2011-04-24 23:41:47 gives a import read failed

 it now redirects to however the rpm --import doesn't seem to use the re-direct.

From: Anonymous at: 2011-05-04 11:50:42

Step 9 link is now:

rpm --import


From: Anonymous at: 2011-05-30 07:30:17

rpm --import

From: Rony Jusman at: 2011-07-29 01:35:06

rpm --import

From: Anonymous at: 2011-06-09 10:07:29

I've got a problem with:


 I tried the other link, but it seems to be a problem with wget itself. I can ping without any problems, so this won't be a network error?

From: erik at: 2011-08-29 18:03:03


 i got a problem with the code:

yum install ntp httpd mysql-server php php-mysql php-mbstring php-mcrypt phpmyadmin

 i get this message error when i do it:

 Error: php53-common conflicts with php-common

 You could try using --skip-broken to work around the problem

 You could try running: package-cleanup --problems

                        package-cleanup --dupes

                        rpm -Va --nofiles --nodigest

The program package-cleanup is found in the yum-utils package

 how can i solve this trouble?? please its very importa i can't conitnue with the installation.

From: ernie at: 2011-09-01 16:45:23

Used How-to HERE

reason being...

Because the version of php on CentOS 5.6 is 5.1.6, we only can install phpMyAdmin 2.x, I choose
# cd /usr/share
# wget
# tar xvfz phpMyAdmin-
# mv phpMyAdmin- phpmyadmin
# rm phpMyAdmin-

From: at: 2011-12-09 05:02:18

With step 9, it will install the php 5.1.x, which is not for some new CMS like Drupal 7.x. So if you want to install php 5.3.x, use the webtatic repo at

After install the repo, you can complete step 9 with command

yum --enablerepo=webtatic install ntp httpd mysql-server php php-mysql php-mbstring php-mcrypt phpmyadmin



From: Marcelo Santabaia at: 2011-05-23 12:24:24

When I type the command:

vi /usr/share/phpmyadmin/

I receive this ERROR:

"/usr/share/phpmyadmin/" E212: Can't open file for writing



From: Anonymous at: 2012-12-22 03:11:10


  you must use this path



    e.x : nano /etc/httpd/conf.d/


From: Hetz Ben Hamo at: 2011-04-20 19:20:46

Trying to install postfix, even by enabling the centosplus repository will not help, since there is an update which is newer then whats available in centosplus.

 Workaround: go to your local centos mirror, go to the centosplus directory, to and download manually the file:

 Then do: yum localinstall postfix-2.3.3-2.el5.centos.mysql_pgsql.x86_64.rpm (it needs to add .. postgresql.. don't ask me why..) and then things will work.

From: at: 2011-05-23 14:35:10
From: Web Age Support at: 2011-06-07 16:43:59

started with:



Commands I entered (as root) to get dovecot-sieve working:

yum install rpm-build

yum install redhat-rpm-config

mkdir -p ~/rpmbuild/{BUILD,RPMS,SOURCES,SPECS,SRPMS}

echo '%_topdir %(echo $HOME)/rpmbuild' > ~/.rpmmacros

yum install make gcc

cd /root

wget ''


rpm -ivh dovecot-devel-1.2.17-0_115.el5.x86_64.rpm 

rpmbuild --rebuild dovecot-sieve-0.1.18-7.src.rpm 

cd /root/rpmbuild/RPMS/x86_64

rpm -e dovecot-sieve

rpm -ivh dovecot-sieve-0.1.18-7.x86_64.rpm 

service dovecot restart

From: Anonymous at: 2011-05-18 11:47:14

Dovecot Warning ...

At the time i wrote this, the AtRPMS repo updated the dovecot from 1.2.16 to 1.2.17 and the current dovecot-sieve package is not in sync. Either you'll need to wait to update their dovecot-sieve package or you need to recompile from sources with rpmbuild.


From: at: 2011-05-19 11:48:03

Hi, Thank you for this really nice guide! Is it possible to give us more instructions about dovecot and 1.2.16 version,
i have installed 1.2.17 and i am trying for about two days now to figure out what was wrong.

I mean how to install or downgrade the  1.16 or perhaps how to recompile the dovecote package.


From: Luca Tocco at: 2011-05-20 13:33:59

Dovecot 1.2.17 not work on this guide from latest update. I have installed courier instead of dovecot and ispconfig work great!


From: Anonymous at: 2011-04-27 03:05:20

you can install the mod_fcgid from fedora epel repository.

From: Curu at: 2011-05-01 01:01:55

also, you can install suphp from rpmfoge repo using:

yum install mod_suphp 

From: at: 2011-07-26 16:36:15

That's good cuz the howto doesn't work: ...

checking for unistd.h... (cached) yes

checking for APR... configure: error: the --with-apr parameter is incorrect. It must specify an install prefix, a

build directory, or an apr-config file.

From: at: 2011-07-27 05:37:21

[root@ispconfig3 sysconfig]# yum install bind-chroot
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base:
 * extras:
 * rpmforge:
 * updates:
Excluding Packages from Red Hat Enterprise Linux 5 - x86_64 - ATrpms
Reducing Red Hat Enterprise Linux 5 - x86_64 - ATrpms to included packages only
Excluding Packages from Red Hat Enterprise Linux 5 - x86_64 - ATrpms testing
Reducing Red Hat Enterprise Linux 5 - x86_64 - ATrpms testing to included packages only
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package bind-chroot.x86_64 30:9.3.6-16.P1.el5 set to be updated
--> Finished Dependency Resolution

Dependencies Resolved

 Package                Arch              Version                          Repository       Size
 bind-chroot            x86_64            30:9.3.6-16.P1.el5               base             46 k

Transaction Summary
Install       1 Package(s)
Upgrade       0 Package(s)

Total download size: 46 k
Is this ok [y/N]: y
Downloading Packages:
bind-chroot-9.3.6-16.P1.el5.x86_64.rpm                                    |  46 kB     00:01
Running rpm_check_debug
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
  Installing     : bind-chroot                                                               1/1

  bind-chroot.x86_64 30:9.3.6-16.P1.el5

[root@ispconfig3 sysconfig]# chmod 755 /var/named/
[root@ispconfig3 sysconfig]# chmod 775 /var/named/chroot/
[root@ispconfig3 sysconfig]# chmod 775 /var/named/chroot/var/named/
[root@ispconfig3 sysconfig]# chmod 775 /var/named/chroot/var/run/
[root@ispconfig3 sysconfig]# chmod 777 /var/named/chroot/var/run/named/
[root@ispconfig3 sysconfig]# cd /var/named/chroot/var/named/
[root@ispconfig3 named]# ln -s ../../ chroot
[root@ispconfig3 named]# touch /var/named/chroot/var/named/named.local
[root@ispconfig3 named]# cp /usr/share/doc/bind-9.3.6/sample/var/named/named.root /var/named/chroot/var/named/named.root
[root@ispconfig3 named]# touch /var/named/chroot/etc/named.conf.local
[root@ispconfig3 named]# vi /var/named/chroot/etc/named.conf
 (named.conf edited as per the text)
[root@ispconfig3 named]# chkconfig named on
[root@ispconfig3 named]# service named start
Starting named:
Error in named configuration:
/var/named/chroot/var/named/named.local:1: unknown option '$TTL'
/var/named/chroot/var/named/named.local:3: unknown option 'Serial'
/var/named/chroot/var/named/named.local:4: unknown option 'Refresh'
/var/named/chroot/var/named/named.local:5: unknown option 'Retry'
/var/named/chroot/var/named/named.local:6: unknown option 'Expire'
/var/named/chroot/var/named/named.local:7: unknown option 'Minimum'
/etc/named.conf:30: unexpected token near end of file

From: Rolf Ernst at: 2011-09-05 02:59:01

For all it's worth - I am getting the same error. I am installing under OpenVZ - not sure this is related?

From: Anonymous at: 2012-02-08 12:38:47

I have the same error. Have you solved it?

From: at: 2011-12-09 05:06:30

At step 15, if you already install webtatic repo I suggested on page 3 step 9, you don't need to enable the testing repository, just simply run this command to install

yum --enablerepo=webtatic install php php-devel php-gd php-imap php-ldap php-mysql php-odbc php-pear 
php-xml php-xmlrpc php-eaccelerator php-mbstring php-mcrypt php-mhash 
php-mssql php-snmp php-soap php-tidy curl curl-devel perl-libwww-perl 
ImageMagick libxml2 libxml2-devel mod_fcgid php-cli httpd-devel
Or you can enable the repo webtatic by editing the repo file to enabled=1

From: at: 2011-12-09 05:13:03

With my Drupal 7.x site using SuPHP on ISPConfig3, with step to install suphp, I have to change the umask from

umask=0077  => change to umask=0022
Or folders created by Drupal will have wrong permission.

From: Anonymous at: 2011-05-04 10:27:54

how can you run firefox if u didnt instaled gnome or kde...?

From: Anonymous at: 2011-06-14 23:22:18


From: Anonymous at: 2011-07-07 14:56:36


           I install my firth's the ISPConfig 3 in a CentOS 5.6 server. I follow the steps perfectly.

           And only one thing doesnt work. I cant recivied incomming mail. 

          The error is

Final-Recipient: rfc822;
Original-Recipient: rfc822;
Action: failed
Status: 5.1.1
Diagnostic-Code: X-Postfix; unknown user: "suport"


I Seek a lot of forums buy nobody resolve the problem, well, my kind of problem... 

 Thanks to all


CharlyKai from PARAGUAY

From: Anonymous at: 2011-07-21 09:31:34


This is the problem: Diagnostic-Code: X-Postfix; unknown user: "suport"

 Maybe, U have support, not suport user?

From: Anonymous at: 2011-07-21 09:44:00

It's a miracle! He don't install any linux window manager, and can run an MS windows program.

I hope, You will be  learning more, for example netwrorking, before starting Your sysadmin's life.

From: at: 2011-05-08 12:54:44

I'm a CentOS 5.6 version is used and the description of at least 20 in bad!

By the time I made the installation work properly there is nothing!

this is the whole thing as it is scandalous!

From: at: 2012-01-06 23:54:45

Hello I saw all tutorial step by step, at the end only ispconfig doesn't start.

 I understood that it isn't under init.d ispconfig, so I can't manually start the service.

 Please how can I do?

 thanks in advance