Webmail Installation · 9 min read · Sep 08, 2025

So installieren Sie Rainloop Webmail auf Ubuntu 22.04

Rainloop ist ein Open-Source, webbasierter E-Mail-Client, der in PHP geschrieben ist. Er ist schnell, leichtgewichtig und unterstützt die Protokolle SMTP und IMAP.

Diese Anleitung zeigt Ihnen, wie Sie den Rainloop-Client auf einem Ubuntu 22.04-Server installieren.

Voraussetzungen

  • Ein Server, der Ubuntu 22.04 ausführt.
  • Ein Domainname, der auf den Server verweist. Für unser Tutorial verwenden wir die Domain rainloop.example.com.
  • Ein Nicht-Root-Benutzer mit Sudo-Rechten.
  • Stellen Sie sicher, dass alles aktualisiert ist. $ sudo apt update && sudo apt upgrade
  • Installieren Sie grundlegende Dienstprogramme. Einige davon sind möglicherweise bereits installiert. $ sudo apt install wget curl nano unzip -y

Schritt 1 - Firewall konfigurieren

Der erste Schritt vor der Installation von Rainloop besteht darin, die Firewall zu konfigurieren. Überprüfen Sie den Status der Firewall.

$ sudo ufw status

Sie sollten etwas wie das Folgende sehen.

Status: aktiv

Zu                         Aktion      Von
--                         ------      ----
OpenSSH                    ERLAUBEN    Überall
OpenSSH (v6)               ERLAUBEN    Überall (v6)

Rainloop benötigt HTTP- und HTTPS-Ports, um zu funktionieren.

$ sudo ufw allow http
$ sudo ufw allow https

Öffnen Sie die Ports für die von Ihnen verwendeten E-Mail-Konten.

$ sudo ufw allow 587/tcp
$ sudo ufw allow 993/tcp
$ sudo ufw allow 465/tcp

Überprüfen Sie den Status erneut, um dies zu bestätigen.

$ sudo ufw status
Status: aktiv

Zu                         Aktion      Von
--                         ------      ----
OpenSSH                    ERLAUBEN    Überall
80/tcp                     ERLAUBEN    Überall
443                        ERLAUBEN    Überall
587/tcp                    ERLAUBEN    Überall
993/tcp                    ERLAUBEN    Überall
465/tcp                    ERLAUBEN    Überall
OpenSSH (v6)               ERLAUBEN    Überall (v6)
80/tcp (v6)                ERLAUBEN    Überall (v6)
443 (v6)                   ERLAUBEN    Überall (v6)
587/tcp (v6)               ERLAUBEN    Überall (v6)
993/tcp (v6)               ERLAUBEN    Überall (v6)
465/tcp (v6)               ERLAUBEN    Überall (v6)

Schritt 2 - Nginx installieren

Ubuntu 22.04 wird mit einer älteren Version von Nginx ausgeliefert. Um die neueste Version zu installieren, müssen Sie das offizielle Nginx-Repository herunterladen.

Importieren Sie den Signaturschlüssel von Nginx.

$ curl https://nginx.org/keys/nginx_signing.key | gpg --dearmor \
| sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null

Fügen Sie das Repository für die stabile Version von Nginx hinzu.

$ echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg arch=amd64] \
http://nginx.org/packages/ubuntu `lsb_release -cs` nginx" \
| sudo tee /etc/apt/sources.list.d/nginx.list

Aktualisieren Sie die System-Repositorys.

$ sudo apt update

Installieren Sie Nginx.

$ sudo apt install nginx

Überprüfen Sie die Installation.

$ nginx -v
nginx version: nginx/1.22.0

Schritt 3 - PHP installieren und konfigurieren

Ubuntu 22.04 wird standardmäßig mit PHP 8.1 ausgeliefert. Damit Rainloop funktioniert, müssen wir PHP 8.0 installieren. Der erste Schritt besteht darin, Ondrejs PHP-Repository hinzuzufügen.

$ sudo add-apt-repository ppa:ondrej/php

Installieren Sie PHP und die erforderlichen Erweiterungen, die von Rainloop benötigt werden.

 $ sudo dnf install php8.0-fpm php8.0-curl php8.0-mbstring php8.0-mysql php8.0-xml php8.0-cli

Überprüfen Sie die Installation.

$ php --version
PHP 8.0.20 (cli) (gebaut: 25. Jun 2022 08:12:05) ( NTS )
Copyright (c) Die PHP-Gruppe
Zend Engine v4.0.20, Copyright (c) Zend Technologies
    mit Zend OPcache v8.0.20, Copyright (c), von Zend Technologies

Überprüfen Sie den Status des PHP-Dienstes.

