Webmail Setup · 5 min read · Dec 25, 2025

Wechsel von SquirrelMail zu RoundCube auf Ihrem ISPConfig3-Server

Wechsel von SquirrelMail zu RoundCube auf Ihrem ISPConfig3-Server

Dieses Tutorial wurde für diejenigen erstellt, die den perfekten Server - CentOS 5.4 x86_64 [ISPConfig 3] installiert haben und SquirrelMail als Webmail-Client nicht mögen. Hier ist eine Anleitung, um SquirrelMail durch RoundCube zu ersetzen, das visuell ansprechender und einfacher zu verwalten ist für unsere Kunden.

Wichtig! Ich habe es nicht ausprobiert, aber… wie man SquirrelMail installiert, hat sich in den letzten CentOS 5.x Perfect Server Howtos nicht geändert. Ich denke, dieses Tutorial ist auch für frühere Versionen von CentOS und sogar andere Linux-Distributionen gültig, es ändert praktisch nichts im System.

Schritt 1.

Laden Sie RoundCube herunter, entpacken Sie es, entfernen Sie unnötige Dateien und bereiten Sie den Installationsordner vor. Ersetzen Sie roundcubemail-0.3.1 durch die letzte verfügbare Version.

cd /usr/share  
wget http://downloads.sourceforge.net/project/roundcubemail/roundcubemail/0.3.1/roundcubemail-0.3.1.tar.gz?use_mirror=ignum  
tar -vxf roundcubemail-0.3.1.tar.gz  
rm -fr roundcubemail-0.3.1.tar.gz  
cd roundcubemail-0.3.1  
rm -fr installer  
chmod 755 temp logs  
cd config  
cp db.inc.php.dist db.inc.php  
cp main.inc.php.dist main.inc.php

Schritt 2.

Jetzt erstellen wir unsere Datenbank für RoundCube. Ich habe meine mit ISPConfig erstellt, weil ich möchte, dass sie in meiner ISPConfig-Datenbankliste angezeigt wird. Dies ist mein Datenbankbeispiel:

Datenbankname: roundcubedb  
Datenbankbenutzer: roundcubeuser  
Datenbankpasswort: 12345

Ändern Sie diese für mehr Sicherheit

Schritt 3.

Es ist notwendig, RoundCube manuell zu installieren, da, wenn Sie den RoundCube-Installer verwenden, ein PHP-Version-Fehler gemeldet wird und die Installation nicht fortgesetzt wird. Bearbeiten Sie die Datei db.inc.php, suchen Sie die folgende Zeile und bearbeiten Sie sie mit unseren Daten (der Datenbank, die wir in ISPConfig erstellt haben).

vi db.inc.php

Ändern Sie die Zeile:

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

in:

[...]  
$rcmail_config['db_dsnw'] = 'mysql://roundcubeuser:12345@localhost/roundcubedb';  
[...]  

Ändern Sie auch diese Einstellungen in der Datei main.inc.php:

vi main.inc.php

Ändern Sie die Zeilen:

[...]  
$rcmail_config['message_cache_lifetime'] = '10d';  
[...]  
$rcmail_config['default_host'] = '';  
[...]  
$rcmail_config['smtp_server'] = '';  
[...]  
$rcmail_config['session_lifetime'] = 10;  
[...]  
$rcmail_config['create_default_folders'] = FALSE;  
[...]  

in:

[...]  
$rcmail_config['message_cache_lifetime'] = '30m';  
[...]  
$rcmail_config['default_host'] = 'localhost';  
[...]  
$rcmail_config['smtp_server'] = '%h';  
[...]  
$rcmail_config['session_lifetime'] = 30;  
[...]  
$rcmail_config['create_default_folders'] = TRUE;  
[...]  

Schritt 4.

Jetzt müssen wir manuell die Tabellen in unserer RoundCube-Datenbank erstellen. Suchen Sie die Datei mysql.initial.sql im roundcubemail-0.3.1/SQL/-Ordner und kopieren Sie deren Inhalt:

