Routen

Um die Alvine-Platform mit Ihrem Webserver betreiben zu können, müssen im Webserver einige Routen angelegt werden. Die Hauptverzeichnisse der Installation sind /opt/alvine-platform/ für Programmdateien und /var/alvine-platform/ für Projektdateien.

Statische Inhalte

Das Webverzeichnis der Installation liegt unter /srv/www und die meisten über das Web abrufbaren Resourcen liegen in diesem Verzeichnis.

Aussnahme sind statische Resoursen (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 unterschidlichen Resoucentypen verschiedene Cache-Strategien zu konfiguriert.

Umleitungen

Folgende statische Umleitungen müssen 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/

Anwendung

Der Haupteinstiegspunkt für Alvine ist die Datei run-production.php im Verzeichnis /opt/alvine-platform/. Alle dynamischen Request deren Resource nicht statisch vorliegt und die über keine spezifische Endung verfügen oder durch eine andere Regel definiert wurden, müssen an diese Datei weitergereicht werden. Dabei sind der Pfad und die Parameter der aufgerufenen URL in PATH_INFO mit zu übergeben.

In nginx kann dies über fastcgi_param erfolgen

fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_param PATH_INFO $fastcgi_path_info;

In Apache kann das Verhalten über AcceptPathInfo erreicht werden. Siehe hierzu auch die Dokumentation auf der Apache-Webseite.

AcceptPathInfo On
RewriteRule (.*) run-development.php [QSA,L,E=PATH_INFO:/$1]

Konfiguration der Pfade

Über folgende Umgebungsvariablen 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_APPLICATION_WEBROOT /srv/www/
ALVINE_APPLICATION_BASE_PATH /opt/alvine-platform/
ALVINE_APPLICATION_DATA_PATH /var/alvine-platform/
ALVINE_APPLICATION_VENDOR_PATH /opt/vendor/
ALVINE_APPLICATION_LOG_PATH /var/log/alvine-platform/
ALVINE_APPLICATION_CONFIG_PATH /etc/alvine-platform/
ALVINE_APPLICATION_CUSTOMISATION_PATH /var/alvine-platform/

In nginx erfolgt dies über fastcgi_param.

fastcgi_param ALVINE_APPLICATION_WEBROOT /srv/www/;
fastcgi_param ALVINE_APPLICATION_BASE_PATH /opt/alvine-platform/;
fastcgi_param ALVINE_APPLICATION_DATA_PATH /var/alvine-platform/;
fastcgi_param ALVINE_APPLICATION_VENDOR_PATH /opt/vendor/;
fastcgi_param ALVINE_APPLICATION_LOG_PATH /opt/vendor/;
fastcgi_param ALVINE_APPLICATION_CONFIG_PATH /opt/vendor/;
fastcgi_param ALVINE_APPLICATION_CUSTOMISATION_PATH /var/alvine-platform/;

In Apache kann die Konfiguration über SetEnv erfolgen.

SetEnv ALVINE_APPLICATION_WEBROOT /srv/www/;
SetEnv ALVINE_APPLICATION_BASE_PATH /opt/alvine-platform/;
SetEnv ALVINE_APPLICATION_DATA_PATH /var/alvine-platform/;
SetEnv ALVINE_APPLICATION_VENDOR_PATH /opt/vendor/;
SetEnv ALVINE_APPLICATION_LOG_PATH /var/log/alvine-platform;
SetEnv ALVINE_APPLICATION_CONFIG_PATH /etc/alvine-platform/;
SetEnv ALVINE_APPLICATION_CUSTOMISATION_PATH /var/alvine-platform/;

Beispiel

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

URL Resource oder Aktion Bemerkung
/ /opt/alvine-platform/run-production.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/run-production.php
/de/home /opt/alvine-platform/run-production.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

Kommentare