$ sudo systemctl status php8.0-fpm
? php8.0-fpm.service - Der PHP 8.0 FastCGI-Prozessmanager
     Geladen: geladen (/lib/systemd/system/php8.0-fpm.service; aktiviert; Standardvorgabe: aktiviert)
     Aktiv: aktiv (laufend) seit Mo 2022-07-04 01:52:55 UTC; vor 1min 22s
       Docs: man:php-fpm8.0(8)
    Prozess: 12463 ExecStartPost=/usr/lib/php/php-fpm-socket-helper install /run/php/php-fpm.sock /etc/php/8.0/fpm/pool.d/www.conf 80 (code=exited, status=0/ERFOLG)
   Haupt-PID: 12460 (php-fpm8.0)
     Status: "Aktive Prozesse: 0, im Leerlauf: 2, Anfragen: 0, langsam: 0, Verkehr: 0req/sec"
      Aufgaben: 3 (Limit: 2241)
     Speicher: 8.7M
        CPU: 89ms
     CGroup: /system.slice/php8.0-fpm.service
             ??12460 "php-fpm: Master-Prozess (/etc/php/8.0/fpm/php-fpm.conf)

Öffnen Sie die Datei php.ini zur Bearbeitung.

$ sudo nano /etc/php/8.0/fpm/php.ini

Ändern Sie die Werte der folgenden Variablen, um die maximale Größe von E-Mail-Anhängen auf 25 MB festzulegen.

upload_max_filesize = 25M
post_max_size = 25M

Speichern Sie die Datei, indem Sie Ctrl + X drücken und Y eingeben, wenn Sie dazu aufgefordert werden.

Öffnen Sie die Datei /etc/php/8.0/fpm/pool.d/www.conf.

$ sudo nano /etc/php/8.0/fpm/pool.d/www.conf

Suchen Sie die Zeilen user=apache und group=apache in der Datei und ändern Sie sie wie folgt.

...
; Unix-Benutzer/-Gruppe der Prozesse
; Hinweis: Der Benutzer ist obligatorisch. Wenn die Gruppe nicht festgelegt ist, wird die Gruppe des Standardbenutzers verwendet.
;       wird verwendet.
; RPM: apache-Benutzer, der gewählt wurde, um Zugriff auf dieselben Verzeichnisse wie httpd zu gewähren
user = nginx
; RPM: Halten Sie eine Gruppe, die im Protokollverzeichnis schreiben darf.
group = nginx
...

Suchen Sie auch die Zeilen listen.owner = www-data und listen.group = www-data und ändern Sie sie wie folgt.

...
; Setzen Sie Berechtigungen für den Unix-Socket, falls einer verwendet wird. In Linux müssen Lese-/Schreibberechtigungen festgelegt werden, um Verbindungen von einem Webserver zuzulassen. Viele
; BSD-abgeleitete Systeme erlauben Verbindungen unabhängig von Berechtigungen. Der Eigentümer
; und die Gruppe können entweder nach Namen oder nach ihren numerischen IDs angegeben werden.
; Standardwerte: Benutzer und Gruppe werden als laufender Benutzer festgelegt
;                 Modus wird auf 0660 festgelegt
listen.owner = nginx
listen.group = nginx
...

Speichern Sie die Datei, indem Sie Ctrl + X drücken und Y eingeben, wenn Sie dazu aufgefordert werden.

Starten Sie den PHP-FPM-Dienst neu.

$ sudo systemctl restart php8.0-fpm

Schritt 4 - MySQL installieren

Ubuntu 22.04 wird mit der neuesten Version von MySQL ausgeliefert. Sie können es mit einem einzigen Befehl installieren.

$ sudo apt install mysql-server

Überprüfen Sie die Version von MySQL.

$ mysql --version
mysql  Ver 8.0.29-0ubuntu0.22.04.2 für Linux auf x86_64 ((Ubuntu))

Dieser Schritt ist notwendig für MySQL-Versionen 8.0.28 und höher. Geben Sie die MySQL-Shell ein.

$ sudo mysql

Führen Sie den folgenden Befehl aus, um das Passwort für Ihren Root-Benutzer festzulegen. Stellen Sie sicher, dass es eine Mischung aus Zahlen, Großbuchstaben, Kleinbuchstaben und Sonderzeichen enthält.

mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'YourPassword12!';

Verlassen Sie die Shell.

mysql> exit

Führen Sie das MySQL-Sicherheitsinstallationsskript aus.

$ sudo mysql_secure_installation

Zuerst werden Sie nach Ihrem Root-Passwort gefragt. Geben Sie es ein. Als Nächstes werden Sie gefragt, ob Sie die Komponente zur Passwortvalidierung installieren möchten. Sie überprüft die Stärke der in MySQL verwendeten Passwörter. Drücken Sie Y, um es zu installieren.

