Server Setup · 8 min read · Oct 28, 2025
Der perfekte Server - Ubuntu 18.04 (Bionic Beaver) mit Apache, PHP, MySQL, PureFTPD, BIND, Postfix, Dovecot und ISPConfig 3.1 - Seite 2
8. Installieren Sie Apache, PHP, phpMyAdmin, FCGI, SuExec, Pear und mcrypt
Apache 2.4, PHP 7.2, phpMyAdmin, FCGI, suExec und Pear können wie folgt installiert werden:
apt-get -y install apache2 apache2-doc apache2-utils libapache2-mod-php php7.2 php7.2-common php7.2-gd php7.2-mysql php7.2-imap phpmyadmin php7.2-cli php7.2-cgi libapache2-mod-fcgid apache2-suexec-pristine php-pear mcrypt imagemagick libruby libapache2-mod-python php7.2-curl php7.2-intl php7.2-pspell php7.2-recode php7.2-sqlite3 php7.2-tidy php7.2-xmlrpc php7.2-xsl memcached php-memcache php-imagick php-gettext php7.2-zip php7.2-mbstring php-soap php7.2-soap libapache2-reload-perlSie werden die folgende Frage sehen:
Webserver, der automatisch neu konfiguriert werden soll: <-- apache2
Datenbank für phpmyadmin mit dbconfig-common konfigurieren? <-- Ja
MySQL-Anwendungspasswort für phpmyadmin: <-- Drücken Sie die Eingabetaste Führen Sie dann den folgenden Befehl aus, um die Apache-Module suexec, rewrite, ssl, actions und include zu aktivieren (plus dav, dav_fs und auth_digest, wenn Sie WebDAV verwenden möchten):
a2enmod suexec rewrite ssl actions include cgia2enmod dav_fs dav auth_digest headersUm sicherzustellen, dass der Server nicht über die HTTPOXY-Sicherheitsanfälligkeit angegriffen werden kann, werde ich den HTTP_PROXY-Header in Apache global deaktivieren. Erstellen Sie eine neue httpoxy.conf-Datei mit nano:
nano /etc/apache2/conf-available/httpoxy.confFügen Sie diesen Inhalt in die Datei ein:
RequestHeader unset Proxy early
Aktivieren Sie die Konfigurationsdatei, indem Sie Folgendes ausführen:
a2enconf httpoxyStarten Sie Apache anschließend neu:
service apache2 restartWenn Sie Ruby-Dateien mit der Erweiterung .rb auf Ihren durch ISPConfig erstellten Websites hosten möchten, müssen Sie die Zeile application/x-ruby rb in /etc/mime.types auskommentieren:
nano /etc/mime.types[...]
#application/x-ruby rb
[...](Dies ist nur für .rb-Dateien erforderlich; Ruby-Dateien mit der Erweiterung .rbx funktionieren sofort.)
Starten Sie Apache anschließend neu:
service apache2 restart8.1 PHP Opcode-Cache (optional)
Opcache ist ein kostenloser PHP Opcode-Cache zum Caching und Optimieren von PHP-Zwischencode. APCu ist ein Kompatibilitätsmodul, das APC-kompatible Funktionen für Opcache bereitstellt, das von vielen CMS-Caching-Systemen verwendet wird. Es wird empfohlen, diese PHP-Erweiterungen zu installieren, um Ihre PHP-Seite zu beschleunigen.
APCu kann wie folgt installiert werden:
apt-get -y install php7.2-opcache php-apcuStarten Sie nun Apache neu:
service apache2 restart8.2 PHP-FPM
Um PHP-FPM mit Apache zu verwenden, benötigen wir das mod_proxy_fcgi Apache-Modul, das standardmäßig installiert ist und nur aktiviert werden muss. Wir können PHP-FPM wie folgt installieren:
apt-get -y install php7.2-fpmStellen Sie sicher, dass Sie die Module aktivieren und Apache neu starten:
a2enmod actions proxy_fcgi alias
service apache2 restart10.1 Installieren Sie HHVM (HipHop Virtual Machine), optional
In diesem Schritt installieren wir HHVM mit apt. HHVM ist eine schnelle PHP-Engine, die von Facebook entwickelt wurde.
apt-get -y install hhvm9. Installieren Sie Let’s Encrypt
ISPConfig 3.1 hat eine integrierte Unterstützung für die kostenlose SSL-Zertifizierungsstelle Let’s Encrypt. Die Let’s Encrypt-Funktion ermöglicht es Ihnen, kostenlose SSL-Zertifikate für Ihre Website in ISPConfig zu erstellen.
Jetzt fügen wir die Unterstützung für Let’s Encrypt hinzu.
apt-get -y install certbot10. Installieren Sie Mailman
ISPConfig ermöglicht es Ihnen, Mailman-Mailinglisten zu verwalten (zu erstellen/zu ändern/zu löschen). Wenn Sie diese Funktion nutzen möchten, installieren Sie Mailman wie folgt:
apt-get -y install mailmanWählen Sie mindestens eine Sprache, z. B.:
Sprachen zur Unterstützung: <– en (Englisch)
Fehlende Site-Liste <– Ok
Der Fehler ‘ Job für mailman.service fehlgeschlagen, da der Steuerungsprozess mit Fehler code beendet wurde.’ kann vorerst ignoriert werden.
Bevor wir Mailman starten können, muss eine erste Mailingliste mit dem Namen mailman erstellt werden:
newlist mailmanroot@server1:~# newlist mailman
Geben Sie die E-Mail-Adresse der Person ein, die die Liste verwaltet: <– E-Mail-Adresse des Administrators, z. B. [email protected]
Anfängliches Mailman-Passwort: <– Administrationspasswort für die Mailman-Liste
Um die Erstellung Ihrer Mailingliste abzuschließen, müssen Sie Ihre /etc/aliases (oder äquivalente) Datei bearbeiten, indem Sie die folgenden Zeilen hinzufügen und möglicherweise das Programm newaliases ausführen:
Mailman-Mailingliste
mailman: “|/var/lib/mailman/mail/mailman post mailman”
mailman-admin: “|/var/lib/mailman/mail/mailman admin mailman”
mailman-bounces: “|/var/lib/mailman/mail/mailman bounces mailman”
mailman-confirm: “|/var/lib/mailman/mail/mailman confirm mailman”
mailman-join: “|/var/lib/mailman/mail/mailman join mailman”
mailman-leave: “|/var/lib/mailman/mail/mailman leave mailman”
mailman-owner: “|/var/lib/mailman/mail/mailman owner mailman”
mailman-request: “|/var/lib/mailman/mail/mailman request mailman”
mailman-subscribe: “|/var/lib/mailman/mail/mailman subscribe mailman”
mailman-unsubscribe: “|/var/lib/mailman/mail/mailman unsubscribe mailman”
Drücken Sie die Eingabetaste, um den Mailman-Besitzer zu benachrichtigen… <– EINGABETASTE
root@server1:~#
Öffnen Sie anschließend /etc/aliases…
nano /etc/aliases… und fügen Sie die folgenden Zeilen hinzu:
[...]
## Mailman-Mailingliste
mailman: "|/var/lib/mailman/mail/mailman post mailman"
mailman-admin: "|/var/lib/mailman/mail/mailman admin mailman"
mailman-bounces: "|/var/lib/mailman/mail/mailman bounces mailman"
mailman-confirm: "|/var/lib/mailman/mail/mailman confirm mailman"
mailman-join: "|/var/lib/mailman/mail/mailman join mailman"
mailman-leave: "|/var/lib/mailman/mail/mailman leave mailman"
mailman-owner: "|/var/lib/mailman/mail/mailman owner mailman"
mailman-request: "|/var/lib/mailman/mail/mailman request mailman"
mailman-subscribe: "|/var/lib/mailman/mail/mailman subscribe mailman"
mailman-unsubscribe: "|/var/lib/mailman/mail/mailman unsubscribe mailman"Führen Sie
newaliasesanschließend aus und starten Sie Postfix neu:
service postfix restartSchließlich müssen wir die Mailman-Apache-Konfiguration aktivieren:
ln -s /etc/mailman/apache.conf /etc/apache2/conf-available/mailman.confDies definiert das Alias /cgi-bin/mailman/ für alle Apache-VHosts, was bedeutet, dass Sie auf die Mailman-Administrationsoberfläche für eine Liste unter http://
Unter http://
Aktivieren Sie die Konfiguration mit:
a2enconf mailmanStarten Sie Apache anschließend neu:
service apache2 restartStarten Sie dann den Mailman-Daemon:
service mailman start11. Installieren Sie PureFTPd und Quota
PureFTPd und Quota können mit dem folgenden Befehl installiert werden:
apt-get -y install pure-ftpd-common pure-ftpd-mysql quota quotatoolBearbeiten Sie die Datei /etc/default/pure-ftpd-common…
nano /etc/default/pure-ftpd-common… und stellen Sie sicher, dass der Startmodus auf standalone gesetzt ist und VIRTUALCHROOT=true gesetzt ist:
[...]
STANDALONE_OR_INETD=standalone
[...]
VIRTUALCHROOT=true
[...]Jetzt konfigurieren wir PureFTPd, um FTP- und TLS-Sitzungen zuzulassen. FTP ist ein sehr unsicheres Protokoll, da alle Passwörter und alle Daten im Klartext übertragen werden. Durch die Verwendung von TLS kann die gesamte Kommunikation verschlüsselt werden, wodurch FTP viel sicherer wird.
Wenn Sie FTP- und TLS-Sitzungen zulassen möchten, führen Sie aus:
echo 1 > /etc/pure-ftpd/conf/TLSUm TLS zu verwenden, müssen wir ein SSL-Zertifikat erstellen. Ich erstelle es in /etc/ssl/private/, daher erstelle ich zuerst dieses Verzeichnis:
mkdir -p /etc/ssl/private/Anschließend können wir das SSL-Zertifikat wie folgt generieren:
openssl req -x509 -nodes -days 7300 -newkey rsa:2048 -keyout /etc/ssl/private/pure-ftpd.pem -out /etc/ssl/private/pure-ftpd.pemLändercode (2 Buchstaben) [AU]: <– Geben Sie Ihren Ländercode ein (z. B. “DE”).
Bundesland oder Provinzname (vollständiger Name) [Some-State]: <– Geben Sie Ihren Bundesland- oder Provinzname ein.
Ortsname (z. B. Stadt) []: <– Geben Sie Ihre Stadt ein.
Organisationsname (z. B. Firma) [Internet Widgits Pty Ltd]: <– Geben Sie Ihren Organisationsnamen ein (z. B. den Namen Ihrer Firma).
Abteilung (z. B. Sektion) []: <– Geben Sie Ihren Abteilungsnamen ein (z. B. “IT-Abteilung”).
Allgemeiner Name (z. B. IHR Name) []: <– Geben Sie den vollqualifizierten Domainnamen des Systems ein (z. B. “server1.example.com”).
E-Mail-Adresse []: <– Geben Sie Ihre E-Mail-Adresse ein.
Ändern Sie die Berechtigungen des SSL-Zertifikats:
chmod 600 /etc/ssl/private/pure-ftpd.pemStarten Sie dann PureFTPd neu:
service pure-ftpd-mysql restartBearbeiten Sie /etc/fstab. Meine sieht so aus (ich habe usrjquota=quota.user,grpjquota=quota.group,jqfmt=vfsv0 zur Partition mit dem Einhängepunkt / hinzugefügt):
nano /etc/fstab# /etc/fstab: statische Dateisysteminformationen.
#
# Verwenden Sie 'blkid', um die universell eindeutige Kennung für ein
# Gerät zu drucken; dies kann mit UUID= als robustere Methode verwendet werden, um Geräte zu benennen,
# die auch funktionieren, wenn Festplatten hinzugefügt und entfernt werden. Siehe fstab(5).
#
#
/dev/mapper/server1--vg-root / ext4 errors=remount-ro,usrjquota=quota.user,grpjquota=quota.group,jqfmt=vfsv0 0 1
/dev/mapper/server1--vg-swap_1 none swap sw 0 0
/dev/fd0 /media/floppy0 auto rw,user,noauto,exec,utf8 0 0 Um Quota zu aktivieren, führen Sie diese Befehle aus:
mount -o remount /quotacheck -avugm
quotaon -avugWas die folgende Ausgabe zeigt:
root@server1:/opt/metronome# quotacheck -avugm
quotacheck: Scanning /dev/mapper/server1--vg-root [/] done
quotacheck: Cannot stat old user quota file //quota.user: No such file or directory. Usage will not be subtracted.
quotacheck: Cannot stat old group quota file //quota.group: No such file or directory. Usage will not be subtracted.
quotacheck: Cannot stat old user quota file //quota.user: No such file or directory. Usage will not be subtracted.
quotacheck: Cannot stat old group quota file //quota.group: No such file or directory. Usage will not be subtracted.
quotacheck: Checked 13602 directories and 96597 files
quotacheck: Old file not found.
quotacheck: Old file not found.
root@server1:/opt/metronome# quotaon -avug
/dev/mapper/server1--vg-root [/]: group quotas turned on
/dev/mapper/server1--vg-root [/]: user quotas turned on12. Installieren Sie den BIND DNS-Server
BIND kann wie folgt installiert werden:
apt-get -y install bind9 dnsutils havegedAktivieren und starten Sie den haveged-Daemon:
systemctl enable haveged
systemctl start haveged13. Installieren Sie Vlogger, Webalizer und AWStats
Vlogger, Webalizer und AWStats können wie folgt installiert werden:
apt-get -y install vlogger webalizer awstats geoip-database libclass-dbi-mysql-perlÖffnen Sie anschließend /etc/cron.d/awstats…
nano /etc/cron.d/awstats… und kommentieren Sie alles in dieser Datei aus:
#MAILTO=root
#*/10 * * * * www-data [ -x /usr/share/awstats/tools/update.sh ] && /usr/share/awstats/tools/update.sh
# Generieren Sie statische Berichte:
#10 03 * * * www-data [ -x /usr/share/awstats/tools/buildstatic.sh ] && /usr/share/awstats/tools/buildstatic.sh14. Installieren Sie Jailkit
Jailkit wird nur benötigt, wenn Sie SSH-Benutzer chrooten möchten. Es kann wie folgt installiert werden (wichtig: Jailkit muss vor ISPConfig installiert werden - es kann danach nicht installiert werden!):
apt-get -y install build-essential autoconf automake1.11 libtool flex bison debhelper binutilscd /tmp
wget http://olivier.sessink.nl/jailkit/jailkit-2.19.tar.gz
tar xvfz jailkit-2.19.tar.gz
cd jailkit-2.19
echo 5 > debian/compatDann bauen Sie das Jailkit-Paket, indem Sie diesen Befehl ausführen:
./debian/rules binarySie können jetzt das Jailkit.deb-Paket wie folgt installieren:
cd ..
dpkg -i jailkit_2.19-1_*.deb
rm -rf jailkit-2.19*15. Installieren Sie fail2ban und UFW
Dies ist optional, aber empfohlen, da der ISPConfig-Monitor versucht, das Protokoll anzuzeigen:
apt-get -y install fail2banUm fail2ban zu ermöglichen, PureFTPd und Dovecot zu überwachen, erstellen Sie die Datei /etc/fail2ban/jail.local:
nano /etc/fail2ban/jail.local[pure-ftpd]
enabled = true
port = ftp
filter = pure-ftpd
logpath = /var/log/syslog
maxretry = 3
[dovecot]
enabled = true
filter = dovecot
action = iptables-multiport[name=dovecot-pop3imap, port="pop3,pop3s,imap,imaps", protocol=tcp]
logpath = /var/log/mail.log
maxretry = 5
[postfix]
enabled = true
port = smtp
filter = postfix
logpath = /var/log/mail.log
maxretry = 3Starten Sie fail2ban anschließend neu:
service fail2ban restartUm die UFW-Firewall zu installieren, führen Sie diesen apt-Befehl aus:
apt-get install ufwErhalte neue Beiträge in deinem Posteingang.
Kein Spam. Jederzeit abmelden.