Alfresco auf Debian installieren

Login, bitte

Login, bitte

Aus Gründen die ich später sicher nochmal erläutern werde möchte ich ein Dokumentenmanagementsystem (DMS) installieren. Die Wahl fällt Heute auf Alfresco, einem kommerziell entwickelten System von dem es eine kostenlos nutzbare Community-Version gibt.

Haken an der Sache: das ist eine Java-Anwendung, und die drückt ganz schön auf mein kleines Heimserverchen. Um es nicht zu sehr ausarten zu lassen möchte ich nach Möglichkeit kein volles KVM installieren, sondern in einem OpenVZ-Container (wir erinnern uns: ich habe Proxmox auf meinem Server installiert). Problem dabei: in OpenVZ habe ich nur 32-Bit-Gäste, und der vergleichsweise einfach zu bedienende Installer von Alfresco läuft nur auf 64 Bit.

Also zu Fuss. Und da ich zwar mehrere Anleitungen gefunden habe, keine davon aber wirklich alle meine Probleme gelöst hat, schreibe ich hier mal zusammen was ich gemacht habe. Ich installiere erstmal nur das Basispaket, Zusatzmodule kommen bei Bedarf später nach.

Noch ein Disclaimer vorweg: alles was hier steht ist gefährliches Halbwissen! Meine Erfahrungen mit Alfresco beschränken sich auf wenige Stunden Spielerei, auch Java und Tomcat sind für mich kein Heimspiel. Was ich aufgeschrieben habe hat zumindest auf den ersten Blick für mich funktioniert. Mit dem Ergebnis habe ich noch nicht viel Zeit verbracht. Es kann also durchaus sein dass ich Quatsch geschrieben habe. Falls jemandem Fehler oder Verbesserungen einfallen wäre ich sehr dankbar für einen kurzen Hinweis. Falls mir noch was auffällt werde ich einen entsprechenden Nachtrag schreiben.

  • Maschine anlegen. Ich gebe erstmal nur 1,5GB RAM, dazu 5GB Festplatte.
  • Debian installieren. Debian 7.0 ist mittlerweile so gut wie stabil, also gibt es direkt Wheezy. Dazu das übliche: Apt-Cache eintragen und alles erstmal aktualisieren.
  • Datenbank anlegen. Ich nutze MySQL, die Datenbank liegt auf einem anderen Server. ‚create database alfresco‚.
  • Benötigte Pakete installieren: apt-get install libreoffice openjdk-7-jre imagemagick tomcat7 mysql-client libmysql-java zip‚. Die Java-Version scheint wirklich wichtig zu sein, mit Version 6 hatte ich kein Glück beim vollständigen Anlegen der Datenbank.
  • Die SWFTools kennt Debian zwar als Paket, hier fehlt dann allerdings das essentiell wichtige pdf2swf. Wir ziehen uns die Sourcen (Version 0.9.1, 0.9.2 bringt einen Fehler bei der Installation) und compilieren klassisch mit ./configure && make && make install. Voraussetzung hierfür: apt-get install zlib1g-dev libjpeg62-dev libgif-dev libfreetype6-dev g++ make.
  • Alfresco herunterladen. Wir brauchen das Paket für die manuelle Installation, aktuell also alfresco-community-4.2.c.zip.
  • Den Inhalt des Paketes unter /opt/alfresco auspacken.
  • Sicherstellen dass Tomcat nicht läuft, damit der uns nicht in die Quere kommt: /etc/init.d/tomcat7 stop
  • Dateien und Verzeichnisse vorbereiten:

    # cp -r /opt/alfresco/web-server/shared/ /var/lib/tomcat7/
    # cp -r /opt/alfresco/web-server/webapps/ /var/lib/tomcat7/
    # cp -r /opt/alfresco/bin/ /var/lib/tomcat7/
    # ln -s ../../java/mysql-connector-java.jar /usr/share/tomcat7/lib/
    # mv /var/lib/tomcat7/shared/classes/alfresco-global.properties.sample /var/lib/tomcat7/shared/classes/alfresco-global.properties
    # mv /var/lib/tomcat7/shared/classes/alfresco/web-extension/share-config-custom.xml.sample /var/lib/tomcat7/shared/classes/alfresco/web-extension/share-config-custom.xml
    # mkdir /opt/alfresco/alf_data
    # chown -R tomcat7:tomcat7 /var/lib/tomcat7/ /opt/alfresco/alf_data/

  • Konfigurationsdatei /var/lib/tomcat7/shared/classes/alfresco-global.properties anpassen. Hier nur die geänderten Zeilen:

    dir.root=/opt/alfresco/alf_data
    db.username=alfresco
    db.password=GEHEIMESPASSWORT
    ooo.exe=/usr/bin/soffice
    ooo.enabled=true
    jodconverter.officeHome=/usr/lib/libreoffice/
    jodconverter.portNumbers=8101
    jodconverter.enabled=true
    img.root=/usr
    img.exe=/usr/bin/convert
    swf.exe=/usr/local/bin/pdf2swf
    db.driver=org.gjt.mm.mysql.Driver
    db.url=jdbc:mysql://DATENBANKSERVER/alfresco?useUnicode=yes&characterEncoding=UTF-8

  • Speichermanagement für Tomcat anpassen, in /etc/default/tomcat7 folgende Einstellungen hinzufügen:
    JAVA_OPTS="${JAVA_OPTS} -XX:MaxPermSize=512m -Xms128m -Xmx768m -Dalfresco.home=/opt/alfresco -Dcom.sun.management.jmxremote"
  • Tomcat starten: /etc/init.d/tomcat7 start

