Server Setup · 9 min read · Oct 30, 2025

Der perfekte Server - Ubuntu 18.04 (Nginx, MySQL, PHP, Postfix, BIND, Dovecot, Pure-FTPD und ISPConfig 3.1) - Seite 3

15. Roundcube Webmail installieren

Um RoundCube Webmail zu installieren, führen Sie aus:

apt-get -y install roundcube roundcube-core roundcube-mysql roundcube-plugins javascript-common libjs-jquery-mousewheel php-net-sieve tinymce

Der Installer wird die folgenden Fragen stellen:

Datenbank für roundcube mit dbconfig-common konfigurieren? <-- Ja  
MySQL-Anwendungspasswort für roundcube: <-- Drücken Sie die Eingabetaste  

Bearbeiten Sie dann die RoundCube config.inc.php Konfigurationsdatei:

nano /etc/roundcube/config.inc.php

und ändern Sie den Standardhost auf localhost:

$config['default_host'] = 'localhost';

Dies verhindert, dass Roundcube das Eingabefeld für den Servernamen im Anmeldeformular anzeigt.

Erstellen Sie nun einen Symlink, damit wir die SquirrelMail-Konfiguration in ISPConfig für Roundcube verwenden können:

ln -s /usr/share/roundcube /usr/share/squirrelmail

Nachdem Sie ISPConfig 3 installiert haben, können Sie Roundcube wie folgt aufrufen:

Der ISPConfig Apps vhost auf Port 8081 für nginx kommt mit einer Roundcube-Konfiguration, sodass Sie http://server1.example.com:8081/webmail verwenden können, um auf Roundcube zuzugreifen.

Wenn Sie einen /webmail Alias verwenden möchten, den Sie von Ihren Websites aus verwenden können, ist dies etwas komplizierter als bei Apache, da nginx keine globalen Aliase hat (d.h. Aliase, die für alle vhosts definiert werden können). Daher müssen Sie diese Aliase für jeden vhost definieren, von dem aus Sie auf Roundcube zugreifen möchten.

