Basissystem Einrichten¶
Konfiguration¶
Alle Konfigurationsdaten des Colibri Basissystems befinden sich im Konfigurationsverzeichnis (config/). Jeder dieser Konfigurationsdateien ist mithilfe von DocBlock Kommentaren dokumentiert und sollte als Deine erste Anflaufstelle zum Gesammtüberblick des Basissystems dienen.
Verzeichnisschutz¶
Eventuell brauchen gewisse Verzeichnisse besondere Rechte. Nachfolgend findest Du die dazugehörigen Kommandos um die etwaigen Rechte korrekt zu vergeben:
sudo chgrp -R www-data storage/ bootstrap/cache/
sudo chmod -R ug+rwx storage/ bootstrap/cache/
Webserver¶
Lokaler PHP-Server¶
Falls Du bereits PHP-7 auf Deinem Rechner installiert hast, kannst Du mithilfe
des serve
Artisan Kommandos, einen lokalen Entwicklungsserver starten.
Dabei versucht PHP das Basissystem unter der URL: http://localhost:8000 abzubilden.
Eine Datenbank wird Dir dabei jedoch nicht zur Verfügung gestellt, lediglich
Dein PHP steht zur Verfügung:
php artisan serve
Eine weit aus fortgeschrittenere Methode um eine Entwicklungsumgebung einzurichten, findest Du unter: Entwicklungsumgebung. Dieses Artisan Kommando sollte wirklich nur gebraucht werden um bspw. kurz einen Einblick auf die Startseite zu erhaschen, nicht jedoch um professionelle Webanwendungen zu kreiieren.
Pretty URL’s¶
Apache¶
Mithilfe der public/.htaccess Dateien werden alle Anfragen an den Front-Controller weitergeleitet, ohne dass Du die index.php Datei angeben musst. Damit diese Weiterleitung korrekt funktioniert musst Du jedoch gewährleisten dass das mod_rewrite Modules Deines Apache Webserver aktiviert wurde, ohne dieses Modul werden keine .htaccess Dateien von Deinem Webserver akzeptiert.
Falls die reguläre Lösung in public/.htaccess bei Dir nicht funktioniert kannst Du es mit nachfolgender Alternative versuchen:
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
Nginx¶
Wenn Du hingegegen einen Nginx Webserver verwendest, kannst du folgende Konfiguration setzen, damit alle Anfragen korrekt an den Front-Controller weitergeleitet werden können:
location / {
try_files $uri $uri/ /index.php?$query_string;
}
Anwendungsschlüssel¶
Der Anwendungsschlüssel oder auch Application-Key genannt, ist eine willküllriche Zeichenkette, welcher zum verschlüsseln von Sessiondaten vewendet wird. Normalerweise handelt es sich um eine Zeichenkette (string) bestehend aus 32-Zeichen.
Bei der Installtion von Colibri sollte automatisch ein Anwendungsschlüssel
generiert worden sein. Diesen Schlüssel findest Du in Deiner .env Datei
(APP_KEY
). Solltest Du einmal keinen Schlüssel vorfinden oder falls Du einen
neuen Schlüssel generieren möchtest, kannst Du mithilfe des key:generate
Artisan
Kommando’s tun:
php artisan key:generate
Warnung
Sollte der Anwendungsschlüssel aus irgendwelchen Gründen fehlen, werden die Sessiondaten Deiner Benutzer nicht verschlüsselt und sind somit nicht sicher!
DotEnv-Konfigurationen¶
Oftmals möchte man Konfigurationen an der aktuellen Umgebung des Basissystems anpassen. So ist es bspw. möglich, dass Du ein komplett anderes Cache-System innerhalb der Entwickung verwenden möchtest als Du bspw. für die Produktion einsetzt.
Colibri greift dabei auf die DotEnv PHP Bibliothek von Lance Lucas zu, um solche umgebungsspezifische Variablen in einer .env Datei auszulagern. Bei einer frischen Colibri Installation wird die .env.dist Datei automatisch kopiert, umbenannt in .env und mit einem Schlüssel versehen; all diese Schritte sind dabei innerhalb der composer.json Datei beschrieben.
Da Du innerhalb der .env Datei Deine Zugangsdaten und geheimen Konfigurationen tätigst, solltest Du niemals die .env Datei im Versionskontrollsystem aufnehmen, um Deine Daten zu schützen. Colibri übernimmt diese Aufgabe bereits für Dich, indem der entsprechende Eintrag in der .gitignore Datei hinterlegt wurde.
Falls Du zusammen mit einem Team arbeitest, wird im Regelfall die .env.dist Datei als Orientierungspunkt für Teammitglieder verwendet. Dabei können bspw. Platzhalterwerte eingesetzt werden, um anderen einen Hinweis zu geben wie sie die Konfiguration zu definieren haben.
Eine weitere DotEnv Datei welche von Colibri verwendet wird ist bspw. die
.env.testing. Diese Datei überschreibt die .env Datei beim Einsatz der
Testumgebung (PHPUnit) oder beim Ausführen von Artisan Kommandos mit der
--env="testing"
Option.
Hinweis
Jede Umgebungsvariable innerhalb der .env Datei kann von externen Umgebungsvariablen, wie bspw. Server-Level oder System-Level abhängigen Umgebungsvariablen überschrieben werden.
Wartungsmodus¶
Sollte sich die Anwendung im Wartungsmodus befinden, werden alle Anfragen an eine bestimmte Seite weitergeleitet. Dies erleichtert Dir ein temporäres „abschalten“ des Basissystems während Du bspw. Updates ausführen oder Wartungsarbeiten vornimmst.
Colibri verfügt über eine eigene Middleware, welche überprüft ob sich das Basissystem im Wartungsmodus befindet. Sollte dieser Fall eintreffen wird eine MaintenanceModeException Exception ausgeworfen. Dabei werden alle Anfragen mit dem Statuscode 503 beantwortet und an die entsprechende Seite weitergeleitet.
Während des Wartungsmodus werden keine Aufgaben aus den Warteschlangen (Queues) abgearbeitet. Diese Aufgaben werden erst dann ausgeführt wenn sich das Basissystem nicht mehr im Wartungsmodus befindet.
Wartungsmodus Aktivieren¶
Das down
Artisan Kommando erlaubt uns dabei das aktivieren des Wartungsmodus
für das Basissystem:
php artisan down
Optional kannst Du auch eine Nachricht (message
) und Wiederholungsversuch
(retry
), in Sekunden, innerhalb des down
Artisan Kommandos beifügen.
Der Nachrichtenwert (message
) wird dabei als Protokoll- oder Ausgabenachricht
verwendet und sollte den Klienten über die Wartungsarbeiten informieren. Die
retry
Option hingegegen erlaubt es eine Zeitspanne, zu definieren, wann die
Wartungsarbeiten möglicherweise abgeschlossen sind. Die Antwort wird dabei
als Retry-After HTTP Header definiert:
php artisan down --message="Datenbank wird aktualisiert." --retry=60
Die 503-Seite¶
Das Blade-Template für die 503-Seite findest Du unter: resources/views/errors/503.blade.php. Du kannst die Seite beliebig anpassen wie jede andere View des Basissystems. Der Webseite steht dabei eine eigenes Stylesheet zur Verfügung. Die Resourcen dieses Stylesheets findest du unter: resources/assets/sass/pages/503.sass. Vergiss nicht die Datei zu kompilieren, falls Du Änderungen innerhalb dieses Stylesheets tätigst.
Wartungsmodus Deaktivieren¶
Um den Wartungsmodus zu beenden kannst Du das up
Arisan Kommando verwenden:
php artisan up
Alternativen zum Wartungsmodus¶
Da die Umschaltung des Basissystems in den Wartungsmodus eine gewisse Anzahl an Sekunden eine sogenannte Downtime verursacht, lohnt es sich nach Alternativen umzusehen, welche diese Probleme lösen. Eine Alternative ist hierbei Envoyer welche ohne Downtime solche veröffentlichungen vornehmen kann.