Category Archives: Alfresco
Alfresco Upgrade / Update Prozedur
Anpassen Java-Memory für Alfresco
Alfresco: Kein Download bei Schreibrecht (Consumer)
Alfresco Java Script Console
Alfresco Loging reduzieren: AccessLogValve in server.xml
Meine Alfersco-Installation „flutet“ den Server mit sehr grossen „localhost_access_log“ Files. Hauptsächlich mit SOLR-Requests dieser Sorte:
GET /alfresco/service/api/solr/transactions?fromCommitTime=1352137016770&toCommitTime=1352144216770&maxResults=2000 HTTP/1.1" 200 115
Also jedesmal wenn Solr mit Alfresco kommuniziert, wird ein Log-Eintrag erstellt.
„Lösung“ nach Holzhacker-Methode:
- Deaktivieren der Tomcat-Valves
sudo vi tomcat/conf/server.xml
Und deaktivieren bzw auskommentieren des Valves:
<!--<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" prefix="localhost_access_log" suffix=".txt" pattern="%h %l %u %t "%r" %s %b" /> -->
Alfresco: Max Open File in Unix
Alfresco Upgrade Prozedur von Version 5.1 auf Version 5.2 (Alfresco Community Edition 201612 GA)
Dieses Howto beschreibt meine Schritte um eine Alfresco 5.1 Installation nach Alfresco 5.2 (Alfresco Community Edition 201612 GA) zu erhöhen.
Aktuelle Alfresco Installation
Mein Alfresco-System wird nicht im produktiven Umfeld sondern lediglich privat genutzt. Die Anforderungen an das System sind entsprechend niedgrig (keine Skalierung, geringe Performance).
Alfresco | |
---|---|
2 Server | 1 VM-Server für die Alfresco Installation, DB und Index (45 GB Festplatte) 1 VM-Server für Daten (350 GB Festplatte) |
Alfresco Home | /opt/alfresco-community |
Installation | Default installations-Routine |
Postgres-SQL | Ja, Installiert über die normale Installations-Routine von Alfresco |
Index | SOLR4 |
Alfresco Service | Ja. Servicename „alfresco“, Installiert über die normale Installations-Routiene von Alfresco |
alf_data | Das alf_data Verzeichnis befindet sich ausgelagert auf einem NFS-Server (VM für Daten und Index). Das alf_data Verzeichnis wird dann auf dem Alfresco-Server nach /opt/alfresco/alf_data gemounted. |
Ugrade Prozedur | Die Upgrade Prozedur richtet sich grundsätzlich nach der Alfresco-Doku: Link |
Neue VM erstellen
Bei einem Alfresco-Update (welches ja nicht so häufig vorkommt) erstelle ich meist eine neue VM mit aktuellstem Ubuntu-Betriebssystem (LTS):
- Neue VM erstellen (ESXi 5.5, VM mit Ubuntu-Linux, 4 CPUs, 8GB RAM)
- Alfresco benötigt einige Libs als Voraussetzung. Die Installationsroutine meckert, wenn diese nicht vorhanden sind (siehe hier).
Auf Ubuntu folgendes ausführen:sudo apt-get install libice6 libsm6 libxt6 libxrender1 libxext6 libfontconfig1 libcups2 libglu1-mesa libcairo2 libegl1-mesa libxinerama1
Achtung: Die Installationsroutine zeigt nach der Installation aller notwendigen Libs immer noch an, dass diese Fehlen (Stand 3.1.2017, Ubuntu 16.04). Das scheint aber ein Bug der Installationsroutine von Alfresco zu sein.
- Alfresco auf der neuen VM installieren.
- Für die Installation verwende ich die default Installations-Routine von Alfresco.
- Die Ports Ändere ich auf 80 bzw. 443.
- Den Service installiere ich auch mit der Alfresco Installations-Routine.
- Memory anpassen: Link
- Max Open Files anpassen: Link
- Anschlissend überprüfen ob die neue Installation sauber funktioniert (z.B. LibreOffice).
Konfigurationen/Customizing der neuen Installation anwenden
Ich habe auf meinem Alfresco einige „customs“ eingebaut:
Custom Datalists
Custom Share Header
Custom Web-Extensions
- Zwei eigene Listen (Inventar und Bibliothek). Hier zeige ich nur die Bibliotheksliste. Das selbe auch für Inventar machen.
- Die neuen Datalists registrieren
cp /opt/alfresco-alt//tomcat/shared/classes/alfresco/extension/customDatalist-model-context.xml /opt/alfresco-neu//tomcat/shared/classes/alfresco/extension/customDatalist-model-context.xml
Datalist-Model erstellen/kopieren
cp /opt/alfresco-alt/tomcat/shared/classes/alfresco/extension/bibliothekDatalistModel.xml /opt/alfresco-neu/tomcat/shared/classes/alfresco/extension/bibliothekDatalistModel.xml
Das web-extensions File erweitern mit den Erweiterungen aus der alten Instanz
/opt/alfresco-community/tomcat/shared/classes/alfresco/web-extension/share-config-custom.xml
- Download Buttons entfernen: Link
- Header-Icons ausblenden, welche nicht gebraucht werden: Link
- Download-Button nur wenn Schreibrecht vorhanden: Link
Alte Alfresco-Instanz backupen
- Alte Alfresco-Instanz stoppen
- Ganze DB backupen
- Postgres starten
sudo /opt/alfresco-community/alfresco.sh start postgresql
- Die gesamte Alfresco-Datenbank dumpen
cd /opt/alfresco-community/postgresql/bin/
./pg_dump -h localhost -U alfresco alfresco > /tmp/alfrescodbdump
- Postgres stoppen
sudo /opt/alfresco-4.2.d/alfresco.sh stop postgresql
- Postgres starten
- alf_data Verzeichnis der alten Alfresco-Instanz backupen. => Darauf achten, dass der Alfresco-Service nicht läuft!
Ich kopiere dazu einfach das gesamte alte alf_data Verzeichnis nach alf_data_alt.
Daten auf neuer Alfresco-DB Instanz restoren
- Die neue Alfresco-Instanz stoppen.
- Nun die Postgresql-Datenbank der NEUEN Installation starten:
sudo /opt/alfresco-community/alfresco.sh start postgresql
- Die Datenbank „alfresco“ der neuen Installation löschen:
cd /opt/alfresco-community/postgresql/bin/
./dropdb -U alfresco alfresco -h localhost -i Database "alfresco" will be permanently removed. Are you sure? (y/n) y Password:
- Die gelöschte Datenbank wieder erstellen
$ sudo ./createdb -U postgres -T template0 alfresco -h localhost Password:
- Nun den Alfresco-Dump der alten Instanz auf der neuen einspielen:
$ sudo ./psql -U alfresco alfresco -h localhost < /tmp/alfrescodbdump Password: (...) ALTER TABLE ALTER TABLE REVOKE REVOKE GRANT GRANT $ exit
- Die Postgres-DB der neuen Installation wieder stoppen.
sudo /opt/alfresco-community/alfresco.sh stop postgresql
Content-Store und Idexe restoren
Content-Store und Index habe ich auf einem NFS-Server.
- Wichtig, nicht das postgres-Datenverzeichnis der neuen Installation löschen!!!!!! Das ganze alf_data Verzeichnis der neuen Alfresco-Instanz nach ~/alf_data_backup verschieben. Dies, weil sich auch das postgres-Datenverzeichnis hier befindet. Die DB mit den Daten wird wegkopiert.
sudo mv /opt/alfresco/alf_data ~/alf_data
- Jetzt den mount-Punkt „alf_data“ des NFS-Servers auf die neue Alfresco-Instanz mounten.
- Nun die postgres Daten wieder zurück kopieren
sudo rm -r sudo cp ~/alf_data/postgresql/* /opt/alfresco/alf_data/postgresql/
- Reindexierung von SOLR4:
Ich initialisiere Solr4 nach jeder Installation neu gem. Alfresco-Dokumentation: Link
Alfresco 5.0 Previewer: pdfjs Download Button entfernen
Alfresco liefert ab Version 5 einen neuen Previewer, der die Abhängigkeit zu Flash redizieren soll. Leider liefert der neue Previewer einen Download-Button mit, der es jedem Nutzer ermöglicht, den Inhalt herunterzuladen. Klar. Es kann so ziemlich alles, was ein Browser anzeigt, heruntergelanden werden. Ich möchte es den Usern aber nicht zu einfach machen.
Download-Button auf Previewer ausblenden/entfernen
So kann man den Download-Button ganz einfach komplett zu entfernen:
cd /opt/alfresco-5.0.c/tomcat/webapps/share/WEB-INF/classes/alfresco/site-webscripts/org/alfresco/modules/preview
vi pdfjs.get.js
Anschliessend folgende Passage auskommentieren:
/*{ id: "download", type: "button", icon: "components/documentlibrary/actions/document-download-16.png", label: msg.get("button.download"), title: msg.get("button.download") },*/
Siehe dazu auch:
https://github.com/share-extras/media-viewers/commit/9978b09a5ad280a2ca577fc9d43211290e0a5646
Download wenn Plugin nicht installiert
Wenn der Browser das Flash-Plugin nicht installiert hat, kann natürlich auch der Flashplayer das Video in der Preview nicht abspielen. Leider ist es so, dass in diesem Falle Alfresco einen Text anzeigt und gleichzeitig die Download-Option anbietet:
Die Lables dafür befinden sich unter
/opt/alfresco-community/tomcat/webapps/share/WEB-INF/classes/alfresco/site-webscripts/org/alfresco/components/preview
Ich habe einfach die Lables „label.noPreview“ und „label.noPreview.ios“ angepasst und den link daraus entfernt.