Im Rahmen eines Kundenprojekts sollte auf eine bestehende hMailServer-Installation, die unter Windows 7 läuft, der Zugriff auf die E-Mails via Webmail ermöglicht werden.

Die Wahl des Kunden fiel auf das bekannte Webmail-System Roundcube.

Damit auf die E-Mails via Browser zugegriffen werden kann, ist es notwendig einen Webserver und weitere notwendige Komponenten zu installieren.

Voraussetzungen und Downloads

Aus Gründen der Kompatibilität wird beim Webserver und PHP auf 32-bit zurückgegriffen. Beim Download des MySQL Community Servers darf man sich nicht beirren lassen, da der Installer sowohl 32- als auch 64-bit Versionen installieren kann. Ob der Datenbankserver 32- oder 64-bit ist, spielt in diesem Fall keine Rolle.

Zum Zeitpunkt als dieser Beitrag entstand waren folgende Versionen aktuell:

  • Roundcube: 0.9.0
  • Apache: 2.4.4 win32 mit OpenSSL 0.9.8 (Empfohlen für Original-PHP)
  • PHP: 5.4.14
  • MySQL: 5.6.10.1

MySQL installieren und konfigurieren

Dieser Schritt ist nur notwendig, sofern man nicht auf SQLite setzt.
Zunächst muss der MySQL-Server installiert werden:

  • Den Installer ausführen und “Install MySQL Products” auswählen.
  • Dem Lizenzvertrag zustimmen.
  • Hat man die aktuellste Version bereits heruntergeladen, kann die Online-Prüfung übersprungen werden.
  • Im Dialog “Choosing a Setup Type” den Punkt “Server only” auswählen.
  • Im Dialog “MySQL Server Configuration” bei “Config Type” “Server Machine” auswählen.
  • Ggf. die Port-Freigabe in der Firewall deaktivieren, wenn auf den MySQL-Server nur lokal (Stichwort: localhost) zugegriffen werden soll.
  • Ein root-Passwort für den Datenbankserver eingeben.

Damit im weiteren Verlauf Roundcube auf den MySQL-Server zugreifen kann, muss nun eine Datenbank samt Benutzer angelegt werden.

  • Den “MySQL 5.6 Command Line Client” öffnen.
  • Mit dem bei der Installation vergebenen root-Passwort anmelden.
  • Folgende Befehle ausführen:
create database roundcube;
grant all privileges on roundcube.* to roundcube@localhost identified by 'PASSWORT';
flush privileges;
exit;

Mit diesen Befehlen hat man nun eine Datenbank und einen Benutzer mit dem Namen “roundcube” angelegt.

PHP installieren und konfigurieren

  • Das PHP-Archiv nach “C:\PHP” entpacken.
  • Den Ordner “C:\PHP\logs” anlegen. In diesem Ordner wird das Protokoll von PHP gespeichert. Dieses ist hilfreich bei der Suche nach Fehlern und Problemen.
  • Die Datei “php.ini-production” zu “php.ini” umbenennen oder umkopieren.
  • Die Datei “php.ini” editieren und wie folgt abändern:
  • Zeile 584: error_log = C:/PHP/logs/php_errors.log
  • Zeile 730: extension_dir = “C:/PHP/ext”
  • Zeile 870: extension=php_fileinfo.dll (Kommentarzeichen ; entfernen)
  • Zeile 874: extension=php_intl.dll (Kommentarzeichen ; entfernen)
  • Zeile 878: extension=php_mbstring.dll (Kommentarzeichen ; entfernen)
  • Zeile 879: extension=php_exif.dll (Kommentarzeichen ; entfernen)
  • Zeile 884: extension=php_openssl.dll (Kommentarzeichen ; entfernen)
  • Zeile 886: extension=php_pdo_mysql.dll (Kommentarzeichen ; entfernen)
  • Zeile 919: date.timezone = Europe/Berlin

Möchte man Roundcube statt mit MySQL mit SQLite betreiben, so benötigt man statt der Zeile 886 folgende Zeilen:

  • Zeile 890: extension=php_pdo_sqlite.dll (Kommentarzeichen ; entfernen)
  • Zeile 901: extension=php_sqlite3.dll (Kommentarzeichen ; entfernen)

