Alfresco Installation auf Ubuntu 16.04 Integration in bestehenden Tomcat Und PostgreSQL

cancel
Showing results for 
Search instead for 
Did you mean: 
afaust
Master

Re: Alfresco Installation auf Ubuntu 16.04 Integration in bestehenden Tomcat Und PostgreSQL

Bzgl. Forum-Performance: Zum Einen ist es der Umfang - und zum anderen ist mir in den letzten Tagen/Wochen auch aufgefallen, dass es in Firefox/Edge um ein gewaltiges schlimmer ist als im Chrome. U.U. ist irgendein schlecht implementierter shim/polyfill in der Jive Plattform drin, der auf diesen Browsern quer schlägt.

Tomcat 8 geht grundsätzlich auch mit Alfresco - ich habe zu Experimentierzwecken auch schon einen Tomcat 9 Meilenstein mit Java 9 und Alfresco 5.2 aufgebaut, was in Bezug auf die Kernfunktionen auch läuft, sofern man die Java-Modularität etwas einschränkt. Offiziell unterstützt ist aber nur der Tomcat 7.

Es muss aber aufgepasst werden, welche Tomcat 7 und Tomcat 8 Version genutzt wird. Aufgrund eines ungünstigen Fixes und eines Backportings sind einige Tomcat 7 Versionen sowie frühe Tomcat 8 Versionen problematisch für die Share-Anwendung. Aktuelle Versionen sollten jedoch gehen.

Ich habe bisher auch noch keine Messungen mit APR vs. ohne gemacht, aber funktional ist es definitiv optional.

Bzgl. dem Ansatz mit einem selbst gebauten Tomcat auf Ubuntu: Ich nutze in der Regel das Standardpaket für Tomcat und erstelle über Linking und einer kleinen Anpassung des Startskripts einfach zwei Laufzeitinstanzen mit getrennter Config + Webapp. Da beide sich aber die Libraries im Paket-Standardverzeichnis teilen und dort auch die APR Libraries liegen, gibt es damit dann kein Problem. (mein noch in-progress befindliches Script als Referenz)

In den letzten Tagen / Wochen habe ich mich kunden-/projektbedingt auch mit dem Ansatz von vorgefertigten Docker-Images beschäftigt um einfach wiederverwendbare, baugleiche Systeme aufbauen zu können und im Bedarfsfall auch einfach upgraden / anpassen zu können (man muss nur das Image als Vorlage ändern).

skip_250
Member II

Re: Alfresco Installation auf Ubuntu 16.04 Integration in bestehenden Tomcat Und PostgreSQL

Okay, ich blicks immer noch nicht.

Die letzte Tage habe ich damit zugebracht, mir ein durchaus tiefergehendes Verständnis um Tomcat, Catalina und die Instanzierung zu verschaffen.

Soweit so gut.

Für Ihr Tipps und Anregungen war ich bei diesen Arbeiten sehr dankbar und habe mich hauptsächlich darum gekümmert, die Slides der YouTube-Präsentation mit dem Skript von Herrn Faust zu vereinen.

Mit den unten aufgeführten Schritten hatte ich dann nun endlich eine fehlerfrei und fast gänzlich warnungsfreie Ausgabe in der catalina.out.

Nun kurz zu meinem Verständnis, wie die Instanzierung funktioniert, nicht das es doch bereits hier hapert:

Tomcat sehe ich nun eher als das Rahmenpaket, die eigentlich arbeitende Einheit ist offensichtlich viel eher Catalina sowie Java.

Der Start von Tomcat führt lediglich eine Reihe an Scripten aus, die Umgebungsvariablen setzen und letztlich diese an die catalina.s unter /usr/share/tomcat8/bin/ übergeben.

Dabe sind die scheinbar relevantesten die beiden $CATALINA_HOME und $CATALINA_BASE, wobei auch beim Instanzieren, $CATALINA_HOME vom default (/usr/share/tomcat8) nicht abweichen muss.

$CATALINA_BASE hingegen bezeichnet das Wurzelverzeichnis der neuen Instanz, hier wird für den Start von Catalina unter anderem nach der Datei senenv.sh gesucht um weitere Umgebungsvariablen für das zu startende Java gesetzt werden können.

