Server Setup · 9 min read · Oct 23, 2025

Der perfekte Server - Ubuntu 16.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 roundcube-plugins-extra 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 auf Roundcube wie folgt zugreifen:

Die 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 ein /webmail-Alias verwenden möchten, das Sie von Ihren Websites aus verwenden können, ist dies etwas komplizierter als für 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.

Fügen Sie dazu 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.0-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.0-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 anstelle von fastcgi_param HTTPS on; fügen Sie 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.0-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 stabilen GIT-Zweig zu installieren, tun Sie dies:

cd /tmp   
wget -O ispconfig.tar.gz https://git.ispconfig.org/ispconfig/ispconfig3/repository/archive.tar.gz?ref=stable-3.1  
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-3f1331062193a94fbd64a7e39c00cb8d77eb7484/install# php install.php
  
--------------------------------------------------------------------------------  
_____ ___________ _____ __ _ ____  
|_ _/ ___| ___ \ / __ \ / _(_) /__ \  
| | \ `--.| |_/ / | / \/ ___ _ __ | |_ _ __ _ _/ /  
| | `--. \ __/ | | / _ \| '_ \| _| |/ _` | |_ |  
_| |_\/__/ / | | \__/\ (_) | | | | | | | (_| | ___\ \  
\___/\____/\_| \____/\___/|_| |_|_| |_\__, | \____/  
__/ |  
|___/  
--------------------------------------------------------------------------------

>> Erste Konfiguration
Betriebssystem: Ubuntu 16.04.1 LTS (Xenial Xerus)
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.

Wählen Sie die Sprache (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
Konfigurieren von Postgrey  
Konfigurieren von Postfix  
Generierung eines 4096-Bit-RSA-Privatschlüssels  
.................................................................................................................................................................................................................................................................................................................................................................................................................++  
...++  
Neuen privaten Schlüssel schreiben in 'smtpd.key'  
-----  
Sie werden aufgefordert, Informationen einzugeben, die in Ihre Zertifikatsanfrage aufgenommen werden.  
Was Sie eingeben werden, wird als Distinguished Name oder DN bezeichnet.  
Es gibt ziemlich viele Felder, aber Sie können einige leer lassen  
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 (vollständiger Name) [Some-State]: <-- Geben Sie Ihren Heimatstaat ein  
Ortsname (z.B. Stadt) []:  <-- Geben Sie Ihre Stadt ein, in meinem Fall Lüneburg  
Name der Organisation (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]  
Konfigurieren von Mailman  
Konfigurieren von Dovecot  
Konfigurieren von Spamassassin  
Konfigurieren von Amavisd  
Konfigurieren von Getmail  
Konfigurieren von Jailkit  
Konfigurieren von Pureftpd  
Konfigurieren von BIND  
Konfigurieren von nginx  
[INFO] Dienst OpenVZ nicht erkannt  
Konfigurieren der Ubuntu-Firewall  
Konfigurieren des Metronome XMPP-Servers  
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
Name der Organisation (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.
Konfigurieren von Fail2ban  
Konfigurieren von Apps vhost  
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 des RSA-Privatschlüssels, 4096 Bit langer Modulus  
....................................................++  
........................++  
e ist 65537 (0x10001)  
Sie werden aufgefordert, Informationen einzugeben, die in Ihre Zertifikatsanfrage aufgenommen werden.  
Was Sie eingeben werden, wird als Distinguished Name oder DN bezeichnet.  
Es gibt ziemlich viele Felder, aber Sie können einige leer lassen  
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 (vollständiger Name) [Some-State]: <-- Geben Sie Ihren Heimatstaat ein  
Ortsname (z.B. Stadt) []:  <-- Geben Sie Ihre Stadt ein, in meinem Fall Lüneburg  
Name der Organisation (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 Zertifikatsanfrage gesendet werden  
Ein Herausforderungs-Passwort []: <-- EINGABETASTE  
Ein optionaler Firmenname []: <-- EINGABETASTE  
Schreiben des RSA-Schlüssels
  
Konfigurieren des DBServers  
Installieren des ISPConfig-Crontabs  
Installieren des ISPConfig-Crontabs  
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 auf ISPConfig 3 unter http(s)://server1.example.com:8080/ oder http(s)://192.168.1.100:8080/ zugreifen (http oder https hängt davon ab, was Sie während der Installation gewählt haben). Melden Sie sich mit dem Benutzernamen admin und dem Passwort admin an (Sie sollten das Standardpasswort nach Ihrer ersten Anmeldung ändern):

Das System ist nun 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 wird auch erläutert, wie man seinen Server sicherer macht und enthält am Ende einen Abschnitt zur Fehlersuche.

17. Zusätzliche Hinweise

18.1 OpenVZ

Wenn der Ubuntu-Server, den Sie in diesem Tutorial eingerichtet haben, ein OpenVZ-Container (virtuelle Maschine) ist, sollten Sie dies auf dem Host-System tun (ich gehe davon aus, dass die ID des OpenVZ-Containers 101 ist - ersetzen Sie sie durch die richtige VPSID auf Ihrem System):

VPSID=101   
for CAP in CHOWN DAC_READ_SEARCH SETGID SETUID NET_BIND_SERVICE NET_ADMIN SYS_CHROOT SYS_NICE CHOWN DAC_READ_SEARCH SETGID SETUID NET_BIND_SERVICE NET_ADMIN SYS_CHROOT SYS_NICE   
do   
  vzctl set $VPSID --capability ${CAP}:on --save   
done

18.2 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: admin
Passwort: howtoforge

oder anmelden mit:

sudo mysql

in der Shell.

Die IP der VM ist 192.168.1.100, sie kann in der Datei /etc/network/interfaces geändert werden. Bitte ändern Sie alle oben genannten Passwörter, um die virtuelle Maschine zu sichern.

19. Links

Share: X/Twitter LinkedIn

Erhalte neue Beiträge in deinem Posteingang.

Kein Spam. Jederzeit abmelden.