Apache installieren und konfigurieren

  • Den Ordner “Apache24” aus dem Archiv nach “C:\” entpacken.
  • In einer Eingabeaufforderung mit erhöhten Rechten folgenden Befehl ausführen, damit der Apache Webserver als Dienst installiert wird:
C:\Apache24\bin\httpd.exe -k install
  • Die Datei “C:\Apache24\conf\httpd.conf” editieren, die Zeile 271 um “index.php” erweitern und folgende Zeilen abändern:
  • Zeile 93: LoadModule autoindex_module modules/mod_autoindex.so (Kommentarzeichen # entfernen)
  • Zeile 105: LoadModule deflate_module modules/mod_deflate.so (Kommentarzeichen # entfernen)
  • Zeile 109: LoadModule expires_module modules/mod_expires.so (Kommentarzeichen # entfernen)
  • Zeile 113: LoadModule headers_module modules/mod_headers.so (Kommentarzeichen # entfernen)
  • Zeile 149: LoadModule rewrite_module modules/mod_rewrite.so (Kommentarzeichen # entfernen)
  • Zeile 258: Von “AllowOverride None” zu “AllowOverride All” abändern.

Folgende Zeilen am Ende der Datei einfügen:

# PHP
LoadModule php5_module "C:/PHP/php5apache2_4.dll"
AddHandler application/x-httpd-php .php
PHPIniDir "C:/PHP"

Nun kann der Apache über die Diensteverwaltung oder die Eingabeaufforderung von Windows gestartet werden.

Roundcube installieren und konfigurieren

  • Den Inhalt des Archivs nach “C:\Apache24\htdocs\roundcube” extrahieren.
  • Einen Browser öffnen und folgende Adresse aufrufen:
http://COMPUTERNAME-ODER-IP/roundcube/installer
  • Nach einem Klick auf die Schaltfläche “NEXT” können Angaben wie z.B. der Titel der Webseite, aber auch sicherheitsrelevante Einstellungen, gemacht werden.
  • Im Abschnitt “Database setup” müssen Angaben zum MySQL-Server vorgenommen werden. Verwendet man stattdessen SQLite, so muss Dies ausgewählt werden und im Feld “Database Name” ein Pfad samt Datenbankname eingetragen werden. Die Angabe “/SQLite/roundcube.db” entspricht dabei dem Ziel “C:\SQLite\roundcube.db”.
  • Im Abschnitt “IMAP Settings” können Vorgaben gemacht werden, welcher IMAP-Server verwendet werden soll. In diesem Fall wurden hier alle Angaben zum hMailServer eingetragen.
  • Im Abschnitt “SMTP Settings” gilt das Gleiche, wie im IMAP-Abschnitt.
  • Nach einem Klick auf die Schaltfläche “CREATE CONFIG” werden zwei Konfigurationsdateien erstellt. Diese müssen unter “C:\Apache24\htdocs\roundcube\config” abgespeichert werden. Man sollte unbedingt prüfen, ob bei diesen zwei Dateien Zeilen außerhalb von “<php…” vorhanden sind. Ist das der Fall, sollte man diese Zeilen löschen.
  • Sobald dieser Vorgang abgeschlossen ist auf die Schaltfläche “CONTINUE” klicken.
  • Im Abschnitt “Check DB config” auf die Schaltfläche “Initialize database” klicken.
  • Es können nun Tests der SMTP- und IMAP-Verbindung durchgeführt werden.
  • Sobald alle notwendigen Schritte abgeschlossen sind, kann Roundcube über die Adresse
http://COMPUTERNAME-ODER-IP/roundcube

aufgerufen werden. Zur Sicherheit sollte der Ordner “installer” entfernt werden.

Troubleshooting

Fehlermeldung bei Roundcube – Check environment:

Intl:  NOT AVAILABLE(Could be loaded. Please add in php.ini; ...

Warnung im PHP-Log:

PHP Warning: PHP Startup: Unable to load dynamic library 'C:\PHP\ext\php_intl.dll' - Das angegebene Modul wurde nicht gefunden. 
 in Unknown on line 0

Lösung: Alle icu*.dll-Dateien aus “C:\PHP” nach “C:\Apache24\bin” kopieren und den Webserver neu starten.

(Quelle: 1.7.7 lite – extension php_intl.dll läuft nicht…)