Hier werden die Unterschiede zwischen zwei Versionen gezeigt.
Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung Nächste Überarbeitung | Vorherige Überarbeitung | ||
webmailer_roundcube [2014/09/13 23:10] rakor |
webmailer_roundcube [2014/11/05 21:05] rakor [nginx konfigurieren] ; hatte gefehlt |
||
---|---|---|---|
Zeile 18: | Zeile 18: | ||
Alle anderen Ports können mit Standardeinstellungen installiert werden. | Alle anderen Ports können mit Standardeinstellungen installiert werden. | ||
- | |||
- | FIXME | ||
- | TODO: Kommt noch | ||
==== Weitere Pakete installieren ==== | ==== Weitere Pakete installieren ==== | ||
- | Zusätzlich werden noch einige optionale Pakete installiert. Es handelt sich dabei um folgende | + | Zusätzlich werden noch die folgenden optionalen Pakete installiert. |
* sysutils/php5-fileinfo | * sysutils/php5-fileinfo | ||
* security/php5-openssl | * security/php5-openssl | ||
Zeile 29: | Zeile 26: | ||
* graphics/php5-exif | * graphics/php5-exif | ||
+ | Roundcube wurde nun unter ///usr/local/www/roundcube// installiert. Nun werden noch die Dateirechte angepasst: | ||
+ | <code> | ||
+ | # chown -R www:www /usr/local/www/roundcube/* | ||
+ | </code> | ||
- | Danach den Server besuchen nach http://example.com/installer | + | ===== nginx konfigurieren ===== |
- | + | Da der E-Mailzugang etwas recht persönliches ist sollte auch der Zugang zu //Roundcube// ausschliesslich verschlüsselt erfolgen. Demnach wird zunächst ein OpenSSL-Zertifikat angelegt wie in [[OpenSSL Zertifikat erstellen]] beschrieben. Anschliessend wird der bereits installierte //nginx// so konfiguriert, dass unverschlüsselte Anfragen auf Port 80 automatisch auf HTTPS umgeleitet werden. Hierzu wird die ///usr/local/etc/nginx/nginx.conf// wie folgt angepasst. | |
<file> | <file> | ||
worker_processes 1; | worker_processes 1; | ||
Zeile 41: | Zeile 41: | ||
http { | http { | ||
- | include mime.types; | + | include mime.types; |
- | default_type application/octet-stream; | + | default_type application/octet-stream; |
- | sendfile on; | + | sendfile on; |
keepalive_timeout 65; | keepalive_timeout 65; | ||
- | server { | + | server { # Server auf Port 80 (HTTP) leitet an https: weiter. SSL erzwingen. |
- | listen 80; | + | listen 80; |
- | server_name example.com | + | server_name example.com; # Hier richtigen Servernamen eintragen |
- | return 301 https://$server_name$request_uri; # enforce | + | return 301 https://$server_name$request_uri; # enforce |
- | } | + | } |
- | server { | + | server { # Server an Port 443 ruer SSL-verschluesselte Verbindungen |
- | listen 443 ssl; | + | listen 443 ssl; |
- | server_name example.com; | + | server_name example.com; # Hier richtigen Servernamen eintragen |
+ | |||
+ | # Zertifikat und Schluessel fuer die verschluesselte Verbindung | ||
+ | ssl_certificate /etc/opensslcerts/official-mail.crt; | ||
+ | ssl_certificate_key /etc/opensslcerts/official-mail.key; | ||
- | ssl_certificate /etc/opensslcerts/roundcube.crt; | + | root /usr/local/www/roundcube; |
- | ssl_certificate_key /etc/opensslcerts/roundcube.key; | + | index index.php index.html; |
+ | |||
+ | # Fehlercodes umleiten | ||
+ | error_page 500 502 503 504 /50x.html; | ||
+ | location = /50x.html { | ||
+ | root /usr/local/www/nginx; | ||
+ | } | ||
- | root /usr/local/www/roundcube; | + | # kein Zugriff auf die Verzeichnisse |
- | index index.php index.html; | + | location ~ ^/(bin|SQL|config)/ { |
- | location ~ \.php$ { | + | deny all; |
- | include fastcgi_params; | + | |
- | fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; | + | |
- | fastcgi_pass unix:/var/run/php-fpm.sock; | + | |
- | } | + | |
} | } | ||
+ | |||
+ | # keine versteckten Dateien | ||
+ | location ~ /\. { | ||
+ | deny all; | ||
+ | access_log off; | ||
+ | log_not_found off; | ||
+ | } | ||
+ | | ||
+ | # PHP-Scripte per FastCGI aufrufen | ||
+ | location ~ \.php$ { | ||
+ | include fastcgi_params; | ||
+ | fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; | ||
+ | fastcgi_pass unix:/var/run/php-fpm.sock; | ||
+ | } | ||
+ | } | ||
} | } | ||
</file> | </file> | ||
- | config.inc.php | + | ===== Verzeichnis für die SQLite-Datenbank anlegen ===== |
- | <file> | + | Soll die Datenbank für //Roundcube// z.B. im Verzeichnis ///var/db/roundcube// angelegt werden muss dieses zunächst erzeugt und mit den entsprechenden Rechten versehen werden. |
- | $config['plugins'] = array(managesieve); | + | <code> |
- | </file> | + | # mkdir -p /var/db/roundcube |
+ | # chown www:www /var/db/roundcube | ||
+ | </code> | ||
- | plugins/managesieve/confic.inc.php | + | ===== Basiskonfiguration von Roundcube ===== |
- | <file> | + | Nun sollte //Roundcube// grundsätzlich von aussen erreichbar sein. Somit kann nun die grundlegende Konfiguration per Browser erfolgen. Um den Installer zu starten wird die folgende URL aufgerufen **https://example.com/installer**. Im Browser erfolgt nun die Konfiguration von //Roundcube//. |
- | $config['managesieve_host'] = 'tls://mailserver.de'; | + | |
- | </file> | + | Um die Installation mittels einer SQLite-Datenbank durchzuführen müssen im Bereich //Database setup// die folgenden Felder geleert werden: |
+ | * Database server (omit for sqlite) | ||
+ | * Database user name (needs write permissions)(omit for sqlite) | ||
+ | * Database password (omit for sqlite) | ||
+ | |||
+ | In das Feld //Database name (use absolute path and filename for sqlite)// wird nun noch ein absoluter Pfad zur Datenbank eingetragen. Der Pfad sollte nicht im Roundcube-Verzeichnis liegen, Eine Empfehlung wäre ///var/db/roundcube/roundcube.db//. | ||
+ | |||
+ | Unter //IMAP settings// wird als //default_host// der IMAP-Server hinterlegt (z.B. ssl://mail.example.com). Ebenso wird der //smtp_server// unter //SMTP Settings// eingetragen (z.B. ssl://mail.example.com) und der Port unter //smtp_port// auf //465// gesetzt um ausschliesslich den verschlüsselten Zugang zu verwenden. Zusätzlich sollte //Use the current IMAP username and password for SMTP authentication// angehakt werden um nicht extra das SMTP-Kennwort speichern zu müssen. | ||
+ | |||
+ | |||
+ | ==== Konfiguration setzen ==== | ||
+ | Nach Abschluss des Installationsdialogs wird die fertige Konfiguration angezeigt. Diese wird komplett kopiert und in der Datei ///usr/local/www/roundcube/config/config.inc.php// gespeichert. | ||
+ | |||
+ | ==== Konfiguration schützen ==== | ||
+ | Um die Konfiguration zu schützen sollte der //installer// Ordner im Roundcube-Verzeichnis gelöscht werden. | ||
+ | |||
+ | Um die SQLite-Datenbank sollte noch mit den richtigen Zugriffsrechten versehen werden: | ||
+ | <code> | ||
+ | # chmod 640 /var/db/roundcube/roundcube.db | ||
+ | </code> | ||
+ | |||
+ | ===== Weitere Schritte ===== | ||
- | /plugins/managesieve # cp config.inc.php.dist config.inc.php | + | Um mittels //Roundcube// in der Lage zu sein //Sieve//-Regeln zur Mailfilterung sehr einfach zu definieren kann man zum Abschluss noch [[Roundcube um managesieve-Plugin erweitern]]. |
- | Sieve installieren: | + | |
- | mail/roundcube-sieverules | + |