Baikal

Aus Hostsharing Wiki
Version vom 12. Juni 2024, 13:10 Uhr von Hsh-milanihl (Diskussion | Beiträge)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Zur Navigation springen Zur Suche springen

Baïkal in einer „leichtgewichtigen“ Subdomain

Baïkal ist ein leichtgewichtiger Server für CalDAV (Kalender) und CardDAV (Kontakte). Die Installation kann im Großen und Ganzen der Installationsanleitung folgen. Bei der Installation in einer Subdomain, die als Unterverzeichnis eingerichtet ist, sind jedoch Besonderheiten zu beachten:

Die Installation soll in ein Verzeichnis erfolgen, das nicht aus Web zugänglich ist. Dafür bietet sich ein Ordner im $HOME des Domainadmins an. Der Unterordner "html", der die Webroot der Subdomain sein soll, wird als Symlink im "subs"-Ordner der Domain angelegt. (im Beispiel soll dies https://cal.example.org sein)

# Herunterladen und Entpacken
wget https://github.com/sabre-io/Baikal/releases/download/0.7.1/baikal-0.7.1.zip
unzip  baikal-0.7.1.zip
# durch das Entpacken der Zip-Datei ist ein Verzeichnis "baikal" entstanden.
mkdir ~/sites
mv baikal ~/sites
ln -s ~/sites/baikal/html ~/doms/example.org/subs-ssl/cal
  • Stolperfalle: Die Quelle des Symlinks (baikal/html) muss als absoluter Pfad angegeben werden, da der Webserver ein anderes Arbeitsverzeichnis hat als der Domainadmin.
  • ich habe einen Ordner ~/sites dazwischengezogen. Hierunter gruppiere ich die Webanwendungen, die nach diesem System installiert sind. So habe ich auch den CalDAV/CardDAV-Client InfCloud eingerichtet.

Damit kann der Server bereits über die URL https://cal.example.org aufgerufen und fertig installiert werden. Auch das Anlegen von Benutzern ist dann schon möglich.

Der anschließende Versuch, mit dem frisch angelegten Benutzer die API aufzurufen, schlägt jedoch mit der Meldung fehl: Requested uri (/dav.php/) is out of base uri (/al/dav.php/)

Ursache ist, daß die DOCUMENT_ROOT nicht auf den Ordner unserer Subdomain zeigt, sondern auf /home/doms/example.org/htdocs-ssl. Baïkal verwendet hier übrigens nur die Stringlänge, d.h. wenn also die verwendete Subdomain nur einen Buchstaben lang ist (z.B. http://c.example.org), tritt der Fehler lustigerweise nicht auf. Um ihn in den anderen Fällen zu beheben, kann man in der Datei ~/sites/baikal/Core/Frameworks/Flake/Framework.php die Variable $_SERVER["DOCUMENT_ROOT"] durch den entsprechenden absoluten Verzeichnisnamen ersetzen, d.h. aus

$sScript = substr($_SERVER["SCRIPT_FILENAME"], strlen($_SERVER["DOCUMENT_ROOT"]));

wird

$sScript = substr($_SERVER["SCRIPT_FILENAME"], strlen('/home/doms/example.org/subs-ssl/cal'));

(Bei einem Update muss diese Änderung natürlich nachgezogen werden)

Damit ist Baïkal funktionsfähig.