{"id":651,"date":"2014-06-29T16:40:46","date_gmt":"2014-06-29T14:40:46","guid":{"rendered":"http:\/\/blog.gafu.de\/?p=651"},"modified":"2016-04-28T19:55:36","modified_gmt":"2016-04-28T17:55:36","slug":"kolab-server-3-2-auf-debian-7-installieren","status":"publish","type":"post","link":"http:\/\/blog.gafu.de\/?p=651","title":{"rendered":"Kolab Server 3.2 auf Debian 7 installieren"},"content":{"rendered":"<p>Wer die Groupware Kolab auf seinem Debian Server installieren will, z.B. in einer VM wird auf ein paar Hindernisse sto\u00dfen.<br \/>\nDeshalb hier ein kleiner Erfahrungsbericht f\u00fcr die Welt da draussen, wie es bei mir erfolgreich \u00fcber die B\u00fchne ging.<\/p>\n<p><a title=\"Roundcubemail Webmailer Screenshot\" href=\"http:\/\/blog.gafu.de\/wp-content\/2014\/06\/roundcube.jpg\"><img decoding=\"async\" alt=\"Roundcubemail Webmailer\" src=\"http:\/\/blog.gafu.de\/wp-content\/2014\/06\/roundcube-600.jpg\" \/><br \/>\n<\/a><br \/>\n<!--more--><\/p>\n<p><strong>Vorbereitung:<\/strong><br \/>\nEin FQDN wird gebraucht (fully qualified domain name)<br \/>\nEinen Benutzer f\u00fcr die LDAP-Installation anlegen und merken. (auch die Benutzergruppe merken, in der sich dieser Benutzer befindet)<br \/>\nLXC-Conatainers mounten (in \/etc\/fstab):<br \/>\n<code>none \/dev\/shm tmpfs rw,nosuid,nodev,noexec 0 0<\/code><br \/>\nKolab-Repository zu den Paketquellen hinzuf\u00fcgen (etc\/apt\/sources.list):<br \/>\n<code> deb http:\/\/obs.kolabsys.com:82\/Kolab:\/3.2\/Debian_7.0\/ .\/<br \/>\ndeb http:\/\/obs.kolabsys.com:82\/Kolab:\/3.2:\/Updates\/Debian_7.0\/ .\/<\/code><br \/>\nund GPG Schl\u00fcssel dazu:<br \/>\n<code># wget -qO - http:\/\/obs.kolabsys.com:82\/Kolab:\/3.2\/Debian_7.0\/Release.key | apt-key add -<br \/>\n# wget -qO - http:\/\/obs.kolabsys.com:82\/Kolab:\/3.2:\/Updates\/Debian_7.0\/Release.key | apt-key add -<\/code><br \/>\nKolab-quellen priorisieren (etc\/apt\/preferences.d):<br \/>\nVM neustarten (mount..)<br \/>\nPaketquellen aktualisieren (apt-get update)<\/p>\n<p>Dann gehts los:<br \/>\nMit <strong>aptitude<\/strong>(!) hat es bei mir geklappt, die Abh\u00e4ngigkeiten korrekt aufzul\u00f6sen: (Debian hat Exim als Mailserver vorinstalliert, Kolab verwendet aber Postfix)<br \/>\n<code>aptitude install kolab<\/code><\/p>\n<p>Bei der Installation fragt dpkg Daten f\u00fcr den Mailserver ab:<br \/>\nBei einer Installation hinter einem DSL-Anschluss ist &#8222;Internet mit Smarthost&#8220; die richtige Wahl<br \/>\nBei smtp-relay nichts eingeben (dazu sp\u00e4ter mehr). F\u00fcr den MySQL-Rootaccount einen starkes Passwort verwenden und merken.<\/p>\n<p>Danach muss der Antiviruns ClamAV noch mit Virendefinitionen versorgt und gestartet werden:<br \/>\n<code>freshclam<br \/>\n\/etc\/init.d\/clamav-daemon start<\/code><\/p>\n<p>Jetzt kann die Kolab-Einrichtung begonnen werden:<br \/>\nBeim Durchlauf werden jede Menge Passw\u00f6rter generiert (die \u00fcbernommen werden k\u00f6nnen oder ersatzweise eigene eingegeben). Die m\u00fcssen irgendwo festgehalten werden.<br \/>\nWichtig gleich vorneweg: Wer mit einer VM arbeitet, ist an dieser Stelle gut beraten, die VM herunterzufahren, und die Containerdatei mit dem Laufwerksimage zu sichern, oder in der VM einen Sicherungspunkt anzulegen. Das kolab-setup kann nur einmalig ausgef\u00fchrt werden und bricht bei einem sp\u00e4teren Lauf mit vielen Fehlermeldungen ab!<br \/>\nBevor es aber dierekt los geht gleich ein Workaround: Sowohl Debian als auch das Kolab-setup setzen dem Ordner \/etc\/dirsrv nicht den richtigen Eigent\u00fcmer. Das Setup bricht so beim 389-ds server ab. Deshalb muss vorher dieser Ordner als Eigent\u00fcmer dem zuerst angelegtem LDAP-Benutzer geh\u00f6ren. Die erzeugten Subdirs werden dann vom Setup korrekt &#8222;eingestellt&#8220;. (fehler: <code>mkdir_p \/var\/lib\/dirsrv\/slapd-kolab: errer -5966 (Acces Denied.)<\/code>)<\/p>\n<p>Dann los mit dem Befehl (als root, versteht sich):<br \/>\n<code>setup-kolab<\/code><br \/>\nTipp: Wer das Terminal von der graphischen Oberfl\u00e4che aus ge\u00f6ffnet hat, kann die R\u00fcckscrollzeilen auf unendlich setzen und am Ende das Protokoll mit den ganzen Passw\u00f6rtern einfach im Terminalfenster markieren und herauskopieren.<\/p>\n<p>Beim weiteren Durchlauf des Setup (bei der Installation des Roundcubemail-Webmailers) hagelt es zwei weitere Fehler, die bereits zu einem Bugreport gef\u00fchrt haben: <a href=\"https:\/\/issues.kolab.org\/show_bug.cgi?id=2811\">https:\/\/issues.kolab.org\/show_bug.cgi?id=2811<\/a><\/p>\n<p>Ich habe zwar den Patch angewandt, auch einmal h\u00e4ndisch die angesprochene Python Datei ge\u00e4ndert, jedoch lief der Fehler bei mir trotzdem weiterhin auf.<br \/>\n(ERROR 1005 (HY000) at line 9: Can&#8217;t create table &#8218;roundcube.kolab_alarms&#8216; (errno: 150)<br \/>\nERROR 1146 (42S02) at line 179: Table &#8218;roundcube.system&#8216; doesn&#8217;t exist)<br \/>\nDaf\u00fcr gibts ein Workaround welches man nach Abschluss des Kolab-setup anwenden kann:<br \/>\nDie hier (<a href=\"http:\/\/lists.kolab.org\/pipermail\/users\/2014-May\/017164.html\">http:\/\/lists.kolab.org\/pipermail\/users\/2014-May\/017164.html<\/a>) angegebene SQL-Datei (<a href=\"http:\/\/mihai.badici.ro\/linux\/machinet\/debian\/kolab.sql\">http:\/\/mihai.badici.ro\/linux\/machinet\/debian\/kolab.sql<\/a>) herunterladen und z.B. mit phpmyadmin unter dem mysql-account roundcube und der roundcube-tabelle (da gibts nur eine die passt) einspielen. Ich habe die restlichen vom kolab-setup vorhandenen Tabellen drinn gelassen, und nur diese aus der Datei hinzugef\u00fcgt.<\/p>\n<p>Danach Einloggen unter http:\/\/127.0.0.1\/kolab-webadmin<br \/>\nbenutzer: &#8222;cn=directory manager&#8220;<br \/>\npasswort wie vergeben.<\/p>\n<p>Jetzt im Webadmin einen neuen Benutzer anlegen, im rechten Reiter wird ein Passwort vorgeschlagen, oder ein Eigenes eingeben.<\/p>\n<p>Dann unter http:\/\/127.0.0.1\/roundcubemail einloggen<br \/>\nbenutzername: vorname.nachnahme@fqdn oder die \u00fcber dem Passwort des neu angelegten Users angezeigte uuid<\/p>\n<p>Eventuell kolab-server starten wenn login nicht geht: <code>\/etc\/init.d\/kolab-server start<\/code><\/p>\n<p>Fertig!<\/p>\n<p>Nachtrag:<br \/>\nIm Roundcubemail funktionieren die Kontakte nicht, weil ein der mySQL Datenbank ein Eintrag fehlt.<br \/>\nDie L\u00f6sung habe ich hier gefunden: https:\/\/lists.kolab.org\/pipermail\/users\/2014-February\/016704.html<br \/>\n<code>I had to manually update the sql schemata:<\/p>\n<p>mysql> ALTER TABLE `kolab_cache_contact` ADD `name` VARCHAR(255) NOT NULL,<br \/>\n    ->   ADD `firstname` VARCHAR(255) NOT NULL,<br \/>\n    ->   ADD `surname` VARCHAR(255) NOT NULL,<br \/>\n    ->   ADD `email` VARCHAR(255) NOT NULL;<\/p>\n<p>Without this, roundcube doesn't show contacts but logs errors:<\/p>\n<p>[19-Feb-2014 18:36:35,000000 +0100]: DB Error: [1054] Unknown column 'surname'<br \/>\nin 'order clause' (SQL Query: SELECT * FROM kolab_cache_contact WHERE<br \/>\nfolder_id='11'  AND `type` = 'contact' ORDER BY surname, email LIMIT 50) ...<\/p>\n<p>[19-Feb-2014 18:48:52,000000 +0100]: DB Error: [1054] Unknown column 'name' in<br \/>\n'field list' (SQL Query: INSERT INTO kolab_cache_contact  (folder_id, msguid,<br \/>\nuid, created, changed, data, xml, tags, words , type, name, firstname, surname,<br \/>\nemail) VALUES (...)<br \/>\n<\/code><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Wer die Groupware Kolab auf seinem Debian Server installieren will, z.B. in einer VM wird auf ein paar Hindernisse sto\u00dfen. Deshalb hier ein kleiner Erfahrungsbericht f\u00fcr die Welt da draussen, wie es bei mir erfolgreich \u00fcber die B\u00fchne ging.<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[7],"tags":[435,433,448],"class_list":["post-651","post","type-post","status-publish","format-standard","hentry","category-internet","tag-groupware","tag-kolab","tag-mailserver"],"_links":{"self":[{"href":"http:\/\/blog.gafu.de\/index.php?rest_route=\/wp\/v2\/posts\/651","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/blog.gafu.de\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/blog.gafu.de\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/blog.gafu.de\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"http:\/\/blog.gafu.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=651"}],"version-history":[{"count":5,"href":"http:\/\/blog.gafu.de\/index.php?rest_route=\/wp\/v2\/posts\/651\/revisions"}],"predecessor-version":[{"id":1234,"href":"http:\/\/blog.gafu.de\/index.php?rest_route=\/wp\/v2\/posts\/651\/revisions\/1234"}],"wp:attachment":[{"href":"http:\/\/blog.gafu.de\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=651"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/blog.gafu.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=651"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/blog.gafu.de\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=651"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}