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:
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 suexec, rewrite, ssl, actions 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 [...] |