Die CATALINA - Variablen habe ich dem Beispiel von Herrn Faust nach über ein Systemd Unit-File gesetzt (vielen Dank dafür).

Um die Hauptinstanz von Tomcat nicht zu stören (auch wenn ich diese deaktiviert [disabled] habe um die "Nebeninstanz" nicht zu stören [Ports, etc]), wird unter dem mit $CATALINA_BASE referenzierten Verzeichnis nun das Verzeichnis /var/lib/tomcat8 (default $CATALINA_BASE) nachgebaut (in meinem Fall ohne jegliche Links).

Im Wurzelverzeichnisbaum der neuen INstanz kann ich nun in der catalina.properties festlegen von wo weitere klassen/jars nachgeladen werden, abhängig vom der angewählten direktive nur für die app, den server und die app oder aber alle weiteren auf diesem Server laufenden Instanzen.

Siehe common.loader, server.loader und shared.loader

Damit alfresco später läuft, ist es wichtig die Datei alfresco-global.properties unter einem dieser Pfade liegen zu haben.

Soweit so gut, die war files müssen natürlich auch im weebapps Verzeichnis der neuen instanz liegen, sodass alles sauber anlaufen kann.

Nun nochmal die Schritte, die ich in den letzten Tage zum Starten von "alfresco-repo" durchlaufen habe:

(Umgebung und vorangegangene Einstellungen sind ähnlich/gleich der ursprünglichen Frage)

Die Instanz soll im Verzeichnis /opt/alfresco laufen

cd /opt
unzip /tmp/alfresco-community-distribution-201704.zip
mv alfresco-community-distribution-201704 comAlfresco

mkdir -p /opt/alfresco/alf_data
mkdir /opt/alfresco/bin
mkdir /opt/alfresco/run
mkdir -p /opt/alfresco/modules/platform
mkdir -p /opt/alfresco/tomcat/shared/lib
mkdir /opt/alfresco/tomcat/bin
mkdir /opt/alfresco/tomcat/logs

