Baikal: Unterschied zwischen den Versionen

Aus Hostsharing Wiki
Zur Navigation springen Zur Suche springen
(Die Seite wurde neu angelegt: „= Baïkal in einer „leichtgewichtigen“ Subdomain = [https://sabre.io/baikal/ Baïkal] ist ein leichtgewichtiger Server für CalDAV (Kalender) und CardDAV (…“)
 
KKeine Bearbeitungszusammenfassung
 
Zeile 4: Zeile 4:
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)
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
<syntaxhighlight lang="bash" line>
  wget https://github.com/sabre-io/Baikal/releases/download/0.7.1/baikal-0.7.1.zip
# Herunterladen und Entpacken
  unzip  baikal-0.7.1.zip
wget https://github.com/sabre-io/Baikal/releases/download/0.7.1/baikal-0.7.1.zip
  # durch das Entpacken der Zip-Datei ist ein Verzeichnis "baikal" entstanden.
unzip  baikal-0.7.1.zip
  mkdir ~/sites
# durch das Entpacken der Zip-Datei ist ein Verzeichnis "baikal" entstanden.
  mv baikal ~/sites
mkdir ~/sites
  ln -s ~/sites/baikal/html ~/doms/example.org/subs-ssl/cal
mv baikal ~/sites
ln -s ~/sites/baikal/html ~/doms/example.org/subs-ssl/cal
</syntaxhighlight>


* Stolperfalle: Die Quelle des Symlinks (''baikal/html'') muss als absoluter Pfad angegeben werden, da der Webserver ein anderes Arbeitsverzeichnis hat als der Domainadmin.
* Stolperfalle: Die Quelle des Symlinks (''baikal/html'') muss als absoluter Pfad angegeben werden, da der Webserver ein anderes Arbeitsverzeichnis hat als der Domainadmin.
Zeile 22: Zeile 24:
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.
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
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"]));
<syntaxhighlight lang=php>$sScript = substr($_SERVER["SCRIPT_FILENAME"], strlen($_SERVER["DOCUMENT_ROOT"]));</syntaxhighlight>
wird
wird
  $sScript = substr($_SERVER["SCRIPT_FILENAME"], strlen('/home/doms/example.org/subs-ssl/cal'));
<syntaxhighlight lang=php>$sScript = substr($_SERVER["SCRIPT_FILENAME"], strlen('/home/doms/example.org/subs-ssl/cal'));</syntaxhighlight>
(Bei einem Update muss diese Änderung natürlich nachgezogen werden)
(Bei einem Update muss diese Änderung natürlich nachgezogen werden)



Aktuelle Version vom 12. Juni 2024, 13:10 Uhr

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.