The Perfect Server - CentOS 5.2 [ISPConfig 3] - Page 5

14 Set MySQL Passwords And Configure phpMyAdmin

Start MySQL:

chkconfig --levels 235 mysqld on
/etc/init.d/mysqld start

Then set passwords for the MySQL root account:

mysqladmin -u root password yourrootsqlpassword
mysqladmin -h -u root password yourrootsqlpassword

Now we configure phpMyAdmin. We change the Apache configuration so that phpMyAdmin allows connections not just from localhost (by commenting out the <Directory "/usr/share/phpmyadmin"> stanza):

vi /etc/httpd/conf.d/phpmyadmin.conf

#  Web application to manage MySQL

#<Directory "/usr/share/phpmyadmin">
#  Order Deny,Allow
#  Deny from all
#  Allow from

Alias /phpmyadmin /usr/share/phpmyadmin
Alias /phpMyAdmin /usr/share/phpmyadmin
Alias /mysqladmin /usr/share/phpmyadmin

Next we change the authentication in phpMyAdmin from cookie to http:

vi /usr/share/phpmyadmin/

/* Authentication type */
$cfg['Servers'][$i]['auth_type'] = 'http';

Then we create the system startup links for Apache and start it:

chkconfig --levels 235 httpd on
/etc/init.d/httpd start

Now you can direct your browser to or and log in with the user name root and your new root MySQL password.


15 Install Amavisd-new, SpamAssassin And ClamAV

To install amavisd-new, spamassassin and clamav, run the following command:

yum install amavisd-new spamassassin clamav clamd unzip bzip2 unrar perl-DBD-mysql

Then we start freshclam, amavisd, and clamd...

chkconfig --levels 235 amavisd on
chkconfig --levels 235 clamd on
/etc/init.d/amavisd start
/etc/init.d/clamd start

... and create some necessary directories:

mkdir /var/run/amavisd /var/spool/amavisd /var/spool/amavisd/tmp /var/spool/amavisd/db
chown amavis /var/run/amavisd /var/spool/amavisd /var/spool/amavisd/tmp /var/spool/amavisd/db


16 Installing Apache2 With mod_php, mod_fcgi/PHP5, And suPHP

ISPConfig 3 allows you to use mod_php, mod_fcgi/PHP5, cgi/PHP5, and suPHP on a per website basis.

mod_fcgid is not available in the official CentOS repositories, but there's a package for CentOS 5.x in the testing repository. We enable the repository as follows:

cd /etc/yum.repos.d/

Next we open /etc/yum.repos.d/kbsingh-CentOS-Extras.repo...

vi /etc/yum.repos.d/kbsingh-CentOS-Extras.repo

... and set gpgcheck to 0 and enabled to 1 in the [kbs-CentOS-Testing] section:

name=CentOS.Karan.Org-EL$releasever - Testing

Afterwards we can install Apache2with mod_php5, mod_fcgid, and PHP5:

yum 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

Next we open /etc/php.ini...

vi /etc/php.ini

