Roundcube mit NGINX installieren auf Ubuntu 22.04

Roundcube mit NGINX installieren auf Ubuntu 22.04

In meinem Betrag zuvor, hatte ich einem Mailserver mit Postfix und Dovecot angelegt und nun möchte ich auf den Mailserver, einen E-Mail-Client installieren.

Der eigene E-Mail-Server - Simon Zipperling
Installation von Postfix als Mailserver, Dovecot für die IMAP Anbindung und weitere Erweiterungen zum besseren Nutzen eines Mailservers

Roundcube

Roundcube downloaden

Hierbei ist zu beachten, dass immer die Versionsnummer mit im Dateinamen steht. Unter folgender URL findet man die neusten Versionen:

Releases · roundcube/roundcubemail
The Roundcube Webmail suite. Contribute to roundcube/roundcubemail development by creating an account on GitHub.
wget https://github.com/roundcube/roundcubemail/releases/download/1.6.6/roundcubemail-1.6.6-complete.tar.gz
tar xvf roundcubemail-1.6.6-complete.tar.gz

sudo mkdir -p /var/www/

sudo mv roundcubemail-1.6.6 /var/www/roundcube

cd /var/www/roundcube

sudo chown www-data:www-data temp/ logs/ -R

NGINX

NGINX Installieren

Zunächst wird Nginx als Webserver benötigt. Dafür installiert man das NGINX Paket.

apt install nginx -y

PHP Extension installieren

sudo apt install php-net-ldap2 php-net-ldap3 php-imagick php-fpm php-common php-gd php-imap php-mysql php-curl php-zip php-xml php-mbstring php-bz2 php-intl php-gmp php-redis

Konfiguration anlegen

Dafür wird eine neue Datei erstellt und bearbeitet:

sudo nano /etc/nginx/conf.d/mail.example.com.conf

Nun wird die Configuration für den Webserver eingefügt. Hier wird die spätere Domain und das Verzeichnis, wo Roundcube liegt angegeben. Ebenso ist hier für die SSL Zertifikate der .well-known Pfad wie die PHP Erweiterungen angegeben.

server {
  listen 80;
  listen [::]:80;
  server_name mail.example.com;
  root /var/www/roundcube/;
  index index.php index.html index.htm;

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

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

  location ~ \.php$ {
   try_files $uri =404;
    fastcgi_pass unix:/run/php/php8.1-fpm.sock;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include fastcgi_params;
  }

  location ~ /.well-known/acme-challenge {
    allow all;
  }
 location ~ ^/(README|INSTALL|LICENSE|CHANGELOG|UPGRADING)$ {
    deny all;
  }
  location ~ ^/(bin|SQL)/ {
    deny all;
  }
 # A long browser cache lifetime can speed up repeat visits to your page
  location ~* \.(jpg|jpeg|gif|png|webp|svg|woff|woff2|ttf|css|js|ico|xml)$ {
       access_log        off;
       log_not_found     off;
       expires           360d;
  }
}

Bei server_name muss der FQDN von dem Mailserver eingetragen werden, so wie dieser auch durch den MX Record aufgeschlüsselt wird.

Nun wir nur noch NGINX neugestartet:

systemctl restart ngnix

Mysql

Mysql-Server installieren

Für Roundcube brauchen wir eine Datenbank.

apt install mysql-server

Mysql Datenbank anlegen

Zunächst wird eine Datenbank benötigt:

mysql -u root
CREATE DATABASE roundcubemail DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

Danach wird ein Datenbank Benutzer angelegt:

CREATE USER roundcube@localhost IDENTIFIED BY 'password';

Nun noch die Rechte zuweisen:

GRANT ALL PRIVILEGES ON roundcubemail.* TO roundcube@localhost;
flush privileges;
exit;

Roundcube Konfiguration

Nun geht es ans konfigurieren von Roundcube.

cd /var/www/roundcube
cp config.inc.php.sample config.inc.php
nano config.inc.php

Hier wird folgende Zeile geändert. Ändere pass in das Passwort des Datenbankbenutzers.

$config['db_dsnw'] = 'mysql://roundcube:pass@localhost/roundcubemail';

Nun wird noch der SMTP und IMAP Hostgeändert:

$config['imap_host'] = 'tls://mail.example.com:143';
$config['smtp_host'] = 'tls://mail.example.com:587';

Danach lade noch diese Plugins:

// List of active plugins (in plugins/ directory)
$config['plugins'] = ['acl', 'additional_message_headers', 'archive', 'attachment_reminder', 'autologon', 'debug_logger', 'emoticons', 'enigma', 'filesystem_attachments', 'help', 'hide_blockquote', 'http_authentication', 'identicon', 'identity_select', 'jqueryui', 'krb_authentication', 'managesieve', 'markasjunk', 'new_user_dialog', 'new_user_identity', 'newmail_notifier', 'password', 'reconnect', 'redundant_attachments', 'show_additional_headers', 'squirrelmail_usercopy', 'subscriptions_option', 'userinfo', 'vcard_attachments', 'virtuser_file', 'virtuser_query', 'zipdownload'];

Nun kann es schon losgehen. Rufst du http://mail.deinedomain.com auf, so kannst du nun mit deinem Mailkonto arbeiten.