Als Nächstes werden Sie gefragt, ob Sie das Niveau der Passwortvalidierungsrichtlinie festlegen möchten. Wählen Sie 2, da es die stärkste ist.

Drücken Sie als Nächstes N, um zu verweigern, Ihr Root-Passwort zu ändern. Drücken Sie auch Y, um anonyme Benutzer zu entfernen, Remote-Root-Anmeldungen zu verweigern, die Testdatenbank zu entfernen und die Berechtigungstabellen neu zu laden.

Schritt 5 - MySQL konfigurieren

Melden Sie sich bei der MySQL-Shell an. Geben Sie Ihr Root-Passwort ein, wenn Sie dazu aufgefordert werden.

$ sudo mysql -u root -p

Erstellen Sie eine Datenbank für Rainloop.

mysql> CREATE DATABASE rainloop;

Erstellen Sie einen SQL-Benutzer, um auf die Datenbank zuzugreifen. Ersetzen Sie yourpassword durch ein Passwort Ihrer Wahl.

mysql> CREATE USER 'rainuser'@'localhost' IDENTIFIED BY 'YourPassword23!';

Gewähren Sie rainuser Zugriff auf die Datenbank.

mysql> GRANT ALL ON rainloop.* TO 'rainuser'@'localhost';

Laden Sie die Berechtigungstabelle neu.

mysql> FLUSH PRIVILEGES;

Verlassen Sie die Shell.

mysql> exit

Schritt 6 - Rainloop installieren

Erstellen Sie das öffentliche Verzeichnis für Rainloop.

$ sudo mkdir /var/www/html/rainloop -p

Laden Sie die neueste Version von Rainloop herunter.

$ wget http://www.rainloop.net/repository/webmail/rainloop-community-latest.zip

Entpacken Sie die heruntergeladene Datei in das öffentliche Verzeichnis.

$ sudo unzip rainloop-community-latest.zip -d /var/www/html/rainloop

Ändern Sie den Eigentümer des Verzeichnisses auf Nginx.

$ sudo chown -R nginx:nginx /var/www/html/rainloop

Setzen Sie die Lese- und Schreibberechtigungen, die von Rainloop benötigt werden.

$ sudo find /var/www/html/rainloop -type d -exec chmod 755 {} \;
$ sudo find /var/www/html/rainloop -type f -exec chmod 644 {} \;

Schritt 7 - SSL installieren

Wir müssen Certbot installieren, um kostenlose SSL-Zertifikate zu generieren, die von Let’s Encrypt angeboten werden.

Sie können Certbot entweder über das Repository von Ubuntu installieren oder die neueste Version mit dem Snapd-Tool herunterladen. Wir werden die Snapd-Version verwenden.

Ubuntu 22.04 wird standardmäßig mit Snapd ausgeliefert. Führen Sie den folgenden Befehl aus, um sicherzustellen, dass Ihre Version von Snapd auf dem neuesten Stand ist.

$ sudo snap install core

Installieren Sie Certbot.

$ sudo snap install --classic certbot

Verwenden Sie den folgenden Befehl, um sicherzustellen, dass der Certbot-Befehl ausgeführt werden kann, indem Sie einen symbolischen Link zum Verzeichnis /usr/bin erstellen.

$ sudo ln -s /snap/bin/certbot /usr/bin/certbot

Generieren Sie ein SSL-Zertifikat für Rainloop.

$ sudo certbot certonly --standalone --agree-tos --no-eff-email --staple-ocsp --preferred-challenges http -m [email protected] -d rainloop.example.com

Generieren Sie ein Diffie-Hellman-Gruppe-Zertifikat.

$ sudo openssl dhparam -out /etc/ssl/certs/dhparam.pem 4096

Öffnen Sie die Datei /etc/letsencrypt/renewal/rainloop.example.com.conf zur Bearbeitung.

$ sudo nano /etc/letsencrypt/renewal/rainloop.example.com.conf

Fügen Sie den folgenden Code am Ende ein.

pre_hook = systemctl stop nginx
post_hook = systemctl start nginx

Speichern Sie die Datei, indem Sie Ctrl + X drücken und Y eingeben, wenn Sie dazu aufgefordert werden.

Wir haben das SSL-Zertifikat mit der Standalone-Option von Certbot generiert. Es führt seinen eigenen Webserver aus, um das Zertifikat zu erstellen, was bedeutet, dass Nginx während der Erneuerung abgeschaltet werden sollte. Die pre_hook- und post_hook-Befehle werden vor und nach der Erneuerung ausgeführt, um den Nginx-Server automatisch zu stoppen und neu zu starten, sodass keine manuelle Intervention erforderlich ist.

Um zu überprüfen, ob die SSL-Erneuerung einwandfrei funktioniert, führen Sie einen Testlauf des Prozesses durch.