... and change the error reporting (so that notices aren't shown any longer) and add cgi.fix_pathinfo = 1 at the end of the file:

;error_reporting  =  E_ALL
error_reporting = E_ALL & ~E_NOTICE
cgi.fix_pathinfo = 1

Next we install suPHP:

cd /tmp
tar xvfz suphp-0.7.0.tar.gz
cd suphp-0.7.0/
./configure --prefix=/usr --sysconfdir=/etc --with-apr=/usr/bin/apr-1-config --with-apxs=/usr/sbin/apxs --with-apache-user=apache --with-setid-mode=owner --with-php=/usr/bin/php-cgi --with-logfile=/var/log/httpd/suphp_log --enable-SUPHP_USE_USERGROUP=yes
make install

Then we add the suPHP module to our Apache configuration...

vi /etc/httpd/conf.d/suphp.conf

LoadModule suphp_module modules/

... and create the file /etc/suphp.conf as follows:

vi /etc/suphp.conf

;Path to logfile


;User Apache is running as

;Path all scripts have to be in

;Path to chroot() to before executing script

; Security options

;Check wheter script is within DOCUMENT_ROOT

;Send minor error messages to browser

;PATH environment variable

;Umask to set, specify in octal notation

; Minimum UID

; Minimum GID

;Handler for php-scripts

;Handler for CGI-scripts

Finally we restart Apache:

/etc/init.d/httpd restart


17 Install PureFTPd

PureFTPd can be installed with the following command:

yum install pure-ftpd

Then create the system startup links and start PureFTPd:

chkconfig --levels 235 pure-ftpd on
/etc/init.d/pure-ftpd start


18 Install MyDNS

We can install MyDNS as follows:

rpm -ivh mydns-mysql-1.1.0-1.i386.rpm

When the system boots, MyDNS must be started after MySQL. The MySQL startup link has the priority 64 on CentOS, so the MyDNS startup link must have a priority between 65 and 99. Therefore we open the MyDNS init script...

vi /etc/init.d/mydns

... and change

# chkconfig: 345 52 50


# chkconfig: 345 65 50

Then we create the startup links:

chkconfig --levels 235 mydns on

We don't start MyDNS now because it must be configured first - this will be done automatically by the ISPConfig 3 installer later on.


19 Install Vlogger And Webalizer

Vlogger and webalizer can be installed as follows:

yum install webalizer perl-DateTime-Format-HTTP perl-DateTime-Format-Builder

cd /tmp
tar xvfz vlogger-1.3.tar.gz
mv vlogger-1.3/vlogger /usr/sbin/
rm -rf vlogger*


20 Install Jailkit

Jailkit is needed only if you want to chroot SSH users. It can be installed as follows (important: Jailkit must be installed before ISPConfig - it cannot be installed afterwards!):

cd /tmp
tar xvfz jailkit-2.5.tar.gz
cd jailkit-2.5
make install
rm -rf jailkit-2.5*


21 Install fail2ban

This is optional but recommended, because the ISPConfig monitor tries to show the log:

yum install fail2ban

chkconfig --levels 235 fail2ban on
/etc/init.d/fail2ban start


22 Install rkhunter

rkhunter can be installed as follows:

yum install rkhunter

Falko Timme

About Falko Timme

Falko Timme is an experienced Linux administrator and founder of Timme Hosting, a leading nginx business hosting company in Germany. He is one of the most active authors on HowtoForge since 2005 and one of the core developers of ISPConfig since 2000. He has also contributed to the O'Reilly book "Linux System Administration".

Share this page:

Suggested articles

11 Comment(s)

Add comment


By: Dimitri Visser

I tried today 0.6.2, 0.7.0 and 0.7.1 but cannot get it to work. After ./configure etc etc it gives an error:

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.

By: Steven

I found that using this command:

yum install php-cli httpd-devel

allowed suPHP to install correctly without the error:

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.


I found that you needed to install these as prerequisites on the following tutorial:


By: John

 jailkit-2.7.tar.gz is now available.

 I notices iptables --list was empty, so :-

chkconfig --add bastille-firewall
chkconfig bastille-firewall on
service bastille-firewall start
iptables --list

By: John

I suggest also installing denyhosts to help ssh attacks

yum install rkhunter denyhosts

chkconfig denyhosts on

service denyhosts start


I tried it today with version 0.7.1 (and CentOS 5.3) and it was built without errors.


when i got to this section....

Next we install suPHP:

cd /tmp
tar xvfz suphp-0.7.0.tar.gz
cd suphp-0.7.0/
./configure --prefix=/usr --sysconfdir=/etc --with-apr=/usr/bin/apr-1-config --with-apxs=/usr/sbin/apxs --with-apache-user=apache --with-setid-mode=owner --with-php=/usr/bin/php-cgi --with-logfile=/var/log/httpd/suphp_log --enable-SUPHP_USE_USERGROUP=yes
make install

i could not get it to work so i used this instead (and then continued on with the instructions)

cd /tmp
tar xvfz suphp-0.6.2.tar.gz
cd suphp-0.6.2/
./configure --prefix=/usr --sysconfdir=/etc --with-apr=/usr/bin/apr-1-config --with-apxs=/usr/sbin/apxs --with-apache-user=apache --with-setid-mode=paranoid --with-php=/usr/bin/php-cgi --with-logfile=/var/log/httpd/suphp_log --enable-SUPHP_USE_USERGROUP=yes
make install

if anyone could shed some light on 0.7.0 that would be great

btw at the time of wiriting 0.7.1 has been released for suPHP (and that did NOT work either)

By: kisfoka

I have CentOS 5.3 x64 and suPHP 0.7.1

Try: yum install apr-devel.x86_64

Run suphp ./configure after that.

Hope it helps!


when you get to this section

PureFTPd can be installed with the following command:

yum install pure-ftpd

change it to

yum -npgpgcheck install pure-ftpd



When I was debugging my installed server following these instructions, I kept finding this errors in /var/log/maillog

ClamAV-clamd: Connecting to socket  /tmp/clamd.socket, retry #1
ClamAV-clamd: Can't connect to UNIX socket /tmp/clamd.socket: No such file or dir
ectory, retrying (2)

I fixed the problem by editing the file /etc/amavisd.conf

And replacing the line:

  \&ask_daemon, ["CONTSCAN {}\n", "/tmp/clamd.socket"],


  \&ask_daemon, ["CONTSCAN {}\n", "/var/run/clamav/clamd.sock"], 


The other thing that I would do is to add  /usr/bin/freshclam into my daily cron, so it refresh the virus definitions automatically.

Edit the file /etc/crontab  and add the following line at the end of it

02 5 * * * root /usr/bin/freshclam

 Then do a

#service crond reload

There's a lot of information of  Amavisd-new and ClamAV in


By: Arvid

Same as dimity visser, is there an other alternative

By: Anonymous

[email protected] tmp]# rpm -ivh mydns-mysql-1.1.0-1.i386.rpm
mydns-mysql-1.1.0-1.i386.rpm: no es un paquete rpm (o manifiesto de paquete):