Server Setup · 7 min read · Sep 11, 2025
Der perfekte Server CentOS 7.6 mit Apache, PHP 7.2, Postfix, Dovecot, Pure-FTPD, BIND und ISPConfig 3.1

Dieses Tutorial zeigt die Installation von ISPConfig 3.1 auf einem CentOS 7.6 (64Bit) Server. ISPConfig ist ein Webhosting-Kontrollpanel, das es Ihnen ermöglicht, die folgenden Dienste über einen Webbrowser zu konfigurieren: Apache-Webserver, PHP 7.2, Postfix-Mailserver, MySQL, BIND-Nameserver, PureFTPd, SpamAssassin, ClamAV, Mailman und viele mehr.
1 Anforderungen
Um ein solches System zu installieren, benötigen Sie Folgendes:
- Ein minimal installiertes CentOS 7.6-Server-System. Dies kann ein Server sein, der von Grund auf neu installiert wurde, wie in unserem Tutorial zum minimalen CentOS 7-Server beschrieben, oder ein virtueller Server oder Root-Server von einem Hosting-Unternehmen, das ein minimales CentOS 7.6-Setup installiert hat.
- Eine schnelle Internetverbindung.
2 Vorbemerkung
In diesem Tutorial verwende ich den Hostnamen server1.example.com mit der IP-Adresse 192.168.0.100 und dem Gateway 192.168.0.1. Diese Einstellungen können bei Ihnen abweichen, daher müssen Sie sie gegebenenfalls anpassen.
3 Server vorbereiten
Tastaturlayout einstellen
Falls das Tastaturlayout des Servers nicht mit Ihrer Tastatur übereinstimmt, können Sie mit dem localectl-Befehl auf das richtige Layout umschalten (in meinem Fall “de” für ein deutsches Tastaturlayout):
localectl set-keymap deUm eine Liste aller verfügbaren Tastaturlayouts zu erhalten, führen Sie aus:
localectl list-keymapsIch möchte ISPConfig am Ende dieses Tutorials installieren. ISPConfig wird mit dem Bastille-Firewall-Skript geliefert, das ich als Firewall verwenden werde, daher deaktiviere ich jetzt die Standard-CentOS-Firewall. Natürlich können Sie die CentOS-Firewall aktiviert lassen und nach Ihren Bedürfnissen konfigurieren (aber dann sollten Sie später keine andere Firewall verwenden, da sie höchstwahrscheinlich mit der CentOS-Firewall in Konflikt gerät).
Führen Sie…
yum -y install net-tools
systemctl stop firewalld.service
systemctl disable firewalld.serviceaus, um die CentOS-Firewall zu stoppen und zu deaktivieren. Es ist in Ordnung, wenn Sie hier Fehler erhalten, dies zeigt nur an, dass die Firewall nicht installiert war.
Dann sollten Sie überprüfen, ob die Firewall wirklich deaktiviert wurde. Führen Sie dazu den Befehl aus:
iptables -LDie Ausgabe sollte wie folgt aussehen:
[root@server1 ~]# iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destinationChain FORWARD (policy ACCEPT)
target prot opt source destinationChain OUTPUT (policy ACCEPT)
target prot opt source destinationOder verwenden Sie den Befehl firewall-cmd:
firewall-cmd --state[root@server1 ~]# firewall-cmd --state
nicht aktiv
[root@server1 ~]#Jetzt werde ich den Netzwerk-Konfigurationseditor und den shell-basierten Editor “nano” installieren, den ich in den nächsten Schritten verwenden werde, um die Konfigurationsdateien zu bearbeiten:
yum -y install nano wget NetworkManager-tui yum-utilsWenn Sie Ihre Netzwerkkarte während der Installation nicht konfiguriert haben, können Sie das jetzt tun. Führen Sie…
nmtui… und gehen Sie zu Verbindung bearbeiten:

Wählen Sie Ihre Netzwerkschnittstelle aus:

Füllen Sie dann Ihre Netzwerkinformationen aus - deaktivieren Sie DHCP und geben Sie eine statische IP-Adresse, eine Netzmaske, Ihr Gateway und einen oder zwei Nameserver ein, und drücken Sie OK:

Wählen Sie als Nächstes OK, um die Änderungen zu bestätigen, die Sie in den Netzwerkeinstellungen vorgenommen haben, und Beenden, um das nmtui-Netzwerkkonfigurationstool zu schließen.