$ sudo certbot renew --dry-run

Wenn Sie keine Fehler sehen, sind Sie bereit. Ihr Zertifikat wird automatisch erneuert.

Schritt 8 - Nginx konfigurieren

Öffnen Sie die Datei nginx.conf zur Bearbeitung.

$ sudo nano /etc/nginx/nginx.conf

Suchen Sie die Zeile include /etc/nginx/conf.d/*.conf; und fügen Sie den folgenden Code darunter ein.

server_names_hash_bucket_size  64;

Speichern Sie die Datei, indem Sie Ctrl + X drücken und Y eingeben, wenn Sie dazu aufgefordert werden.

Erstellen Sie die Rainloop-Konfigurationsdatei für Nginx und öffnen Sie sie zur Bearbeitung.

$ sudo nano /etc/nginx/conf.d/rainloop.conf

Fügen Sie den folgenden Code ein.

server {

    listen 443 ssl http2;
    listen [::]:443 ssl http2;

    server_name rainloop.example.com;
    root /var/www/html/rainloop;

    index index.php;
    client_max_body_size 25M;

    access_log  /var/log/nginx/rainloop.access.log;
    error_log   /var/log/nginx/rainloop.error.log;

    ssl_certificate      /etc/letsencrypt/live/rainloop.example.com/fullchain.pem;
    ssl_certificate_key  /etc/letsencrypt/live/rainloop.example.com/privkey.pem;
    ssl_trusted_certificate /etc/letsencrypt/live/rainloop.example.com/chain.pem;
    
    ssl_session_timeout  5m;
    ssl_session_cache shared:MozSSL:10m;
    ssl_session_tickets off;
    
    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_prefer_server_ciphers on;
    ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;
    ssl_ecdh_curve X25519:prime256v1:secp384r1:secp521r1;
    ssl_stapling on;
    ssl_stapling_verify on;
    ssl_dhparam /etc/ssl/certs/dhparam.pem;

    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    location ~ \.php$ {
        fastcgi_index index.php;
        fastcgi_split_path_info ^(.+\.php)(.*)$;
        fastcgi_keep_conn on;
        include fastcgi_params;
        fastcgi_pass unix:/run/php/php8.0-fpm.sock;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    }

    location ~ \.ht {
        deny all;
    }

    location ^~ /data {
        deny all;
    }
}
# HTTPS erzwingen
server {
    listen 80;
    listen [::]:80;
    server_name  rainloop.example.com;
    return 301   https://$host$request_uri;
}

Speichern Sie die Datei, indem Sie Ctrl + X drücken und Y eingeben, wenn Sie dazu aufgefordert werden.

Überprüfen Sie die Nginx-Konfigurationssyntax.

$ sudo nginx -t

Starten Sie den Nginx-Dienst neu.

$ sudo systemctl restart nginx

Schritt 9 - Rainloop konfigurieren und darauf zugreifen

Öffnen Sie die Administratorseite von Rainloop über die URL https://rainloop.example.com/?admin und Sie erhalten den folgenden Anmeldebildschirm.

Rainloop Administrator-Anmeldung

Geben Sie die folgenden Anmeldeinformationen ein und drücken Sie die Eingabetaste, um sich anzumelden.

Benutzername: admin
Passwort: 12345

Das Dashboard des Rainloop-Administrators wird mit einer Warnung geöffnet, Ihr Standardpasswort zu ändern.

Warnung zur Administratorpasswortänderung

Ändern Sie das Standardpasswort, indem Sie den Link im Dashboard verwenden.

Rainloop Passwort ändern Bildschirm

Geben Sie Ihr neues Passwort ein und klicken Sie auf die Schaltfläche Passwort aktualisieren, um fortzufahren.

Rainloop verwendet MySQL, um Kontaktinformationen zu speichern. Öffnen Sie die Kontaktseite und wählen Sie MySQL aus dem Dropdown-Menü.

Rainloop Kontaktseite

Geben Sie die zuvor erstellten Datenbankanmeldeinformationen ein.

Rainloop MySQL-Details

Drücken Sie die Schaltfläche Test, um die Verbindung zu überprüfen und die Tabellen zu installieren. Wenn die Schaltfläche grün wird, bedeutet dies, dass die Verbindung erfolgreich ist.

Sie können Rainloop verwenden, indem Sie Ihre E-Mail-Konten hinzufügen.

Fazit

Sie haben Rainloop erfolgreich auf einem Ubuntu 22.04-Server installiert. Wenn Sie Fragen haben, stellen Sie diese bitte in den Kommentaren unten.

Share: X/Twitter LinkedIn

Erhalte neue Beiträge in deinem Posteingang.

Kein Spam. Jederzeit abmelden.