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.php
im Verzeichnis /opt/alvine-platform/dispatcher
. 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.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/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 |