goebel
I'm new here

Apache oder Nginx + PHP + Tomcat lädt preview herunter

Hallo,

ich hab bei einer Neuinstallation von Firstspirit wegen wechsels (die erste Installation ist recht alt, und wurde von einem vorgänger aufgesetzt) ein Problem mit der Preview im ContentCreator und im SiteArchitect.

Bei der Vorschau der Seite wird mir die Seite immer als Download angeboten.

Ich hab es sowohl mit Nginx und dem ableiten der Apache anleitung, als auch später dann mit Apache selber probiert. Beide machen bei mir das gleiche Problem.

Ich hab mich beim einrichten an die Konfigurations Anleitung aus der FS Doku gehalten. Leider ändert das nichts. Muss ich nachdem ich den Apache eingerichtet habe noch einstellungen am Firstspirit an sich vornehmen? Der Webserver wird nach der Konfig vom FS überall per Tomcat ausgeliefert. Ich hab aber auch nirgends eine Konfig gefunden wo ich die Preview auf Apache umstellen hätte können.

Aufgefallen ist mir noch, das in der Konfiguration überall "preview_cache" steht, der einzige Ordner in dem die Datien liegen und die URL auch, bei mir aber nur "preview" (ohne _cache) im Ordner Namen haben.

Die Komplette Instanz ist bei mir Gedockert (also FS, Apache + PHP, Nginx, PHP-FPM, Traefic) jeweils in einem eigenen Docker Container.

Hier die Config vom Apache.

<VirtualHost *:80>

ServerName cms

ServerAlias cms

LogLevel warn

LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" \"%{COOKIE}i\" %{BALANCER_WORKER_ROUTE}e %D" route_and_requesttime

CustomLog /var/log/apache2/fs5.access.log route_and_requesttime

ErrorLog /var/log/apache2/fs5.error.log

ServerSignature off

UseCanonicalName off

AddDefaultCharset off

ProxyRequests off

RewriteEngine on

DocumentRoot /var/www/html

DirectoryIndex index.html index.jsp index.php

<Location />

  Require all granted

</Location>

# Protect configuration files.

<LocationMatch "\.htaccess|/WEB-INF/">

  Require all denied

</LocationMatch>

# Protect FirstSpirit previews, to be accessible

# from Servlet-Engine only, not from Web-Browser.

<LocationMatch preview_cache>

  # All LAN addresses where Servlet-Engine is connecting from:

  Require local

#  Require ip 10.11.12.13      # EXAMPLE

#  Require ip 172.111.12.13    # EXAMPLE

</LocationMatch>

# status monitor for mod_proxy and balancer

<Location /balancer-manager>

  SetHandler balancer-manager

  # allow access from administation network only

  Require ip 192.168.1.0/24

</Location>

<Proxy balancer://fsajp>

  BalancerMember ajp://tomcat:8009 retry=10 connectiontimeout=10 ping=5 ttl=1800 timeout=1200

</Proxy>

RewriteCond %{REQUEST_URI} !^/balancer-manager

RewriteCond %{REQUEST_URI} !^/manager/

RewriteCond %{REQUEST_URI} !^/server-status

RewriteCond %{REQUEST_URI} !^/fs5preview(_[0-9]+)?/preview_cache

RewriteCond %{REQUEST_URI} !^/fs5webedit(_[0-9]+)?/preview_cache

RewriteRule ^/(.*) balancer://fsajp/$1 [proxy,last]

</VirtualHost>

Wenn jemand ein funktionierendes Beispiel für Nginx hat, gerne her damit Smiley Happy Würde Nginx vorziehen. (Einfach weil ich da deutlich mehr ahnung habe als von Apache. Bin "damals" Privat auf Nginx gewechselt, als es mit SNI bei Apache noch nicht so problemlos möglich war mehrere unterschiedliche Zertifikate zu verwalten bei einer IP)

0 Kudos
2 Replies
felix_reinhold
Returning Responder

Hi Tobias,

hast du schon die Konfigurationen in der fs-server.conf anhand folgender Doku vorgenommen?

Dokumentation für Administratoren - Bereich: Preview

Müsste dann sowas sein:

preview.internalDelivery=*

preview.externalDeliveryURL=http://dein-apache-server.de

preview.externalDelivery=php

Viele Grüße

Felix

0 Kudos

Hi,

vorab danke für die Antwort.

Ich hatte die Einstellungen gesetzt. Habe damit aber nochmal gespielt. Jetzt wird php offensichtlich korrekt abgearbeitet. Allerdings hatte sich jetzt ein neues Problem ergeben.

Das lag aber an der neueren Tomcat Version, die als UMASK per Default scheinbar auf 0027 statt 0022 setzt. Das ließ sich aber recht einfach beheben.

Per Apache funktioniert scheinbar alles richtig nun. Nginx läuft auch, dort muss ich nur noch einen Workaround finden für das /s=****/ in der URL beim ContentCreator. Zur not bleib ich dann halt doch auf Apache, aber das sollte sich ja irgendwie lösen lassen Smiley Happy

Gruß,

Tobias

0 Kudos