Webserver

Um die Alvine-Platform zusammen mit Ihrem bevorzugtem Webserver betreiben zu können, müssen einige Konfigurationen vorgenommen werden. Diese Beschreibung bezieht sich im wesentlichen auf die Konfiguration von Nginx. Für andere Produkte sind die Anleitungen der betreffenden Server heranzuziehen.

Zentraler Dispatcher

Alle nichtstatischen Inhalte werden von der zentralen Datei /opt/alvine-platform/dispatcher/run.php entgegengenommen und an den Dispatcher zur weiteren Verarbeitung weitergegeben.

Damit der Webserver diese Datei findet, muss diese in dem entsprechenden Abschnitt der Webserverkonfiguration hinterlegt werden.

fastcgi_param   SCRIPT_FILENAME         /opt/alvine-platform/dispatcher/run.php;
fastcgi_param   SCRIPT_NAME             run.php;

Der Dispatcher benötigt außerdem die Konfigurationsdatei system.ini, in der diverse Einstellungen und Pfade zur Anwendung definiert sind. Damit der Dispatcher diese Datei findet, muss dem Webserver der Schlüssel ALVINE_PLATFORM_CONFIG definiert werden.

fastcgi_param   ALVINE_PLATFORM_CONFIG  /etc/alvine-platform/;

Die Definition des Skripts erfolgt über die Konfiguration SCRIPT_FILENAME und SCRIPT_NAME.

fastcgi_param   SCRIPT_FILENAME         /opt/alvine-platform/dispatcher/run.php;
fastcgi_param   SCRIPT_NAME             run.php;
Weitere Informationen zur Startphase sind hier zu finden.

Dateistruktur

Die Hauptverzeichnisse bei einer Standardinstallation sind /opt/alvine-platform/ für Programmdateien, /var/alvine-platform/ für Projektdateien, /srv/www für Webinhalte und /etc/alvine-platform für Konfigurationsdateien. Die komplette Struktur ist auf der Seite Verzeichnisstruktur nachzulesen.

Wichtig

Zur Sicherheit sollten die Programmverzeichnisse schreibgeschützt sein.

Damit der Webserver die vom Benutzer angeforderten Resourcen ausliefern kann, müssen in der Webserverkonfiguration verschiedene Routen für unterschiedliche Inhalte angelegt werden.

Statische Inhalte

Das Webverzeichnis der Installation liegt unter /srv/www und die meisten über das Web abrufbaren Resourcen liegen in diesem Verzeichnis. Dieses Verzeichnis wird bei einem Update von Alvine nicht aktualsiert.

Aussnahme sind statische Programmresoursen (zum Beispiel js, css, jpg, html, ...) die über den Pfad /app aufgerufen werden. Diese liegen im Verzeichnis /opt/alvine-platform/web. Die Resource /app/image.gif wird also zu /opt/alvine-platform/web/image.gif aufgelöst.

Wichtig

Alle statischen Resourcen wie HTML-Dateien (.html, .htm), Scripte (.js), Style-Dateien (.css), Bilddateien (.gif, .jpeg, .jpg, .tiff, ...) und Konfigurationen und Datendateien (.json, .xml, .xsd, ...) die nicht vorhanden sind, dürfen nicht an Alvine übergeben werden, sondern müssen ein 404 liefern.

Es bietet sich an, für die unterschiedlichen Resoucentypen verschiedene Cache-Strategien zu konfiguriert.

Umleitungen

Folgende statische Umleitungen müssen für einen ordnungsgemäßen Betrieb eingerichtet werden:

Hinweis

Die Umleitungen dürfen nicht greifen, wenn Parameter übergeben werden. /alvine/?x=y darf nicht weitergleitet werden.

URL Ziel-URL
/admin /admin/
/alvine /admin/
/alvine/ /admin/

Konfigurationsvariablen

Über folgende Umgebungsvariable muss der Pfad auf die können die einzelnen Pfade der Anwendung an Alvine übergeben werden. Dies ist insbesondere wichtig, wenn Alvine nicht in der Standardstruktur installiert wurde.

Umgebungsvariable Beispiel
ALVINE_PLATFORM_CONFIG /etc/alvine-platform/

Ein Beispiel einer Konfiguration für nginx

fastcgi_param   SCRIPT_FILENAME         /opt/alvine-platform/dispatcher/run.php;
fastcgi_param   SCRIPT_NAME             run.php;
fastcgi_param   QUERY_STRING            $query_string;
fastcgi_param   REQUEST_METHOD          $request_method;
fastcgi_param   CONTENT_TYPE            $content_type;
fastcgi_param   CONTENT_LENGTH          $content_length;
fastcgi_param   PATH_INFO               $request_uri;
fastcgi_param   PATH_TRANSLATED         /opt/alvine-platform/dispatcher/$fastcgi_path_info;
fastcgi_param   REQUEST_URI             $request_uri;
fastcgi_param   DOCUMENT_URI            $document_uri;
fastcgi_param   DOCUMENT_ROOT           /opt/alvine-platform/dispatcher/;
fastcgi_param   SERVER_PROTOCOL         $server_protocol;
fastcgi_param   GATEWAY_INTERFACE       CGI/1.1;
fastcgi_param   SERVER_SOFTWARE         nginx/$nginx_version;
fastcgi_param   REMOTE_ADDR             $remote_addr;
fastcgi_param   REMOTE_PORT             $remote_port;
fastcgi_param   SERVER_ADDR             $server_addr;
fastcgi_param   SERVER_PORT             $server_port;
fastcgi_param   SERVER_NAME             $host;
fastcgi_param   X_REAL_IP               $remote_addr;
fastcgi_param   X_FORWARDED_FOR         $proxy_add_x_forwarded_for;
fastcgi_param   HTTPS                   $https;
# PHP only, required if PHP was built with --enable-force-cgi-redirect
fastcgi_param   REDIRECT_STATUS         200;
fastcgi_pass   unix:/run/php/php7.2-fpm.sock;

Beispielrouting

In der folgenden Tabelle sind einige Beispiele für URLs und deren Mapping aufgelistet:

URL Resource oder Aktion Bemerkung
/ /opt/alvine-platform/dispatcher/run.php
/admin /admin/ Redirect Admin-URL ohne Slash
/alvine /admin/ Alte Alvine-URL ohne Parameter
/alvine/ /admin/ Alte Alvine-URL ohne Parameter
/alvine/gfx/image.gif /srv/www/alvine/gfx/image.gif
/admin/ /opt/alvine-platform/dispatcher/run.php
/de/home /opt/alvine-platform/dispatcher/run.php /de/home muss in PATH_INFO stehen
/app/image.gif /opt/alvine-platform/web/image.gif
/css/main.css /srv/www/css/main.css

Weitere Informationen