Integration der Rails-Vorschau ins GUI

Die Anleitungen in diesem Abschnitt beziehen sich auf Infopark CMS Fiona ab 6.7.3. Anleitungen für frühere Versionen finden Sie in den entsprechenden Handbüchern (PDF).

Voraussetzungen

Um in der Vorschau des Redaktionssystems die von Ihrer Rails-Anwendung erzeugten Seiten zu sehen, muss zunächst der Infopark Rails Connector installiert worden sein. Hierdurch erhält Ihre Anwendung unter anderem einen CmsController, der für die Anzeige der Vorschau zuständig ist. Ferner benötigen Sie einen Webserver, der als Reverse-Proxy fungieren kann (beispielsweise ein Apache-HTTP-Server).

Die folgenden Schritte zeigen exemplarisch, wie das GUI, die Rails-Applikation und der Apache-Server konfiguriert werden, um die Vorschau einzubinden.

Das GUI konfigurieren

Damit das GUI Vorschau-URLs erzeugt, die zu dem Routing des PageControllers der Rails-Applikation passen, muss in der Datei WEB-INF/gui.xml das Property railsMapping des Beans systemInfo entsprechend gesetzt werden:

<property name="railsMapping" value="/:id/:name" />

Nach Änderungen an der Konfiguration des GUIs deployen Sie es bitte folgendermaßen und starten anschließend das CMS neu:

$ cd FIONA/instance/Instanzname
$ ./bin/rc.npsd deploy GUI
$ ./bin/rc.npsd restart

Die Rails-Anwendung konfigurieren

Erzeugen Sie das Environment preview, indem Sie die Datei config/environments/production.rb nach config/environments/preview.rb kopieren. Damit der Rails Connector in diesem Environment Arbeitsversionen darstellt, fügen Sie die folgende Zeile hinzu:

RailsConnector::Configuration.mode = "editor"

Ergänzen Sie ferner einen Abschnitt preview in ihrer Datenbankkonfiguration und tragen Sie dort die Datenbank ein, die sie für den Vorschaubetrieb verwenden möchten.

Darüber hinaus ist es erforderlich, dass der Webserver den Instanznamen dem Rails-Application-Server übergibt. Wenn Sie den Apache Webserver mit Phusion Passenger einsetzen, geben Sie den Instanznamen als PassengerBaseURI in der Konfiguration des Webservers an:

PassengerBaseURI /Instanzname

Den Apache-Webserver konfigurieren

Damit aus Sicht des Webbrowsers die Kommunikation mit dem GUI und der Rails-Applikation nicht als XSS erscheint, benötigen Sie einen Webserver wie den Apache, der als Proxy-Server zwischen Client und GUI/Rails steht. An welchen der beiden Server ein Request vom Browser gerichtet ist, erkennt der Proxy am URL-Präfix.

Bitte ergänzen Sie die Apache-Konfigurationsdatei httpd.conf um die folgenden Einträge:

LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so
# ..
ProxyRequests Off
ProxyVia On
# Anfragen an das GUI
ProxyPass /Instanzname/NPS http://localhost:8080/Instanzname/NPS
ProxyPassReverse /Instanzname/NPS http://localhost:8080/Instanzname/NPS

Stellen Sie bitte sicher, dass die Proxy-Module wie im obigen Beispiel eingebunden sind. Platzieren Sie die Konfigurationseinträge außerhalb eines Containers, damit die Einstellungen serverweit gelten. Damit die Änderungen wirksam werden, starten Sie bitte den Apache-Server neu. Die GUI-URL ändert sich dadurch zu http://gui-host:apache-port/<em>Instanzname</em>/NPS. Insbesondere ist die Vorschau nicht mehr auf Port 8080 (Standardeinstellung) zu erreichen.