Sie sollten jetzt
ifconfigausführen, um zu überprüfen, ob der Installer Ihre IP-Adresse richtig erkannt hat:
[root@localhost ~]# ifconfig
ens33: flags=4163 mtu 1500
inet 192.168.0.100 netmask 255.255.255.0 broadcast 192.168.0.255
inet6 fe80::20c:29ff:fee5:5b47 prefixlen 64 scopeid 0x20
inet6 2003:c2:9731:a445:20c:29ff:fee5:5b47 prefixlen 64 scopeid 0x0
ether 00:0c:29:e5:5b:47 txqueuelen 1000 (Ethernet)
RX packets 227784 bytes 317714901 (302.9 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 205574 bytes 23608521 (22.5 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73 mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10
loop txqueuelen 1 (Local Loopback)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
[root@localhost ~]# Wenn Ihre Netzwerkkarte dort nicht angezeigt wird, ist sie möglicherweise beim Booten nicht aktiviert. In diesem Fall öffnen Sie die Datei /etc/sysconfig/network-scripts/ifcfg-eth0
nano /etc/sysconfig/network-scripts/ifcfg-ens33und setzen Sie ONBOOT auf yes:
[...]
ONBOOT=yes
[...] und starten Sie den Server neu.
Überprüfen Sie Ihre /etc/resolv.conf, ob alle Nameserver aufgelistet sind, die Sie zuvor konfiguriert haben:
cat /etc/resolv.confWenn Nameserver fehlen, führen Sie
nmtuiaus und fügen Sie die fehlenden Nameserver erneut hinzu.
Jetzt zur Konfiguration…
Anpassen von /etc/hosts und /etc/hostname
Als Nächstes werden wir /etc/hosts bearbeiten. Lassen Sie es so aussehen:
nano /etc/hosts127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
192.168.0.100 server1.example.com server1
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6Setzen Sie den Hostnamen in der Datei /etc/hostname. Die Datei sollte den vollständig qualifizierten Domainnamen (z.B. server1.example.com in meinem Fall) und nicht nur den Kurznamen wie “server1” enthalten. Öffnen Sie die Datei mit dem Nano-Editor:
nano /etc/hostnameUnd setzen Sie den Hostnamen in der Datei.
server1.example.comSpeichern Sie die Datei und beenden Sie nano.
Setzen Sie SELinux auf permissive
SELinux ist eine Sicherheitserweiterung von CentOS, die erweiterte Sicherheit bieten soll. ISPConfig wird nicht mit einem SELinux-Regelsatz geliefert, daher setze ich es auf permissive (das ist ein Muss, wenn Sie ISPConfig später installieren möchten).
Bearbeiten Sie /etc/selinux/config und setzen Sie SELINUX=permissive:
nano /etc/selinux/config# Diese Datei steuert den Status von SELinux im System.
# SELINUX= kann einen dieser drei Werte annehmen:
# enforcing - SELinux-Sicherheitsrichtlinie wird durchgesetzt.
# permissive - SELinux gibt Warnungen aus, anstatt durchzusetzen.
# disabled - Keine SELinux-Richtlinie ist geladen.
SELINUX=permissive
# SELINUXTYPE= kann einen dieser beiden Werte annehmen:
# targeted - Zielprozesse sind geschützt,
# mls - Multi Level Security-Schutz.
SELINUXTYPE=targetedDanach müssen wir das System neu starten:
reboot4 Zusätzliche Repositories aktivieren und einige Software installieren
Zuerst importieren wir die GPG-Schlüssel für Softwarepakete:
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY*Dann aktivieren wir das EPEL-Repository auf unserem CentOS-System, da viele der Pakete, die wir im Verlauf dieses Tutorials installieren werden, im offiziellen CentOS 7-Repository nicht verfügbar sind:
yum -y install epel-releaseDann aktualisieren wir unsere vorhandenen Pakete auf dem System:
yum -y updateJetzt installieren wir einige Softwarepakete, die später benötigt werden:
yum -y groupinstall 'Development Tools'5 Quota
(Wenn Sie ein anderes Partitionierungsschema gewählt haben als ich, müssen Sie dieses Kapitel anpassen, damit Quota auf den Partitionen angewendet wird, wo Sie es benötigen.)
Um Quota zu installieren, führen wir diesen Befehl aus:
yum -y install quotaJetzt überprüfen wir, ob Quota bereits für das Dateisystem aktiviert ist, in dem die Website (/var/www) und die Maildir-Daten (var/vmail) gespeichert sind. In diesem Beispiel-Setup habe ich eine große Root-Partition, also suche ich nach ‘ / ‘:
mount | grep ' / '[root@server1 ~]# mount | grep ' / '
/dev/mapper/centos-root on / type xfs (rw,relatime,attr2,inode64,noquota)
[root@server1 ~]#Wenn Sie eine separate /var-Partition haben, verwenden Sie stattdessen:
mount | grep ' /var 'Wenn die Zeile das Wort “ noquota “ enthält, fahren Sie mit den folgenden Schritten fort, um Quota zu aktivieren.
Aktivieren von Quota auf der / (Root-)Partition
Normalerweise würden Sie Quota in der Datei /etc/fstab aktivieren, aber wenn das Dateisystem das Root-Dateisystem “ / “ ist, muss Quota durch einen Bootparameter des Linux-Kernels aktiviert werden.
Bearbeiten Sie die Grub-Konfigurationsdatei:
nano /etc/default/grubSuchen Sie nach der Zeile, die mit GRUB_CMDLINE_LINUX beginnt, und fügen Sie rootflags=uquota,gquota zu den Befehlszeilenparametern hinzu, sodass die resultierende Zeile wie folgt aussieht:
GRUB_CMDLINE_LINUX="crashkernel=auto rd.lvm.lv=centos/root rd.lvm.lv=centos/swap rhgb quiet rootflags=uquota,gquota"Und wenden Sie die Änderungen an, indem Sie den folgenden Befehl ausführen.
cp /boot/grub2/grub.cfg /boot/grub2/grub.cfg_bak
grub2-mkconfig -o /boot/grub2/grub.cfgund starten Sie den Server neu.
rebootÜberprüfen Sie nun, ob Quota aktiviert ist:
mount | grep ' / '[root@server1 ~]# mount | grep ' / '
/dev/mapper/centos-root on / type xfs (rw,relatime,attr2,inode64,usrquota,grpquota)
[root@server1 ~]#Wenn Quota aktiv ist, sehen wir “ usrquota,grpquota “ in der Liste der Mount-Optionen.
Aktivieren von Quota auf einer separaten /var-Partition
Wenn Sie eine separate /var-Partition haben, bearbeiten Sie /etc/fstab und fügen Sie ,uquota,gquota zur /-Partition (/dev/mapper/centos-var) hinzu:
nano /etc/fstab
#
# /etc/fstab
# Erstellt von anaconda am So Sep 21 16:33:45 2014
#
# Zugängliche Dateisysteme werden unter '/dev/disk' verwaltet
# Weitere Informationen finden Sie in den Man-Seiten fstab(5), findfs(8), mount(8) und/oder blkid(8)
#
/dev/mapper/centos-root / xfs defaults 1 1
/dev/mapper/centos-var /var xfs defaults,uquota,gquota 1 2
UUID=9ac06939-7e43-4efd-957a-486775edd7b4 /boot xfs defaults 1 3
/dev/mapper/centos-swap swap swap defaults 0 0Führen Sie dann aus:
mount -o remount /varquotacheck -avugm
quotaon -avugum Quota zu aktivieren. Wenn Sie einen Fehler erhalten, dass keine Partition mit aktivierten Quota vorhanden ist, starten Sie den Server neu, bevor Sie fortfahren.
6 Installieren von Apache, PHP, MySQL und phpMyAdmin
Aktivieren Sie das Remi-Repository, um neuere PHP-Versionen zu erhalten:
yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm
yum-config-manager --enable remi-php72Wir können die benötigten Pakete mit einem einzigen Befehl installieren:
yum -y install ntp httpd mod_ssl mariadb-server php php-mysql php-mbstring phpmyadminUm sicherzustellen, dass der Server nicht über die HTTPOXY-Sicherheitsanfälligkeit angegriffen werden kann, deaktivieren wir den HTTP_PROXY-Header in Apache global.
Fügen Sie die Apache-Headerregel am Ende der httpd.conf-Datei hinzu:
echo "RequestHeader unset Proxy early" >> /etc/httpd/conf/httpd.confUnd starten Sie httpd neu, um die Konfigurationsänderung anzuwenden.
service httpd restartErhalte neue Beiträge in deinem Posteingang.
Kein Spam. Jederzeit abmelden.