Multiserver Setup mit dedizierten Web, E-Mail, DNS & MySQL Datenbank Servern unter Debian Squeeze mit ISPConfig 3

Version 1.0
Author: Till Brehm <t [dot] brehm [at] projektfarm [dot] com>


Dieses Tutorial beschreibt die Installation eines ISPConfig 3 Multiserver Setups mit dedizierten Web, E-Mail, Datenbank und zwei DNS Servern, welche alle durch eine einzelne ISPConfig 3 Kontrolloberfläche verwaltet werden. Das unten beschriebene Setup benutzt fünf Server und kann einfach durch Hinzufügen von weiteren Servern erweitert werden. Wollen Sie beispielsweise zwei Mailserver haben, führen Sie die Schritte aus Kapitel 2 einfach auf beiden Servern durch. Wollen Sie mehrere Webserver haben, dann installieren Sie ISPConfig im expert-Modus auf allen anderen außer dem ersten.

1 Installation der fünf Debian Basissysteme

Dieses Setup wird einen Master Server (auf welchem der Webserver und die ISPConfig Kontrolloberfläche laufen) und vier Slave Server beinhalten, welche für Datenbank, E-Mail und primären und sekundären DNS Server bestimmt sind.

Um das Clustersetup zu installieren, brauchen Sie fünf Server (oder virtuelle Server) mit einer Debian 5.0 Minimalinstallation. Das Basissetup wird in den Schritten 1 - 6 des folgenden Tutorials beschreiben:

http://www.howtoforge.de/anleitung/der-perfekte-server-debian-squeeze-debian-6-0-mit-bind-dovecot-ispconfig-3/

Befolgen Sie nur die Schritte 1 - 6 des Tutorials; alle weiteren Schritte unterscheiden sich von denen eines Clustersetups!

In meinem Beispiel benutze ich die folgenden Hostnamen und IP Adressen für die fünf Server:

Webserver
Hostname: web.example.tld IP Adresse: 192.168.0.105
Mailserver
Hostname: mail.example.tld IP Adresse: 192.168.0.106
Datenbankserver
Hostname: db.example.tld IP Adresse: 192.168.0.107
DNS Server (primär)
Hostname: ns1.example.tld IP Adresse: 192.168.0.108
DNS Server (sekundär)
Hostname: ns2.example.tld IP Adresse: 192.168.0.109
An jeder Stelle, an der diese Namen oder IP Adressen im Folgenden auftauchen, müssen Sie sie durch die Hostnamen und Adressen Ihrer Server ersetzen.

2 Installation des Webservers

Editieren Sie die hosts Datei und fügen Sie alle IP Adressen und Hostnamen Ihrer Server hinzu. Diese müssen beide an Ihr Setup angepasst werden.

vi /etc/hosts


127.0.0.1 localhost
192.168.0.105 web.example.tld 192.168.0.106 mail.example.tld 192.168.0.107 db.example.tld 192.168.0.108 ns1.example.tld 192.168.0.109 ns2.example.tld # The following lines are desirable for IPv6 capable hosts ::1 localhost ip6-localhost ip6-loopback fe00::0 ip6-localnet ff00::0 ip6-mcastprefix ff02::1 ip6-allnodes ff02::2 ip6-allrouters ff02::3 ip6-allhosts
Legen Sie den Hostnamen des Servers fest:

echo web.example.tld > /etc/hostname
/etc/init.d/hostname.sh start

Benutzen Sie...

apt-get update

... um die apt Paketdatenbank zu aktualisieren; und dann...

apt-get upgrade

... um die neusten Programmupdates zu installieren (falls es welche gibt).

Es ist immer gut die Systemzeit über das Internet mit einem NTP (network time protocol) Server zu synchronisieren. Benutzen Sie einfach...

apt-get -y install ntp ntpdate

... und Ihre Systemuhrzeit wird immer automatisch synchronisiert werden.

Installieren Sie den MySQL Server. Ein Exemplar eines MySQL Servers ist auf jedem Server notwendig, da ISPConfig diese benutzt um die Konfiguration zwischen den Servern zu synchronisieren.