-- RoundCube Webmail initiale Datenbankstruktur
/*!40014  SET FOREIGN_KEY_CHECKS=0 */;
-- Tabellenstruktur für die Tabelle `session`
CREATE TABLE `session` (
 `sess_id` varchar(40) NOT NULL,
 `created` datetime NOT NULL DEFAULT '1000-01-01 00:00:00',
 `changed` datetime NOT NULL DEFAULT '1000-01-01 00:00:00',
 `ip` varchar(40) NOT NULL,
 `vars` mediumtext NOT NULL,
 PRIMARY KEY(`sess_id`),
 INDEX `changed_index` (`changed`)
) /*!40000 ENGINE=INNODB */ /*!40101 CHARACTER SET utf8 COLLATE utf8_general_ci */;
-- Tabellenstruktur für die Tabelle `users`
CREATE TABLE `users` (
 `user_id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT,
 `username` varchar(128) NOT NULL,
 `mail_host` varchar(128) NOT NULL,
 `alias` varchar(128) NOT NULL,
 `created` datetime NOT NULL DEFAULT '1000-01-01 00:00:00',
 `last_login` datetime NOT NULL DEFAULT '1000-01-01 00:00:00',
 `language` varchar(5),
 `preferences` text,
 PRIMARY KEY(`user_id`),
 INDEX `username_index` (`username`),
 INDEX `alias_index` (`alias`)
) /*!40000 ENGINE=INNODB */ /*!40101 CHARACTER SET utf8 COLLATE utf8_general_ci */;
-- Tabellenstruktur für die Tabelle `messages`
CREATE TABLE `messages` (
 `message_id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT,
 `user_id` int(10) UNSIGNED NOT NULL DEFAULT '0',
 `del` tinyint(1) NOT NULL DEFAULT '0',
 `cache_key` varchar(128) /*!40101 CHARACTER SET ascii COLLATE ascii_general_ci */ NOT NULL,
 `created` datetime NOT NULL DEFAULT '1000-01-01 00:00:00',
 `idx` int(11) UNSIGNED NOT NULL DEFAULT '0',
 `uid` int(11) UNSIGNED NOT NULL DEFAULT '0',
 `subject` varchar(255) NOT NULL,
 `from` varchar(255) NOT NULL,
 `to` varchar(255) NOT NULL,
 `cc` varchar(255) NOT NULL,
 `date` datetime NOT NULL DEFAULT '1000-01-01 00:00:00',
 `size` int(11) UNSIGNED NOT NULL DEFAULT '0',
 `headers` text NOT NULL,
 `structure` text,
 PRIMARY KEY(`message_id`),
 INDEX `created_index` (`created`),
 INDEX `index_index` (`user_id`, `cache_key`, `idx`),
 UNIQUE `uniqueness` (`user_id`, `cache_key`, `uid`),
 CONSTRAINT `user_id_fk_messages` FOREIGN KEY (`user_id`)
   REFERENCES `users`(`user_id`)
   /*!40008
     ON DELETE CASCADE
     ON UPDATE CASCADE */
) /*!40000 ENGINE=INNODB */ /*!40101 CHARACTER SET utf8 COLLATE utf8_general_ci */;
-- Tabellenstruktur für die Tabelle `cache`
CREATE TABLE `cache` (
 `cache_id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT,
 `cache_key` varchar(128) /*!40101 CHARACTER SET ascii COLLATE ascii_general_ci */ NOT NULL ,
 `created` datetime NOT NULL DEFAULT '1000-01-01 00:00:00',
 `data` longtext NOT NULL,
 `user_id` int(10) UNSIGNED NOT NULL DEFAULT '0',
 PRIMARY KEY(`cache_id`),
 INDEX `created_index` (`created`),
 INDEX `user_cache_index` (`user_id`,`cache_key`),
 CONSTRAINT `user_id_fk_cache` FOREIGN KEY (`user_id`)
   REFERENCES `users`(`user_id`)
   /*!40008
     ON DELETE CASCADE
     ON UPDATE CASCADE */
) /*!40000 ENGINE=INNODB */ /*!40101 CHARACTER SET utf8 COLLATE utf8_general_ci */;
-- Tabellenstruktur für die Tabelle `contacts`
CREATE TABLE `contacts` (
 `contact_id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT,
 `changed` datetime NOT NULL DEFAULT '1000-01-01 00:00:00',
 `del` tinyint(1) NOT NULL DEFAULT '0',
 `name` varchar(128) NOT NULL,
 `email` varchar(128) NOT NULL,
 `firstname` varchar(128) NOT NULL,
 `surname` varchar(128) NOT NULL,
 `vcard` text NULL,
 `user_id` int(10) UNSIGNED NOT NULL DEFAULT '0',
 PRIMARY KEY(`contact_id`),
 INDEX `user_contacts_index` (`user_id`,`email`),
 CONSTRAINT `user_id_fk_contacts` FOREIGN KEY (`user_id`)
   REFERENCES `users`(`user_id`)
   /*!40008
     ON DELETE CASCADE
     ON UPDATE CASCADE */
) /*!40000 ENGINE=INNODB */ /*!40101 CHARACTER SET utf8 COLLATE utf8_general_ci */;
-- Tabellenstruktur für die Tabelle `identities`
CREATE TABLE `identities` (
 `identity_id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT,
 `del` tinyint(1) NOT NULL DEFAULT '0',
 `standard` tinyint(1) NOT NULL DEFAULT '0',
 `name` varchar(128) NOT NULL,
 `organization` varchar(128) NOT NULL DEFAULT '',
 `email` varchar(128) NOT NULL,
 `reply-to` varchar(128) NOT NULL DEFAULT '',
 `bcc` varchar(128) NOT NULL DEFAULT '',
 `signature` text,
 `html_signature` tinyint(1) NOT NULL DEFAULT '0',
 `user_id` int(10) UNSIGNED NOT NULL DEFAULT '0',
 PRIMARY KEY(`identity_id`),
 CONSTRAINT `user_id_fk_identities` FOREIGN KEY (`user_id`)
   REFERENCES `users`(`user_id`)
   /*!40008
     ON DELETE CASCADE
     ON UPDATE CASCADE */
) /*!40000 ENGINE=INNODB */ /*!40101 CHARACTER SET utf8 COLLATE utf8_general_ci */;
/*!40014 SET FOREIGN_KEY_CHECKS=1 */;

Gehen Sie jetzt zu http://www.yourdomain.tld:8080/phpmyadmin, geben Sie Ihren MySQL-Benutzernamen und Ihr Passwort ein. Wählen Sie unsere RoundCube-Datenbank “roundcubedb” und gehen Sie zum SQL-Tab, fügen Sie den Text, den Sie aus mysql.initial.sql kopiert haben, in das Textfeld ein und führen Sie die Abfrage aus. Wir haben RoundCube Webmail erfolgreich installiert.

Schritt 5.

Wir möchten RoundCube als unser Standard-Webmail. SquirrelMail wird nicht verwendet, noch möchten wir, dass unsere Kunden unter irgendwelchen Änderungen leiden. Wir verfahren wie folgt: Diesen Schritt kann jeder an seine Bedürfnisse anpassen. SquirrelMail kann beibehalten werden, indem ein neuer Alias für RoundCube erstellt wird.

cd /usr/share  
mv squirrelmail squirrelmail.bak  
mv roundcubemail-0.3.1 squirrelmail

Schritt 6.

Gehen Sie schließlich zu http://www.yourdomain.tld:8080/webmail und melden Sie sich an, um dieses hübsche Webmail zu genießen.

Informationen:

  • Weitere Informationen über RoundCube: http://www.roundcube.net
  • Falkos Howto Der perfekte Server - CentOS 5.4 x86_64 [ISPConfig 3]

Besonderer Dank an:

  • Falko. Ihre Perfect Server Howtos haben mir sehr bei meinem Einstieg in Linux-Server geholfen.
  • Meine Freundin Naty. Sie hat den Text übersetzt.
  • Das HowtoForge-Team für Ihre hervorragende Arbeit.
Share: X/Twitter LinkedIn

Erhalte neue Beiträge in deinem Posteingang.

Kein Spam. Jederzeit abmelden.