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 |