The Perfect Server - Fedora 12 x86_64 [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

# phpMyAdmin - Web based MySQL browser written in php
# Allows only localhost by default
# But allowing phpMyAdmin to anyone other than localhost should be considered
# dangerous unless properly secured by SSL

Alias /phpMyAdmin /usr/share/phpMyAdmin
Alias /phpmyadmin /usr/share/phpMyAdmin
#<Directory /usr/share/phpMyAdmin/>
#   order deny,allow
#   deny from all
#   allow from
#   allow from ::1

# This directory does not require access over HTTP - taken from the original
# phpMyAdmin upstream tarball
<Directory /usr/share/phpMyAdmin/libraries>
    Order Deny,Allow
    Deny from All
    Allow from None

# This configuration prevents mod_security at phpMyAdmin directories from
# filtering SQL etc.  This may break your mod_security implementation.
#<IfModule mod_security.c>
#    <Directory /usr/share/phpMyAdmin>
#        SecRuleInheritance Off
#    </Directory>

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 clamav-data clamav-server clamav-update unzip bzip2 perl-DBD-mysql

When we installed ClamAV, a cron job got installed that tries to update the ClamAV virus database every three hours. But this works only if we enable it in /etc/sysconfig/freshclam and /etc/freshclam.conf:

vi /etc/sysconfig/freshclam

Comment out the FRESHCLAM_DELAY line at the end:

## When changing the periodicity of freshclam runs in the crontab,
## this value must be adjusted also. Its value is the timespan between
## two subsequent freshclam runs in minutes. E.g. for the default
## | 0 */3 * * *  ...
## crontab line, the value is 180 (minutes).

## A predefined value for the delay in seconds. By default, the value is
## calculated by the 'hostid' program. This predefined value guarantees
## constant timespans of 3 hours between two subsequent freshclam runs.
## This option accepts two special values:
## 'disabled-warn'  ...  disables the automatic freshclam update and
##                         gives out a warning
## 'disabled'       ...  disables the automatic freshclam silently

### !!!!! REMOVE ME !!!!!!
### REMOVE ME: By default, the freshclam update is disabled to avoid
### REMOVE ME: network access without prior activation

vi /etc/freshclam.conf

Comment out the Example line:

# Comment or remove the line below.

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

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

... and change the ownership of some directories:

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.

We can install Apache2with mod_php5, mod_fcgid, and PHP5 as follows:

yum install php php-devel php-gd php-imap php-ldap php-mysql php-odbc php-pear php-xml php-xmlrpc 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 & ~E_DEPRECATED
error_reporting = E_ALL & ~E_NOTICE
cgi.fix_pathinfo = 1

Next we install suPHP:

cd /tmp
tar xvfz suphp-0.7.1.tar.gz
cd suphp-0.7.1/
./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:

yum install mydns-mysql

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*

Share this page:

7 Comment(s)

Add comment


From: gimi at: 2009-11-29 17:43:13

followed your how to and web mail is not working

From: at: 2010-03-13 21:53:24

After following the complete tutorial I noticed that MyDNS service did not start.

So I ran /tmp/ispconfig3_install/install/php -q update.php and I noticed that ISPConfig tries to config BIND.

After reading the complete tutorial again I am sure there is no line with : yum install bind So it is installed from dvd.

There are two solutions

1. on page two you select the packages to be installed,  select dns server, select additional packages, remove the tick from BIND, continue install

2. run ( somewhere in the beginning, but before yum install mydns ) yum erase bind, continue install.

From: at: 2010-03-23 11:34:09

I've created shell scripts to do all of this automatically.  Will be happy to share them.

My scripts also include installing tomcat6, JDK, and setting up the tomcat connector - mod_jk.

BTW ...

This tutorial is not perfect yet ... I did find that I had to make a few tweaks to get squirrelmail to deliver mail.

From: robertlouwen at: 2010-05-13 22:29:28

Make it comfortable ... and install the update - daemon "yum-updatesd" and get notified by e-mail when there are updates for your Fedora 12 server.

1. yum install yum-updatesd

2. vi /etc/yum/yum-updatesd.conf and set the interval for checking, set notification method ( email ), set email recipient and email sender.

All done ( sit back and relax )

From: adycobra at: 2010-06-30 03:20:06

Yes squiremail doesnt work, after u complete this tutorial, after deep searches into my server i nodest that on postfix virtual  mysql confs u can see that it logs to mysql with user ispconfig which on this entire tutorial wasnt sayd anywhere to create it,  in /etc/dovecot-sql.conf u will see the same user ispconfig, so that is why ur mail doesnt work cause postfix conf have one user who cant connect to mysql and dovecot the same, so go on /etc/postfix and modify the user and pass for mysql on these files:

After this changes go edit /etc/dovecot-sql.conf and change user and password, after that restart postfix and dovecot and should work, or lool the simplest is to way early in instalation steps to add the user ispconfig :)) i hope it work for u...

From: Anonymous at: 2010-09-30 15:13:57

are u able to share?i found out that dovecot has problems too, i've simply compile this tutorial with another one to get the damn thing working, still didn't get the squerill to work properly


waiting for a reply, best regards,


From: moodz at: 2010-08-16 10:46:44

The instructions for creating quota are screwy ..... apart from the fact it just does not work.