Danach kann man seinen Browser ganz vorsichtig auf http://SERVERNAME:8080/share oder http://SERVERNAME:8080/alfresco loslassen. Nicht vorschnell aufgeben, der erste Aufruf kann durchaus mehrere Minuten dauern. Die Zeit kann man sich zum Beispiel damit vertreiben, in der Datenbank nachzusehen ob tatsächlich die nötigen Tabellen angelegt werden. Direkt nach dem Laden der Startseite sind in der DB schon 102 Tabellen und mehrere Tausend Datensätze vorhanden.

Genau hier hat mich übrigens der Fehlerteufel eine Weile in Schach gehalten: in meinen ersten Anläufen hatte ich openjdk-6-jre installiert, so wie die meisten (zugegeben: teils alten) Howtos raten. Das führt neben einem Riesenhaufen Logs — die für einen nicht-Java-affinen Menschen erstmal nichtssagend sind — zu genau 20 Tabellen in der Datenbank, und dazu dass man unter /alfresco nur eine Fehlermeldung präsentiert bekommt. Darauf, das mal mit Java 7 zu testen muss man erstmal gestossen werden:-(

Wenn die Startseite (endlich!) sauber lädt kann man sich mit admin:admin anmelden und anfangen zu überlegen was man mit so einem schönen, neuen, großen Spielzeug anfangen kann… Aber das ist eine andere Geschichte, und die soll ein anderes Mal erzählt werden… ;-)

Geholfen haben mir bei der Installation hauptsächlich diese beiden Anleitungen, sowie dieser Thread im Support-Forum. Den Rest habe ich mir zusammengegoogled. Danke an alle die Ihr Wissen im Netz teilen!

Nachtrag (05.03.): Aufgrund eines Fehlers im Zusammenspiel zwischen Flash und dem Browser habe ich Flash-Upload abgeschaltet. Sonst hätte ich in der Weboberfläche keine Dateien hochladen können. Nutzen kann man Alfresco auch anders, aber wenn schon… Um abzuschalten in der Datei /var/lib/tomcat7/shared/classes/alfresco/web-extension/share-config-custom.xml den Wert adobe-flash-enabled auf false setzen und den Tomcat durchstarten.

2 Kommentare

  1. Alfresco hab ich mir auch mal angeschut, allerdings bisher nur kurz. Warum? Ich suchte ein kleines Schlankes Programm welches PDF-Dokumente indiziert. Diese indizierten Dokumente möchte ich dann zu einem Späteren Zeitpunkt dann bei bedarf nach Stichworten durchsuchen und auch finden.

    Da ich mittlerweile sehr viele Dokumente in PDF-Form habe ist für mich solch eine Anwendung schon eigentlich nicht mehr nur nützlich sondern notwendig. DMS viel mir natürlich als erstes ein aber ich brauch halt nur was schlankes und Alfresco ist mit Sicherheit nicht schlank.

    Hast du ein ähnliches Problem ? Und auch eine Problemlösung?

  2. Im Moment tut es ziemlich genau das was es soll: eben Dokumente indizieren und per Web verfuegbar machen, und das mit Vorschaubildchen. Nett ist auch, dass der Ordner mit Dokumenten per NFS oder CIFS zur Verfuegung gestellt wird, so kann man dann auch mit seinen gewohnten Tools darauf arbeiten.

    Aber es stimmt, Alfresco ist nicht sonderlich schlank. Eigentlich kann es auch viel mehr als ich braeuchte. Aber ich habe es jahrelang vor mir her geschoben eine eigene Anwendung fuer meinen Zweck zu schreiben. Wenn ich jetzt nicht Alfresco genommen haette waere es vermutlich nie was geworden. Vielleicht baue ich irgendwann nochmal was eigenes — in schlank.

    Falls jemand Vorschlaege machen moechte: ich will PDFs in Ordner packen koennen, darin suchen, und den Inhalt abschaetzen koennen ohne einen PDF-Betrachter zu starten (eben Vorschaubildchen). Schlagworte waeren nett um den Inhalt zu ergaenzen, super waere auch eine ‚Tacker-Funktion‘ mit der ich aus mehreren PDFs eines machen kann.

    Wozu ich das ganze brauche schreibe ich demnaechst mal — der eine oder andere wird es sich aber schon denken koennen. ;-)

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.

;-) :-) :-D :-| :-/ :-( :-P more »