apt-get -y install mysql-client mysql-server

Enter the new password for MySQL when requested by the installer.

Geben Sie das neue Passwort für MySQL ein, sobald Sie der Installer dazu auffordert.

MySQL soll alle Netzwerkschnittstellen des Master Servers benutzen, nicht nur localhost, deshalb editieren Sie die /etc/mysql/my.cnf Datei und kommentieren die Zeile bind-address = 127.0.0.1 aus:

vi /etc/mysql/my.cnf


[...]
# Instead of skip-networking the default is now to listen only on # localhost which is more compatible and is not less secure. #bind-address = 127.0.0.1 [...]
Starten Sie MySQL dann neu:

/etc/init.d/mysql restart

Installieren Sie als nächstes Apache2, PHP5, phpMyAdmin, FCGI, suExec, Pear und mcrypt:

apt-get -y 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 php5-cgi libapache2-mod-fcgid apache2-suexec php-pear php-auth php5-mcrypt mcrypt php5-imagick imagemagick libapache2-mod-suphp libopenssl-ruby libapache2-mod-ruby sudo zip wget

Antworten Sie folgendermaßen auf die folgende Frage:

Web server to reconfigure automatically: <-- apache2
Benutzen Sie folgenden Befehl um die Apache Module suexecrewritesslactions und include zu aktivieren:

a2enmod suexec rewrite ssl actions include ruby dav_fs dav auth_digest

PureFTPd und Quota können wie folgt installiert werden:

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

Editieren Sie /etc/default/pure-ftpd-common...

vi /etc/default/pure-ftpd-common

... und stellen Sie sicher, dass VIRTUALCHROOT=true gesetzt ist:
[...]
VIRTUALCHROOT=true [...]

3 Kommentar(e)

Zum Posten von Kommentaren bitte

Kommentare

Von: perikleus

Hi Leute,
danke fuer dieses tolle HowTo, wie immer super detailiert und selbst fuer Debian (fast) Laien wie mich verstaendlich ! ;-)
Ich habe allerdings feststellen muessen, dass mein Apache2 hier mit vlogger ein Problem hat.
DasApache Error Logfile wird mit Eintraegen wie diesen geflutet:


piped log program ' /usr/local/ispconfig/server/scripts/vlogger -s access.log -t "%Y%m%d-access.log" /var/log/ispconfig/httpd' failed unexpectedly
Can't locate Date/Format.pm in @INC (@INC contains: /etc/perl /usr/local/lib/perl/5.10.1 /usr/local/share/perl/5.10.1 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.10 /usr/share/perl/5.10 /usr/local/lib/site_perl) at /usr/local/ispconfig/server/scripts/vlogger line 148.
BEGIN failed--compilation aborted at /usr/local/ispconfig/server/scripts/vlogger line 148.


Folge ist, dass der Apache irgendwann stockt und keine requests mehr annimmt. Auch ISPConfig ist nicht mehr nutzbar.

Abhilfe schaffte bei mir dies:

apt-get install libtimedate-perl
/etc/init.d/apache2 restart


Falls jemand ein aehnliches Problem hoffe ich das ich helfen konnte ! ;-)


Von: SvenKLM

Hallo,

zuerst mal, ein geiles Tutorial.

Da ist nur ein Punkt, den ich nicht verstehe:

Wenn ich mehrere Webserver verwenden will, wie binde ich die ein?

Dann mal eine andere Frage, die nichts mit dem Turial zu tun hat:

Gibt es eine Empfehlung, ein bestimmtes WebFTP Programm zu verwenden?

Gruß
Sven


Von: S-204

Ich habe dazu gerade ein kleines Verständnisproblem.

Die IP-Adressen 192.168.xxx.xxx sind aus dem localen Bereich und aus dem Web nicht erreichbar. Der Root-Server beim Hoster hat aber nur 1 IP-Adresse. Wie bekomme ich in ISPconfig3 die Zuordnung der lokalen Adressen zu den Vservern hin (NAT-Routing ?) ?