Installation
------------

It is recommended to use a clean (fresh) Ubuntu 8.04 LTS install where you selected no additional packages or servers during setup. Then follow the steps below to setup your server with ISPConfig 3:

Now become root user by executing:

sudo su

and entering the password of the user that you created during setup.

Edit the file /etc/apt/sources.list and comment out the line beginning with "deb cdrom:....", then run:

apt-get update
apt-get -u upgrade


1) Install Postfix, Courier, Saslauthd, MySQL, phpMyAdmin with the following command line (on one line!):

apt-get install postfix postfix-mysql postfix-doc mysql-client mysql-server courier-authdaemon courier-authlib-mysql courier-pop courier-pop-ssl courier-imap courier-imap-ssl libsasl2-2 libsasl2-modules libsasl2-modules-sql sasl2-bin libpam-mysql openssl courier-maildrop getmail4

Answer the questions from the package manager as follows.

Enter the mysql root password.
Create directories for web-based administration ? <-- No
General type of configuration? <-- Internet site
Mail name? <-- server1.mydomain.tld
 SSL certificate required <-- Ok

...use your own domain name of course ;)


2) Install Amavisd-new, Spamassassin and Clamav (1 line!):

apt-get install amavisd-new spamassassin clamav clamav-daemon zoo unzip bzip2 arj nomarch lzop cabextract apt-listchanges libnet-ldap-perl libauthen-sasl-perl clamav-docs daemon libio-string-perl libio-socket-ssl-perl libnet-ident-perl zip libnet-dns-perl


3) Install apache, PHP5 and phpmyadmin (1 line!):

apt-get install apache2 apache2.2-common apache2-doc apache2-mpm-prefork apache2-utils libexpat1 ssl-cert libapache2-mod-php5 php5 php5-common php5-gd php5-mysql php5-imap phpmyadmin php5-cli

Then run the following to enable the Apache modules:

a2enmod suexec
a2enmod rewrite
a2enmod ssl
a2enmod include
a2enmod actions


3.1) Optional: Install SuPHP

apt-get install libapache2-mod-suphp

vi /etc/suphp/suphp.conf

set docroot to:

docroot=/var/clients

Change:

application/x-httpd-php=php:/usr/bin/php-cgi

to:

x-httpd-php=php:/usr/bin/php-cgi


4) Install pure-ftpd and quota

First we have to make sure that the capability module is loaded in the kernel

modprobe capability
echo 'capability' >> /etc/modules

Then we install pureftpd and quota.

apt-get install pure-ftpd-common pure-ftpd-mysql quota quotatool

echo 'yes' > /etc/pure-ftpd/conf/DontResolve


5) Install mydns

apt-get install g++ libc6 gcc gawk make texinfo libmysqlclient15-dev

cd /tmp
wget http://heanet.dl.sourceforge.net/sourceforge/mydns-ng/mydns-1.2.8.15.tar.gz
tar xvfz mydns-1.2.8.15.tar.gz
cd mydns-1.2.8
./configure
make
make install

Now create the start / stop script for mydns:

vi /etc/init.d/mydns

and enter the following lines (between the ----- lines):

------------------------------------------------------
#! /bin/bash
#
# mydns         Start the MyDNS server
#
# Author:       Philipp Kern <phil@philkern.de>.
#               Based upon skeleton 1.9.4 by Miquel van Smoorenburg
#               <miquels@cistron.nl> and Ian Murdock <imurdock@gnu.ai.mit.edu>.
#

set -e

PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
DAEMON=/usr/local/sbin/mydns
NAME=mydns
DESC="DNS server"

SCRIPTNAME=/etc/init.d/$NAME

# Gracefully exit if the package has been removed.
test -x $DAEMON || exit 0

case "$1" in
  start)
        echo -n "Starting $DESC: $NAME"
        start-stop-daemon --start --quiet \
                --exec $DAEMON -- -b
        echo "."
        ;;
  stop)
        echo -n "Stopping $DESC: $NAME"
        start-stop-daemon --stop --oknodo --quiet \
                --exec $DAEMON
        echo "."
        ;;
  reload|force-reload)
        echo -n "Reloading $DESC configuration ..."
        start-stop-daemon --stop --signal HUP --quiet \
                --exec $DAEMON
        echo "done."
        ;;
  restart)
        echo -n "Restarting $DESC: $NAME"
        start-stop-daemon --stop --quiet --oknodo \
                --exec $DAEMON
        sleep 1
        start-stop-daemon --start --quiet \
                --exec $DAEMON -- -b
        echo "."
        ;;
  *)
        echo "Usage: $SCRIPTNAME {start|stop|restart|reload|force-reload}" >&2
        exit 1
        ;;
esac

exit 0
---------------------------------------------------------------------------

now execute:

chmod +x /etc/init.d/mydns
update-rc.d mydns defaults


6) Install vlogger and webalizer and firewall

apt-get install vlogger webalizer bastille


7) Install ISPConfig 3

There are two possile scenarios a) or b), but not both:

a) Installation of beta 3
    
    cd /tmp
    wget http://www.ispconfig.org/downloads/ISPConfig_3.0.0.7-beta.tar.gz
    tar xvfz ISPConfig_3.0.0.7-alpha.tar.gz
    cd ispconfig3_install/install/

b) Installation from SVN

    apt-get install subversion
    cd /tmp
    svn export svn://svn.ispconfig.org/ispconfig3/trunk/
    cd trunk/install
    
after a) or b)

proceed with the ISPConfig installation.

Now start the installation process by executing:

php -q install.php

The installer will configure all services like postfix, sasl, courier, etc. for you. A manual setup as required for ISPConfig 2 (perfect setup guides) is not nescessary. To login to the ISPConfig controlpanel, open the following URL in your browser (replace the IP to match your settings!):

http://server1.mydomain.tld:8080/

the default login is:

user: admin
password: admin

In case you get a permission denied error from apache, please restart the apache webserver process.


8) Apache Fix

Once you have restarted Apache you need to fix a quick setting in apache2. 

a) rm /etc/apache2/sites-enabled/000-default

b) echo "NameVirtualHost *:80">> /etc/apache2/httpd.conf

c) /etc/init.d/apache2 restart


9) Optional packages

9.1) Installing Jailkit:

apt-get install build-essential autoconf automake1.9 libtool flex bison
cd /tmp
wget http://olivier.sessink.nl/jailkit/jailkit-2.5.tar.gz
tar xvfz jailkit-2.5.tar.gz
cd jailkit-2.5
./configure
make
make install
rm -rf jailkit-2.5*