cp -r /opt/comAlfresco/amps /opt/alfresco
cp /opt/comAlfresco/bin/alfresco-mmt.jar /opt/alfresco/bin
cp /opt/comAlfresco/bin/apply_amps.sh /opt/alfresco/bin
cp /opt/comAlfresco/bin/clean_tomcat.sh /opt/alfresco/bin
cp -r /opt/comAlfresco/web-server/* /opt/alfresco/tomcat/
cp -r /etc/tomcat8/* /opt/alfresco/tomcat/conf

rm -rf /opt/alfresco/tomcat/webapps/share.war
rm -rf /opt/alfresco/tomcat/webapps/solr4.war
rm -rf /opt/alfresco/tomcat/conf/Catalina/localhost/share.xml
rm -rf /opt/alfresco/tomcat/shared/classes/alfresco/web-extension

#Um die Warnungen in der catalina.out zu verhindern
mkdir -p /usr/share/tomcat8/common/classes
mkdir -p /usr/share/tomcat8/server/classes
mkdir -p /usr/share/tomcat8/shared/classes


java -jar /opt/alfresco/bin/alfresco-mmt.jar install /opt/alfresco/amps/ /opt/alfresco/tomcat/webapps/alfresco.war -directory -nobackup

chown -R alfresco:alfresco /opt/alfresco‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍

Beim Starten der Anwendung über das unit-file erhalte ich dann als ersten Fehler ein Problem von log4.

Hier geht es um das alfresco.log, kurzer grep ergibt, die zuständige Cofnfig liegt im entpwacken alfresco.war verzeichnis

(/opt/alfresco/tomcat/webapps/alfresco/WEB-INF/classes/log4j.properties).

Dort habe ich eine absoluten Pfad eingetragen und die Meldung bleibt aus, das File wird erstellt.

(log4j.appender.File.File=/opt/alfresco/tomcat/logs/alfresco.log)

Nun hatte ich dort zahlreiche weitere Fehler, wobei die Anzahl der Zeilen ein wenig unschlüssig ist, da ja je Problem mehrere Zeilen ausgegeben werden.

Von Oben nach unten habe ich den nächsten Fehler auf die Datei alfresco.xml geschoben und diese gelöscht (enthält ohnehin nicht besonders viel Information).

Irgendwann habe ich mich gefragt, ob es keinen besseren weg zur Umgehung des log4 - Problems gibt.

Leider ohne zwischenzeitlich die Auswirkung des Löschens der alfresco.xml zu prüfen.

Ich habe also die alfresco.war unzippen, die Anpassung vorgenommen und über 

/opt/jdk1.8.0_131/bin/jar -cvf /opt/alfresco/tomcat/webapps/alfresco.war /opt/alfresco/tomcat/webapps/alfresco/*

Nun wieder eine war datei erstellt.

Hier ist zu beachten, das ich nach dem unzippen die ursprüngliche war Datei gelöscht hatte sowie nachträglich den Ordner alfresco gelöscht habe.

Ein Neustart der Anwednung zeigte nun einen absolut fehlerfreien Start.

So habe ich mich dem SOLR gewidmet.

Hier stellt sich die Bereitstellugn recht leicht dar, sodass dies schnell geschah.

Zur Prüfung, ob der alfresco-repo auch die SOLR-Schnittstelle nutzt, habe ich mir die Logfiles angesehen.

catalina.out hatte keinerlei Informationen diesbezüglich.

So viel mir nun endlich auf, das es zwar bezüglich der alfresco.log keinerleich Meldung mehr gab, diese jedoch nicht angelegt wurde -.-.

Kurzer Blick in den alfresco Ordner unter webapps, dort viel auf das nun nichtmehr alle Datei unter alfresco lagen, sondern dort ein weiter Ordner "alfresco" lag mit einem durch meinen jar erstelleten META-INF Ordner.

Letzteren gelöscht, alles von webapps/alfresco/alfresco nach webapps/alfresco, dann nur noch webapps/alfresco/alfresco löschen.

Zack wieder jede menge Fehler (Anhang rerun1).

Warum die App auf die Idee kommt, einen mysql-connector zu laden verstehe ich nicht.

Nicht nur habe ich soweit mir bewusst alles so eingestellt, dass eigentlich postgres verwendet werden sollte, noch kann ich einen einzelnen (nicht kommentierten) verweis auf "org.gjt.mm.mysql.Driver" finden.

Schiebe ich die alfresco.xml wieder an Ort und Stelle, verschwinden die Fehler bezüglich der falschen DB-Schnittstelle.

Nun wird über die zurückgebrachte Datei gemeckert (rerun2).

Vielleicht kann mir hier nochmal jemand unter die Arme greifen,

Vielen Dank.

skip_250
Member II

Re: Alfresco Installation auf Ubuntu 16.04 Integration in bestehenden Tomcat Und PostgreSQL

So ich glaube ich habs.

Zumindest der Großteil sollte geschafft sein.

Folgende Schritte sind auszuführen, etwaige Dateien hänge ich an.

Voraussetzung sind die beiden Packete alfresco-community-distribution-* und der search-service unter temp.

Namen müssen ggf. angepasst werden, Pfade sowie Passwörter ebenfalls.

#>2017-07-10
#>prerequisits

     apt-get install -y postgresql-client postgresql-9.5 unzip ghostscript imagemagick apache2 apache2-utils gcc make openjdk-8-jdk-headless openjdk-8-jre-headless libgs-dev libjpeg62 libpng3
     apt-get install -y libice6 libsm6 libxt6 libxrender1 libfontconfig1 libcups2 tomcat8 ttf-mscorefonts-installer fonts-noto libglu1-mesa libxinerama1

     adduser --system --disabled-login --disabled-password --group alfresco
     
     #>make sure to stop tomcat8 for the following steps
     systemctl stop tomcat8
     #>disable default service as we will run our instances
     systemctl disable tomcat8
     
     #>PSQL stuff
     #>change or add the following line to psotgresql pg_hba.conf
     #host    all             all             127.0.0.1/32            trust
     
     su postgres
     psql
     
     CREATE DATABASE alfresco
     WITH OWNER postgres
     ENCODING = 'UTF8'
     TABLESPACE = pg_default
     TEMPLATE template0;
     
     CREATE ROLE alfresco LOGIN
     PASSWORD 'alfresco'
     NOSUPERUSER INHERIT NOCREATEDB NOCREATEROLE;
     
     GRANT ALL ON DATABASE alfresco TO public;
     GRANT ALL ON DATABASE alfresco TO postgres;
     GRANT ALL ON DATABASE alfresco TO alfresco;
     
     \q
     exit
     
     #restart to make changes live
     systemctl restart postgresql
     
     
##################################################################################################################
#>Prepare the instances for repo and share, libreoffice stuff and solr6
#>Instance 1 (repo)

     cd /opt
     unzip /tmp/alfresco-community-distribution-201704.zip
     mv alfresco-community-distribution-201704 comAlfresco
     
     mkdir -p /opt/alfresco/alf_data
     mkdir /opt/alfresco/bin
     mkdir /opt/alfresco/run
     mkdir -p /opt/alfresco/modules/platform
     mkdir -p /opt/alfresco/tomcat/shared/lib
     mkdir /opt/alfresco/tomcat/bin
     mkdir /opt/alfresco/tomcat/logs
     
     cp -r /opt/comAlfresco/amps /opt/alfresco
     cp /opt/comAlfresco/bin/alfresco-mmt.jar /opt/alfresco/bin
     cp /opt/comAlfresco/bin/apply_amps.sh /opt/alfresco/bin
     cp /opt/comAlfresco/bin/clean_tomcat.sh /opt/alfresco/bin
     cp -r /opt/comAlfresco/alf_data/keystore/ /opt/alfresco/alf_data/
     cp -r /opt/comAlfresco/web-server/* /opt/alfresco/tomcat/
     #[...]/web-server/lib contains postgresl jdbc, this should be working when copieing to /opt/alfresco/tomcat/
     #which is CATALINA_BASE for this instance
     #however tomcat won´t find the jar file
     #thus moving it to /usr/share/tomcat8/lib which ist CATALINA_HOME
     #works fine
     cp -r /etc/tomcat8/* /opt/alfresco/tomcat/conf
     
     rm -rf /opt/alfresco/tomcat/webapps/share.war
     rm -rf /opt/alfresco/tomcat/webapps/solr4.war
     rm -rf /opt/alfresco/tomcat/conf/Catalina/localhost/share.xml
     rm -rf /opt/alfresco/tomcat/shared/classes/alfresco/web-extension
     
     mkdir -p /usr/share/tomcat8/common/classes
     mkdir -p /usr/share/tomcat8/server/classes
     mkdir -p /usr/share/tomcat8/shared/classes
     
     vi /opt/alfresco/tomcat/bin/setenv.sh
          #add the following lines
          JAVA_OPTS="$JAVA_OPTS -Dalfresco.home=/opt/alfresco"
          JAVA_OPTS="$JAVA_OPTS -Dcom.sun.management.jmxremote"
          JAVA_OPTS="$JAVA_OPTS -XX:ReservedCodeCacheSize=128m"
          JAVA_OPTS="$JAVAOPTS -Xms1024M -Xmx2048M"
          export JAVA_OPTS

     chmod u+x /opt/alfresco/tomcat/bin/setenv.sh
     
     cp /opt/comAlfresco/web-server/lib/postgresql-9.4.1211.jre7.jar /var/lib/tomcat8/lib/
     #>/var/lib/tomcat8/lib is $CATALINA_HOME/lib making the PSQL-JDBC-Connector available to all instances
     
     vi /opt/alfresco/tomcat/conf/catalina.properties
     #common.loader="${catalina.home}/lib","${catalina.home}/lib/*.jar","${catalina.home}/common/classes","${catalina.home}/common/*.jar"
     #server.loader=${catalina.home}/server/classes,${catalina.home}/server/*.jar
     #shared.loader=${catalina.base}/shared/classes,${catalina.base}/shared/*.jar,${catalina.base}/lib
     
     cp /opt/alfresco/tomcat/shared/classes/alfresco-global.properties.sample /opt/alfresco/tomcat/shared/classes/alfresco-global.properties
     vi /opt/alfresco/tomcat/shared/classes/alfresco-global.properties
     
     java -jar /opt/alfresco/bin/alfresco-mmt.jar install /opt/alfresco/amps/ /opt/alfresco/tomcat/webapps/alfresco.war -directory -nobackup
     
     vi /opt/alfresco/tomcat/bin/alfresco-repo.service
     #>create service file as in doku
     
     chown -R alfresco:alfresco /opt/alfresco
     cp /opt/alfresco/tomcat/bin/alfresco-repo.service /etc/systemd/system
     systemctl enable alfresco-repo.service
     systemctl daemon-reload
     
     #run and check logs for errors
     #>fix log error after first start
     vi /opt/alfresco/tomcat/webapps/alfresco/WEB-INF/classes/log4j.properties
     
     #>also see alfresco-global.properties as attached
     #>check server.xml as attached
     #>with client.auth=want we might need to create /home/alfresco/.keystore

############################################################################################################################################################################     
#>Instance 2 (share)

     mkdir -p /opt/alfresco-share/tomcat/conf
     mkdir /opt/alfresco-share/tomcat/webapps
     mkdir /opt/alfresco-share/tomcat/logs
     mkdir /opt/alfresco-share/tomcat/work
     mkdir /opt/alfresco-share/tomcat/bin
     mkdir /opt/alfresco-share/run
     
     cp -r /etc/tomcat8/* /opt/alfresco-share/tomcat/conf/
     
     #second instance of tomcat so we need to make sure to use different ports
     #lets jsut put 1 as prefix so eg 8080 will become 18080
     
     vi /opt/alfresco-share/tomcat/conf/server.xml
     
     cp /opt/comAlfresco/web-server/webapps/share.war /opt/alfresco-share/tomcat/webapps/
     
     vi /opt/alfresco-share/tomcat/conf/catalina.properties
     #>make this file the same as for the repo
     #common.loader="${catalina.home}/lib","${catalina.home}/lib/*.jar","${catalina.home}/common/classes","${catalina.home}/common/*.jar"
     #server.loader=${catalina.home}/server/classes,${catalina.home}/server/*.jar
     #shared.loader=${catalina.base}/shared/classes,${catalina.base}/shared/*.jar,${catalina.base}/lib
     
     #>create setenv for share instance
     vi /opt/alfresco-share/tomcat/bin/setenv.sh
          #add the following lines
          #JAVA_OPTS="$JAVA_OPTS -Dalfresco.home=/opt/alfresco"
          JAVA_OPTS="$JAVA_OPTS -Dcom.sun.management.jmxremote"
          JAVA_OPTS="$JAVA_OPTS -XX:ReservedCodeCacheSize=128m"
          JAVA_OPTS="$JAVAOPTS -Xms1024M -Xmx2048M"
          export JAVA_OPTS
          
     chmod +x /opt/alfresco-share/tomcat/bin/setenv.sh
     
     #>create unit file
     vi /opt/alfresco-share/tomcat/bin/alfresco-share.service
     
     chown -R alfresco:alfresco /opt/alfresco-share
     
     cp /opt/alfresco-share/tomcat/bin/alfresco-share.service /etc/systemd/system
     systemctl enable alfresco-share.service
     systemctl daemon-reload
     systemctl start alfresco-share
     
     #>watch logs for errors
     #>fix log error after first start with serice stopped
     vi /opt/alfresco-share/tomcat/webapps/share/WEB-INF/classes/log4j.properties
     
     
#> Solr6

     mkdir /opt/solr6
     cd /opt/solr6
     unzip /tmp/alfresco-search-services-1.0.0.zip
     mv alfresco-search-services/* .
     rm -r alfresco-search-services/
     #>start with
     #/opt/solr6/solr/bin/solr start -force -m 2048M -a -Dcreate.alfresco.defaults=alfresco,archive
     #>once alfresco-repo and alfresco-share are running
     
#>LibreOffice

     mkdir /opt/libreoffice
     cd /opt/libreoffice
     wget http://download.documentfoundation.org/libreoffice/stable/5.2.7/deb/x86_64/LibreOffice_5.2.7_Linux_x86-64_deb.tar.gz
     tar xvf LibreOffice_5.2.7_Linux_x86-64_deb.tar.gz
     mv LibreOffice_5.2.7.2_Linux_x86-64_deb/* .
     rm -r LibreOffice_5.2.7.2_Linux_x86-64_deb/
     rm LibreOffice_5.2.7_Linux_x86-64_deb.tar.gz
     rm /opt/libreoffice/DEBS/*menus*
     rm /opt/libreoffice/DEBS/*integration*
     dpkg -i /opt/libreoffice/DEBS/*.deb
     rm -r /opt/libreoffice
     ln -s /opt/libreoffice5.2 /opt/libreoffice
     #>start with
     #/bin/su -s /bin/bash alfresco -c "/opt/libreoffice/program/soffice.bin \"--accept=socket,host=localhost,port=8100;urp;StarOffice.ServiceManager\" \"-env:UserInstallation=file:///opt/alfresco/alf_data/oouser\" --nologo --headless --nofirststartwizard --norestore --nodefault &" 2>/dev/null
     ‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍

Mit den Konfigurationsdateien im Anhang kann ich sauber starten.

Es werden Warnungen geworfen, die sind aber wohl wegen des SSLs, werden wir wohl nicht verwenden.

Auf die Nutzung von Nginx oder Apache als Proxy habe ich bis jetzt verzichtet, dass kommt dann sobald alles läuft.

Beim Aufruf des Servers über Port 8080 komme ich nun direkt zu 8080/alfresco.

Eigentlich hatte ich erwartet hier irgendwas zu sehen, eine art Landingpage oder gar Login.

Beim Clicken auf "Alfresco Share" werde ich dann wie erwartet zu 18080/share/page geleitet.

Hier ist auch die Login-Page, für die ich jedoch werde User noch Passwort kenne, das ist dann der nächste Schritt.

Über Feedback zu meiner Config würde ich mich freuen, sofern Axel Faust oder ‌ noch mal Zeit hätten.

Vielen Dank.

afaust
Master

Re: Alfresco Installation auf Ubuntu 16.04 Integration in bestehenden Tomcat Und PostgreSQL

Seit Alfresco 5.0 ist unter /alfresco nur noch eine technische Start- bzw. Indexseite zu finden. Die alte Oberfläche, die früher unter dieser Adresse erreichbar war, wurde endlich nach langer Zeit als EoL bzw. "Deprecated" entfernt. Nun ist /share die einzige Standardoberfläche. Ich stelle in meinen Apache immer eine automatische URL-Weiterleitung/-Umschreibung ein, d.h. wenn jemand auf dms.domain.de zugreift wird automatisch auf dms.domain.de/share/ weitergeleitet. Anwender müssen so nur den DNS Namen kennen und kommen nie "aus Versehen" auf /alfresco.

Der Standardnutzer für Alfresco (Share) ist admin (Passwort: admin).

Für die Log4J Einstellungen empfehle ich diese minimal zu halten. Im Repository kann man unter tomcat/shared/classes/alfresco/extension/custom-log4j.properties nur die Anpassungen zum Standard hinterlegen und sich auf das wesentliche konzentrieren: Die Einstellung des rootLogger und die Konfiguration der Appender. Leider kann Share keine custom-log4j.properties nutzen, daher muss man die Datei in der ausgepackten Webanwendung modifizieren. Da mich das schon immer gestört hat, habe ich mit einem Modul hier Feature-Parität hergestellt.

Im Übrigen empfehle ich immer den Ausschluss des "Console" Appender. Ich mag überhaupt nicht das doppelte Logging der gleichen Meldungen. Für den "File" Appender kann man sich die Angabe eines expliziten Pfades sparen - es geht auch mit ${catalina.base}/logs/alfresco.log bzw ${catalina.base}/logs/share.log (ebenso kann man in den log4j-solr.properties vorgehen).

Bei Verwendung von systemd ist die Nutzung der setenv.sh überflüssig und potentiell verwirrend. Lieber sollte alle Konfiguration der Java-Parameter an einer Stelle, in der systemd-Unit liegen.

In der Tomcat server.xml kann man sich den AJP Connector i.d.R. sparen. Dieser wird maximal von einem vorgelagerten Proxy verwendet und ist auch dann nicht unbedingt notwendig, z.B. kann Apache mit mod_proxy auch ganz normal HTTP statt AJP verwenden.

Wenn ein Proxy verwendet wird und der Server über iptables oder eine sonstige Firewall abgesichert wird, kann man sich auch den HTTPS-Connector sparen. Das Repository und SOLR können auch unverschlüsselt über HTTP konfigurieren, was CPU-technisch günstiger ist. Wenn man über einen Proxy HTTPS anbietet, kann trotztdem ein zweiter Connector notwendig sein (HTTP/AJP) dem man per Konfiguration mitteilt, dass er als sicher betrachtet wird, auch wenn er selber kein SSL unterstützt (SSL-Terminierung im Proxy).