Um dies zu tun, fügen Sie Folgendes in das nginx-Direktivenfeld auf der Registerkarte Optionen der Website in ISPConfig ein:

        location /roundcube {
               root /usr/share/;
               index index.php index.html index.htm;
               location ~ ^/roundcube/(.+\.php)$ {
                       try_files $uri =404;
                       root /usr/share/;
                       fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
                       fastcgi_index index.php;
                       fastcgi_param SCRIPT_FILENAME $request_filename;
                       include /etc/nginx/fastcgi_params;
                       fastcgi_param PATH_INFO $fastcgi_script_name;
                       fastcgi_buffer_size 128k;
                       fastcgi_buffers 256 4k;
                       fastcgi_busy_buffers_size 256k;
                       fastcgi_temp_file_write_size 256k;
                       fastcgi_intercept_errors on;
               }
               location ~* ^/roundcube/(.+\.(jpg|jpeg|gif|css|png|js|ico|html|xml|txt))$ {
                       root /usr/share/;
               }
        }
        location /webmail {
               rewrite ^/* /roundcube last;
        }

Wenn Sie http s anstelle von http für Ihren vhost verwenden, sollten Sie die Zeile fastcgi_param HTTPS on; zu Ihrer SquirrelMail-Konfiguration wie folgt hinzufügen:

        location /roundcube {
               root /usr/share/;
               index index.php index.html index.htm;
               location ~ ^/roundcube/(.+\.php)$ {
                       try_files $uri =404;
                       root /usr/share/;
                       fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
                       fastcgi_param HTTPS on; # <-- diese Zeile hinzufügen
                       fastcgi_index index.php;
                       fastcgi_param SCRIPT_FILENAME $request_filename;
                       include /etc/nginx/fastcgi_params;
                       fastcgi_param PATH_INFO $fastcgi_script_name;
                       fastcgi_buffer_size 128k;
                       fastcgi_buffers 256 4k;
                       fastcgi_busy_buffers_size 256k;
                       fastcgi_temp_file_write_size 256k;
                       fastcgi_intercept_errors on;
               }
               location ~* ^/roundcube/(.+\.(jpg|jpeg|gif|css|png|js|ico|html|xml|txt))$ {
                       root /usr/share/;
               }
        }
        location /webmail {
               rewrite ^/* /roundcube last;
        }

Wenn Sie sowohl http als auch https für Ihren vhost verwenden, müssen Sie den folgenden Abschnitt in den http {} Abschnitt in /etc/nginx/nginx.conf (vor allen Include-Zeilen) hinzufügen, der bestimmt, ob der Besucher http oder https verwendet und die Variable $fastcgi_https entsprechend festlegt:

nano /etc/nginx/nginx.conf
[...]
http {
[...]
        ## Erkennen, wann HTTPS verwendet wird
        map $scheme $fastcgi_https {
          default off;
          https on;

        }
[...]
}
[...]

Vergessen Sie nicht, nginx danach neu zu laden:

service nginx reload

Gehen Sie dann erneut zum nginx-Direktivenfeld und fügen Sie anstelle von fastcgi_param HTTPS on; die Zeile fastcgi_param HTTPS $fastcgi_https; hinzu, damit Sie Roundcube sowohl für http- als auch für https-Anfragen verwenden können:

        location /roundcube {
               root /usr/share/;
               index index.php index.html index.htm;
               location ~ ^/roundcube/(.+\.php)$ {
                       try_files $uri =404;
                       root /usr/share/;
                       fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
                       fastcgi_param HTTPS $fastcgi_https; # <-- diese Zeile hinzufügen
                       fastcgi_index index.php;
                       fastcgi_param SCRIPT_FILENAME $request_filename;
                       include /etc/nginx/fastcgi_params;
                       fastcgi_param PATH_INFO $fastcgi_script_name;
                       fastcgi_buffer_size 128k;
                       fastcgi_buffers 256 4k;
                       fastcgi_busy_buffers_size 256k;
                       fastcgi_temp_file_write_size 256k;
                       fastcgi_intercept_errors on;
               }
               location ~* ^/roundcube/(.+\.(jpg|jpeg|gif|css|png|js|ico|html|xml|txt))$ {
                       root /usr/share/;
               }
        }
        location /webmail {
               rewrite ^/* /roundcube last;
        }

16. ISPConfig 3.1 installieren

Bevor Sie mit der Installation von ISPConfig beginnen, stellen Sie sicher, dass Apache gestoppt ist (falls es installiert ist - es ist möglich, dass einige Ihrer installierten Pakete Apache als Abhängigkeit installiert haben, ohne dass Sie es wissen). Wenn Apache2 bereits auf dem System installiert ist, stoppen Sie es jetzt…

service apache2 stop

… und entfernen Sie die Systemstartlinks von Apache:

update-rc.d -f apache2 remove

Stellen Sie sicher, dass nginx läuft:

service nginx restart

(Wenn Sie sowohl Apache als auch nginx installiert haben, fragt der Installer, welchen Sie verwenden möchten: Apache und nginx erkannt. Wählen Sie den Server, der für ISPConfig verwendet werden soll: (apache,nginx) [apache]:

Geben Sie nginx ein. Wenn nur Apache oder Nginx installiert sind, wird dies automatisch vom Installer erkannt, und es wird keine Frage gestellt.)

Um ISPConfig 3.1 aus dem GIT-Stable-Zweig zu installieren, tun Sie dies:

cd /tmp   
wget -O ispconfig.tar.gz https://www.ispconfig.org/downloads/ISPConfig-3-stable.tar.gz  
tar xfz ispconfig.tar.gz  
cd ispconfig3*/install/

Der nächste Schritt ist, auszuführen

php -q install.php

Dies startet den ISPConfig 3.1 Installer. Der Installer konfiguriert alle Dienste wie Postfix, Dovecot usw. für Sie.

root@server1:/tmp/ispconfig3-stable-3.1-da1e393d7bed829d180dd9006019201e3370e77a/install# php install.php

--------------------------------------------------------------------------------  
_____ ___________ _____ __ _ ____  
|_ _/ ___| ___ \ / __ \ / _(_) /__ \  
| | \ `--.| |_/ / | / \/ ___ _ __ | |_ _ __ _ _/ /  
| | `--. \ __/ | | / _ \| '_ \| _| |/ _` | |_ |  
_| |_\/__/ / | | \__/\ (_) | | | | | | | (_| | ___\ \  
\___/\____/\_| \____/\___/|_| |_|_| |_\__, | \____/  
__/ |  
|___/  
--------------------------------------------------------------------------------

>> Erste Konfiguration
Betriebssystem: Ubuntu 18.04 LTS (Bionic Beaver)
Folgendes werden einige Fragen zur primären Konfiguration sein, seien Sie vorsichtig.  
Die Standardwerte stehen in [Klammern] und können mit  akzeptiert werden.  
Tippen Sie "quit" (ohne Anführungszeichen), um den Installer zu stoppen.

Sprache auswählen (en,de) [en]: <-- EINGABETASTE
Installationsmodus (standard,experte) [standard]: <-- EINGABETASTE
Vollqualifizierter Hostname (FQDN) des Servers, z.B. server1.domain.tld [server1.example.com]: <-- EINGABETASTE
MySQL-Server-Hostname [localhost]: <-- EINGABETASTE
MySQL-Server-Port [3306]: <-- EINGABETASTE
MySQL-Root-Benutzername [root]: <-- EINGABETASTE
MySQL-Root-Passwort []: <-- geben Sie hier das MySQL-Root-Passwort ein
MySQL-Datenbank zu erstellen [dbispconfig]: <-- EINGABETASTE
MySQL-Zeichensatz [utf8]: <-- EINGABETASTE
Postgrey konfigurieren  
Postfix konfigurieren  
Generierung eines 4096-Bit-RSA-Privatschlüssels  
.................................................................................................................................................................................................................................................................................................................................................................................................................++  
...++  
neuen privaten Schlüssel schreiben in 'smtpd.key'  
-----  
Sie werden aufgefordert, Informationen einzugeben, die in Ihre Zertifikatsanforderung aufgenommen werden.  
Was Sie eingeben werden, wird als Distinguished Name oder DN bezeichnet.  
Es gibt einige Felder, die Sie leer lassen können.  
Für einige Felder gibt es einen Standardwert,  
Wenn Sie '.' eingeben, wird das Feld leer gelassen.  
-----  
Ländercode (2 Buchstaben) [AU]: <-- geben Sie Ihren 2-Buchstaben-Ländercode ein, z.B. DE in meinem Fall  
Bundesland oder Provinzname (voller Name) [Some-State]: <-- Geben Sie Ihren Wohnsitzstaat ein  
Ortsname (z.B. Stadt) []:  <-- Geben Sie Ihre Stadt ein, in meinem Fall Lüneburg  
Organisationsname (z.B. Firma) [Internet Widgits Pty Ltd]: <-- Geben Sie Ihren Firmennamen ein, in meinem Fall ISPConfig UG  
Name der organisatorischen Einheit (z.B. Abteilung) []: <-- Geben Sie Ihren Namen der organisatorischen Einheit ein, ich verwende hier IT  
Allgemeiner Name (z.B. Server-FQDN oder IHR Name) []: <-- Geben Sie den Server-Hostname ein, in meinem Fall server1.example.com  
E-Mail-Adresse []: <-- Geben Sie eine E-Mail-Adresse ein, z.B. [email protected]  
Mailman konfigurieren  
Dovecot konfigurieren  
Spamassassin konfigurieren  
Amavisd konfigurieren  
Getmail konfigurieren  
Jailkit konfigurieren  
Pureftpd konfigurieren  
BIND konfigurieren  
nginx konfigurieren  
[INFO] Dienst OpenVZ nicht erkannt  
Ubuntu-Firewall konfigurieren  
Metronome XMPP-Server konfigurieren  
neuen privaten Schlüssel schreiben in 'localhost.key'  
-----  
Ländercode (2 Buchstaben) [AU]: <-- Geben Sie Ihren 2-Buchstaben-Ländercode ein, z.B. DE in meinem Fall
Ortsname (z.B. Stadt) [Stadtname]: <-- Geben Sie Ihre Stadt ein, in meinem Fall Lüneburg
Organisationsname (z.B. Firma) [Internet Widgits Pty Ltd]: <-- Geben Sie Ihren Firmennamen ein, in meinem Fall ISPConfig UG
Name der organisatorischen Einheit (z.B. Abteilung) [Infrastruktur]: <-- Geben Sie Ihren Namen der organisatorischen Einheit ein, ich verwende hier IT
Allgemeiner Name (z.B. Server-FQDN oder IHR Name) [server1.example.com]: <-- Geben Sie den Server-Hostname ein, in meinem Fall server1.example.com
E-Mail-Adresse [[email protected]]: <-- Geben Sie eine E-Mail-Adresse ein, z.B. [email protected]
WICHTIG:  
Der localhost-Schlüssel, Csr und ein selbstsigniertes Zertifikat wurden in /etc/metronome/certs gespeichert  
Um mit allen Clients zu arbeiten, muss der Server ein vertrauenswürdiges Zertifikat haben, verwenden Sie also das Csr  
um ein vertrauenswürdiges Zertifikat von Ihrer CA zu erhalten oder ersetzen Sie Schlüssel und Zertifikat durch bereits signierte Dateien für  
Ihrer Domain. Clients wie Pidgin erlauben nicht die Verwendung von nicht vertrauenswürdigen selbstsignierten Zertifikaten.
Fail2ban konfigurieren  
Apps vhost konfigurieren  
ISPConfig installieren  
ISPConfig-Port [8080]: <-- EINGABETASTE
Admin-Passwort [admin]: <-- Geben Sie Ihr gewünschtes Admin-Passwort ein
Möchten Sie eine sichere (SSL) Verbindung zur ISPConfig-Weboberfläche (y,n) [y]: <-- EINGABETASTE
Generierung eines RSA-Privatschlüssels, 4096 Bit langer Modulus  
....................................................++  
........................++  
e ist 65537 (0x10001)  
Sie werden aufgefordert, Informationen einzugeben, die in Ihre Zertifikatsanforderung aufgenommen werden.  
Was Sie eingeben werden, wird als Distinguished Name oder DN bezeichnet.  
Es gibt einige Felder, die Sie leer lassen können.  
Für einige Felder gibt es einen Standardwert,  
Wenn Sie '.' eingeben, wird das Feld leer gelassen.  
-----  
Ländercode (2 Buchstaben) [AU]: <-- geben Sie Ihren 2-Buchstaben-Ländercode ein, z.B. DE in meinem Fall  
Bundesland oder Provinzname (voller Name) [Some-State]: <-- Geben Sie Ihren Wohnsitzstaat ein  
Ortsname (z.B. Stadt) []:  <-- Geben Sie Ihre Stadt ein, in meinem Fall Lüneburg  
Organisationsname (z.B. Firma) [Internet Widgits Pty Ltd]: <-- Geben Sie Ihren Firmennamen ein, in meinem Fall ISPConfig UG  
Name der organisatorischen Einheit (z.B. Abteilung) []: <-- Geben Sie Ihren Namen der organisatorischen Einheit ein, ich verwende hier IT  
Allgemeiner Name (z.B. Server-FQDN oder IHR Name) []: <-- Geben Sie den Server-Hostname ein, in meinem Fall server1.example.com  
E-Mail-Adresse []: <-- Geben Sie eine E-Mail-Adresse ein, z.B. [email protected]
Bitte geben Sie die folgenden 'zusätzlichen' Attribute ein,  
 die mit Ihrer Zertifikatsanforderung gesendet werden  
Ein Herausforderungs-Passwort []: <-- EINGABETASTE  
Ein optionaler Firmenname []: <-- EINGABETASTE  
Schreiben des RSA-Schlüssels

Konfigurieren des DBServers  
Installieren des ISPConfig Crontab  
Installieren des ISPConfig Crontab  
kein Crontab für root  
kein Crontab für getmail  
IP-Adressen erkennen  
Dienste neu starten ...  
Installation abgeschlossen.

Der Installer konfiguriert automatisch alle zugrunde liegenden Dienste, sodass keine manuelle Konfiguration erforderlich ist.

Anschließend können Sie ISPConfig 3 unter http(s)://server1.example.com:8080/ oder http(s)://192.168.1.100:8080/ (http oder https hängt davon ab, was Sie während der Installation gewählt haben) aufrufen. Melden Sie sich mit dem Benutzernamen admin und dem Passwort admin an (Sie sollten das Standardpasswort nach Ihrem ersten Login ändern):

ISPConfig-Anmeldung

ISPConfig-Dashboard

Das System ist jetzt bereit zur Verwendung.

16.1 ISPConfig 3.1 Handbuch

Um zu lernen, wie man ISPConfig 3 verwendet, empfehle ich dringend, das ISPConfig 3.1 Handbuch herunterzuladen.

Auf mehr als 300 Seiten behandelt es das Konzept hinter ISPConfig (Admin, Reseller, Kunden), erklärt, wie man ISPConfig 3 installiert und aktualisiert, enthält ein Referenzhandbuch für alle Formulare und Formularfelder in ISPConfig zusammen mit Beispielen für gültige Eingaben und bietet Tutorials für die häufigsten Aufgaben in ISPConfig 3. Es beschreibt auch, wie man Ihren Server sicherer macht und enthält einen Abschnitt zur Fehlersuche am Ende.

17 Virtuelle Maschinen-Image-Download dieses Tutorials

Dieses Tutorial ist als sofort einsatzbereites virtuelles Maschinen-Image im ovf/ova-Format verfügbar, das mit VMWare und Virtualbox kompatibel ist. Das virtuelle Maschinen-Image verwendet die folgenden Anmeldedaten:

SSH / Shell-Anmeldung

Benutzername: administrator
Passwort: howtoforge

Dieser Benutzer hat Sudo-Rechte.

ISPConfig-Anmeldung

Benutzername: admin
Passwort: howtoforge

MySQL-Anmeldung

Benutzername: root
Passwort: howtoforge

Die IP der VM ist 192.168.1.100, sie kann in der Datei /etc/netplan/01-netcfg.yaml geändert werden. Bitte ändern Sie alle oben genannten Passwörter, um die virtuelle Maschine abzusichern.

18. Links

Share: X/Twitter LinkedIn

Erhalte neue Beiträge in deinem Posteingang.

Kein Spam. Jederzeit abmelden.