Webtrees Handbuch/Anleitung für Webmaster: Unterschied zwischen den Versionen

aus GenWiki, dem genealogischen Lexikon zum Mitmachen.
Zur Navigation springen Zur Suche springen
K (→‎Spam-Schutz: typo verbessert)
 
(154 dazwischenliegende Versionen von 8 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
{{Infobox|
{{WT-Seitenkopf|prefix=Kapitel 8|info=1}}{{WT-Inhaltsverzeichnis|Kapitel 8|B}}
;Handbuch Im Aufbau...<br>
Bitte haben Sie noch ein wenig Geduld..}}
{{WT-Inhaltsverzeichnis|Kapitel 8|B}}


=== Systemarchitektur ===
== Systemarchitektur ==
----
[[Datei:WT 2.1 Systemarchitektur.png|mini|650x650px|Systemarchitektur (Client, Server, Backend)|links|verweis=Special:FilePath/WT_2.1_Systemarchitektur.png]]
[[Datei:WT 2.1 Systemarchitektur.png|alternativtext=Systemarchitektur (Client, Server, Backend)|mini|650x650px|Systemarchitektur (Client, Server, Backend)|links]]
Die Systemarchitektur für die Anwendung {{WT-Name}} umfasst einen Client, einen Server und das Backend mit dem Archiv für {{WT-Name}} bei [https://github.com/fisharebest/webtrees GitHub].
Die Systemarchitektur für die Anwendung '''webtrees''' umfasst einen Client, einen Server und das Backend mit dem Archiv für '''webtrees''' bei [https://github.com/fisharebest/webtrees GitHub].


==== Client ====
=== Client ===
----
Der Client ist das Endgerät des Nutzers auf dem irgendein aktueller Browser installiert ist (Firefox, Chrome, Edge, Safari, usw.). Als Endgerät kommen etwa Laptop, Tablet oder Smartphone in Frage. Abhängig von der Rolle des Benutzers in {{WT-Name}} werden ggf. zusätzlich zum Browser noch weitere lokal installierte Anwendungen benötigt.
Der Client ist das Endgerät des Nutzers auf dem irgendein aktueller Browser installiert ist (Firefox, Chrome, Edge, Safari, usw.). Als Endgerät kommen etwa Laptop, Tablet oder Smartphone in Frage. Abhängig von der Rolle des Benutzers in '''webtrees''' werden ggf. zusätzlich zum Browser noch weitere lokal installierte Anwendungen benötigt.


Besucher sowie Mitglieder oder Moderatoren benötigten nur den Browser um auf alle Funktionen von '''webtrees''' zugreifen zu können. Mitglieder und Moderatoren benötigen für die erstmalige Anmeldung eine E-Mail-Möglichkeit. Der Administrator kann aus '''webtrees''' heraus E-Mails an die Nutzer verschicken.
Besucher sowie Mitglieder oder Moderatoren benötigen nur den Browser um auf alle Funktionen von {{WT-Name}} zugreifen zu können. Mitglieder und Moderatoren benötigen für die erstmalige Anmeldung eine E-Mail-Möglichkeit. Der Administrator kann aus {{WT-Name}} heraus E-Mails an die Nutzer verschicken.


Ein Verwalter oder Administrator benötigt darüber hinaus ein Programm mit dem er E-Mails empfangen kann. Er wird auf diesem Weg darüber informiert, dass ein neuer Nutzer ein Konto beantragt hat. Sobald eine neue Version von '''webtrees''' auf dem Backend-Server verfügbar ist, erfolgt ebenfalls eine Nachricht an die Administratoren.
Ein Verwalter oder Administrator benötigt darüber hinaus ein Programm mit dem er E-Mails empfangen kann. Er wird auf diesem Weg darüber informiert, dass ein neuer Nutzer ein Konto beantragt hat. Sobald eine neue Version von {{WT-Name}} auf dem Backend-Server verfügbar ist, erfolgt ebenfalls eine Nachricht an die Administratoren.


Der Webmaster benötigt ein ftp-Programm ([https://de.wikipedia.org/wiki/Kategorie:FTP-Client ftp-Client]) mit dem er Daten auf den Server hochladen und von diesem herunterladen kann. Und er benötigt ein Programm mit dem er die '''webtrees'''-Datenbank verwalten kann. Näheres dazu ist im nachfolgenden Abschnitt "[[Webtrees_Handbuch/Anleitung_für_Webmaster#Werkzeuge_für_den_Webmaster|Werkzeuge für den Webmaster]]" beschrieben.
Der Webmaster benötigt ein ftp-Programm ([https://de.wikipedia.org/wiki/Kategorie:FTP-Client ftp-Client]) mit dem er Daten auf den Server hochladen und von diesem herunterladen kann. Und er benötigt ein Programm mit dem er die {{WT-Name}}-Datenbank verwalten kann. Näheres dazu ist im nachfolgenden Abschnitt "[[Webtrees_Handbuch/Anleitung_für_Webmaster#Werkzeuge_für_den_Webmaster|Werkzeuge für den Webmaster]]" beschrieben.


==== Server ====
=== Server ===
----
Der {{WT-Name}}-Server kann ein physischer oder ein virtueller Server sein. Als physischer Server kommt vor allem ein dedizierter oder geteilter Server bei einem Hosting-Anbieter in Frage (siehe nächster Abschnitt "[[#Auswahl_eines_Hosting-Anbieters|Auswahl eines Hosting-Anbieters]]"), aber auch ein eigener Rechner zu Hause, wie etwa ein PC, ein RaspberryPi oder ein Netzlaufwerk (siehe nachfolgender Abschnitt "[[#Lokal_installierter_Server|Lokal installierter Server]]"). Als [[#Virtueller_Server|virtueller Server]] kommt etwa ein Docker-Container in Frage. Eine Sonderform der Installation wäre, dass der Client und der Server auf dem selben Endgerät, also lokal, installiert sind.
Der '''webtrees'''-Server kann ein physischer oder ein virtueller Server sein. Als physischer Server kommt vor allem ein dedizierter oder geteilter Server bei einem Hosting-Anbieter in Frage (siehe nächster Abschnitt "Auswahl eines Hosting-Anbieters"), aber auch ein eigener Rechner zu Hause, wie etwa ein PC, ein RaspberryPi oder ein Netzlaufwerk (siehe nachfolgender Abschnitt "Lokal installierter Server"). Als virtueller Server kommt etwa ein Docker-Container in Frage. Eine Sonderform der Installation wäre, dass der Client und der Server auf dem selben Endgerät, also lokal, installiert sind.


Die einzelnen Komponenten des Servers sind
Die einzelnen Komponenten des Servers sind
* Datenbank
* [[#Datenbank|Datenbank]]
* ftp-Server
* ftp-Server
* Zertifikatsspeicher
* Zertifikatsspeicher
* Laufwerk mit den Programmdateien
* Laufwerk mit den Programmdateien
* Web-Server
* [[#Web-Server|Web-Server]]
* PHP-Interpreter
* [[#PHP|PHP-Interpreter]]
* E-Mail-Server
* [[#E-Mail|E-Mail-Server]]
{|
 
| width="50%" |
<div style="display:flow-root;">
{{WT-ToDo|Noch beschreiben: genaue Funktion aller Server-Komponenten mit ggf. einem Verweis auf die Abschnitte unter "Voraussetzungen"; insbesondere wie geht das mit der http-Kompression und wie geht das mit dem Interpretieren von PHP und wie geht das mit kompaktem JavaScript; fehlt noch eine Server-Komponente "JavaScript-Interpreter?}}
{{WT-ToDo|Noch beschreiben: genaue Funktion aller Server-Komponenten mit ggf. einem Verweis auf die Abschnitte unter "Voraussetzungen"; insbesondere wie geht das mit der http-Kompression und wie geht das mit dem Interpretieren von PHP und wie geht das mit kompaktem JavaScript; fehlt noch eine Server-Komponente "JavaScript-Interpreter?}}
{{WT-ToDo|Was ist mit Nachrichten über das Formular? Interne Benachrichtigung und/oder E-Mail?}}
{{WT-ToDo|Was ist mit Nachrichten über das Formular? Interne Benachrichtigung und/oder E-Mail?}}
|}
</div>
 


==== Backend-Server ====
=== Backend-Server ===
----
Der Quelltext des Backend-Servers für {{WT-Name}} liegt bei [https://github.com/fisharebest/webtrees GitHub]. Dort liegen die aktuelle Version von {{WT-Name}} und die in Entwicklung befindlichen Versionen. Auch fast alle Erweiterungsmodule liegen bei GitHub. Beim automatischen Upgrade, veranlasst durch einen Administrator, lädt {{WT-Name}} eigenständig eine neue {{WT-Name}}-Version vom Backend-Server auf den {{WT-Name}}-Server.
Der Backend-Server für '''webtrees''' liegt bei [https://github.com/fisharebest/webtrees GitHub]. Dort liegen die aktuelle Version von '''webtrees''' und die in Entwicklung befindlichen Versionen. Auch fast alle Erweiterungsmodule liegen bei GitHub. Beim automatischen Upgrade, veranlasst durch einen Administrator, lädt '''webtrees''' eigenständig eine neue '''webtrees'''-Version vom Backend-Server auf den '''webtrees'''-Server.


'''webtrees''' prüft regelmäßig über eine Abfrage auf dem Backend-Server, ob dort eine neuere Version vorliegt. Dazu wird die Datei "dev.webtrees.net/build/latest-version.txt" vom Backend-Server geladen. Diese Prüfaktion wird immer dann angestoßen, wenn irgendeine '''webtrees'''-Seite aufgerufen wird; die Prüfung erfolgt aber innerhalb 24 Stunden nur einmal. Für den Fall, dass ein Upgrade vorliegt, werden die Administratoren per E-Mail einmalig darüber informiert. Zusätzlich wird für einen angemeldeten Administrator an verschiedenen Stellen in der Bedienoberfläche ein Hinweis angezeigt.  
{{WT-Name}} prüft regelmäßig über eine Abfrage auf dem Backend-Server, ob dort eine neuere Version vorliegt. Dazu wird die Datei <code>dev.webtrees.net/build/latest-version.txt</code> vom Backend-Server geladen. Diese Prüfaktion wird immer dann angestoßen, wenn irgendeine {{WT-Name}}-Seite aufgerufen wird; die Prüfung erfolgt aber innerhalb 24 Stunden nur einmal. Für den Fall, dass ein Upgrade vorliegt, werden die Administratoren per E-Mail einmalig darüber informiert. Zusätzlich wird für einen angemeldeten Administrator an verschiedenen Stellen in der Bedienoberfläche ein Hinweis angezeigt.  


Um eine Übersicht über die weltweit installierten '''webtrees'''-Instanzen zu bekommen, wird  bei dieser Prüfung auf eine neue Version auch eine Information mit den wichtigsten Parametern des '''webtrees'''-Servers übertragen. Die dabei übermittelten Informationen sind
Um eine Übersicht über die weltweit installierten {{WT-Name}}-Instanzen zu bekommen, wird  bei dieser Prüfung auf eine neue Version auch eine Information mit den wichtigsten Parametern des {{WT-Name}}-Servers übertragen. Die dabei übermittelten Informationen sind
* eine eindeutige, anonymisierte Kennung der '''webtrees'''-Installation
* eine eindeutige, anonymisierte Kennung der {{WT-Name}}-Installation
* installierte '''webtrees'''-Version
* installierte {{WT-Name}}-Version
* installierte PHP-Version
* von {{WT-Name}} verwendete PHP<ref name="wpde_php">{{wikipedia-Link|PHP}}</ref>-Version
* installierte Version und Typ der Datenbank.
* von {{WT-Name}} verwendeter Typ und Version der Datenbank.
Die gewonnenen Statistikinformationen werden auf dieser [https://dev.webtrees.net/statistics.html webtrees-Seite] publiziert.
Die gewonnenen Statistikinformationen werden auf dieser [https://dev.webtrees.net/statistics.html webtrees-Seite] publiziert.


==== Kommunikationsnetz ====
=== Kommunikationsnetz ===
----
In den meisten Fällen kommunizieren die Client-Rechner mit dem {{WT-Name}}-Server über eine Internet-Verbindung. Diese sollte möglichst schnell und verschlüsselt sein (https).
In den meisten Fällen kommunizieren die Client-Rechner mit dem '''webtrees'''-Server über eine Internet-Verbindung. Diese sollte möglichst schnell und verschlüsselt sein (https).


Die Verbindung zum Backend-Server erfolgt immer über das Internet und ist immer verschlüsselt.
Die Verbindung zum Backend-Server erfolgt immer über das Internet und ist immer verschlüsselt.
<div style="display:flow-root;">
{{WT-ToDo|Im gesamten obigen Abschnitt für die Fachbegriffe noch Links auf die wikipedia einfügen}}
{{WT-ToDo|Im gesamten obigen Abschnitt für die Fachbegriffe noch Links auf die wikipedia einfügen}}
</div>
== Server-Typen ==
Der größte Teil der {{WT-Name}}-Server befindet sich in einem Rechenzentrum eines Hosting-Anbieters oder eines Anbieters für Cloud-Dienste und ist dort über das Internet erreichbar. Man kann einen {{WT-Name}}-Server aber auch zu Hause betreiben (siehe nachfolgender Abschnitt "[[Webtrees Handbuch/Anleitung für Webmaster#Lokal installierter Server|Lokal installierter Server]]").
Hosting-Anbieter haben sehr unterschiedliche Angebote, so dass man sich genau überlegen sollte, welche Auswahlkriterien einem wichtig sind. Als erstes Kriterium muss man sich für die Art des Servers entscheiden
* Die günstigeren Angebote basieren darauf, dass man sich mit anderen Kunden einen physischen Server teilt (siehe nachfolgender Abschnitt "[[Webtrees Handbuch/Anleitung für Webmaster#Geteilter Server|Geteilter Server]]"). Man hat hier nur eingeschränkte Rechte und keinen vollen Zugriff auf Betriebssystem und Dateisystem des Servers.
* Wenn man einen Server exklusiv nutzen möchte, kommt ein dedizierter Server in Frage, der aber entsprechend teurer ist. Dafür wird auch die Performance entsprechend besser sein als bei einen Server, den man mit anderen Kunden teilt.
* Des weiteren gibt es virtuelle Server, die man exklusiv nutzt (siehe nachfolgender Abschnitt "[[Webtrees Handbuch/Anleitung für Webmaster#Virtueller Server|Virtueller Server]]"). Ein solcher Server ist eine virtuelle Maschine (VM), die auf einem physischen Server erstellt wird; die VM nutzt die Ressourcen des physischen Servers gemeinsam mit weiteren Virtuellen Servern.


=== Server-Typen ===
=== Geteilter Server ===
----
Die in der folgenden Tabelle aufgeführten Angebote basieren alle auf einem Server, den man mit anderen Kunden gemeinsam nutzt, also entsprechend dem ersten Punkt in der obigen Liste.


==== Server im Internet ====
{{WT-Name}} benötigt nur eine Datenbank, so dass diese Anforderung von allen im folgenden aufgeführten Anbietern erfüllt wird. Einen verschlüsselten Zugang über das Internet bieten ebenfalls alle diese Anbieter. Die meisten Anbieter bieten auch noch viele weitere Anwendungen wie etwa [https://de.wikipedia.org/wiki/WordPress WordPress] zur Installation an, aber das ist im Zusammenhang mit {{WT-Name}} irrelevant.
----
 
Der größte Teil der '''webtrees'''-Server befindet sich in einem Rechenzentrum eines Hosting-Anbieters und ist dort über das Internet erreichbar. Man kann einen '''webtrees'''-Server aber auch zu Hause betreiben (siehe nachfolgender Abschnitt "[[Webtrees Handbuch/Anleitung für Webmaster#Lokal installierter Server|Lokal installierter Server]]").
Wenn es darum geht die Kriterien für einen Servertyp festzulegen, dann kommt es weniger auf die Größe des Stammbaumes an, sondern eher auf die Anzahl der gleichzeitig zu unterstützenden Nutzer. Wenn es weniger als 5 Nutzer sind, die gleichzeitig mit {{WT-Name}} arbeiten sollen, dann reicht in der Regel ein geteilter Server aus und alle unten aufgeführten Angebote kommen in Frage. Neben dem Preis ist sicherlich das wichtigste Kriterium der stabile Betrieb durch einen Anbieter und die gute Erreichbarkeit seiner Hotline im Störungsfall. Hier lohnt es sich Referenzen und Beurteilungen durch andere Nutzer auszuwerten. Aus Datenschutzgründen sollten nur Anbieter ausgewählt werden, die ihre Server in der EU betreiben und somit den Regelungen der EU unterworfen sind.
 
==== Hosting ====


===== Auswahl eines Hosting-Anbieters =====
===== Auswahl eines Hosting-Anbieters =====
----
Nach der Entscheidung für einen Server-Typ muss entschieden werden, wer diesen Server betreibt. Wenn man den Server nicht lokal installiert und selbst betreiben möchte, kommt dafür ein Hosting-Anbieter in Frage. Mit diesem schließt man einen entsprechenden Vertrag, der meist auch die Bereitstellung einer Internet-Domäne beinhaltet.  
Nach der Entscheidung für einen Server-Typ muss entschieden werden, wer diesen Server betreibt. Wenn man den Server nicht lokal installiert und selbst betreiben möchte, kommt dafür ein Hosting-Anbieter in Frage. Mit diesem schließt man einen entsprechenden Vertrag, der meist auch die Bereitstellung einer Internet-Domäne beinhaltet.  


====== Spezialisierte Hosting-Anbieter für webtrees ======
===== Spezialisierte Hosting-Anbieter für webtrees =====
----
Es gibt derzeit zwei [https://webtrees.net/hosting/ Hosting]-Anbieter, die sich auf {{WT-Name}} spezialisiert haben. Sie bieten eine fertige und speziell auf die Anforderungen von {{WT-Name}} ausgerichtete Installation auf Servern in der EU an und kümmern sich um die grundlegende Betriebssicherheit. Die Installation auf einem Server in der EU ist wichtig, da somit die europäischen Datenschutzregelungen greifen.
Es gibt derzeit zwei [https://webtrees.net/hosting/ Hosting]-Anbieter, die sich auf '''webtrees''' spezialisiert haben. Sie bieten eine fertige und speziell auf die Anforderungen von '''webtrees''' ausgerichtete Installation auf Servern in der EU an und kümmern sich um die grundlegende Betriebssicherheit. Die Installation auf einem Server in der EU ist wichtig, da somit die europäischen Datenschutzregelungen greifen.


Ein '''webtrees'''-Hosting-Paket ist ideal für diejenigen, die '''webtrees''' nutzen möchten, sich aber nicht mit der Einrichtung und dem Betrieb der Anwendung beschäftigen möchten. Sie erhalten ein komplett installiertes und vorkonfiguriertes System und müssen sich nur um die genealogischen Daten kümmern. Alles andere erledigt der Dienstleister im Hintergrund. Er kümmert sich in der Rolle als Webmaster um die Technik, administriert das System und sorgt dafür, dass '''webtrees''' und die notwendigen Systemkomponenten immer auf dem neuesten Stand sind.  
Ein {{WT-Name}}-Hosting-Paket ist ideal für diejenigen, die {{WT-Name}} als [[Software as a Service (SaaS)|Software-as-a-Service]] nutzen möchten, sich aber nicht mit der Einrichtung und dem Betrieb der Anwendung beschäftigen möchten. Sie erhalten ein komplett installiertes und vorkonfiguriertes System und müssen sich nur um die genealogischen Daten kümmern. Alles andere erledigt der Dienstleister im Hintergrund. Er kümmert sich in der Rolle als Webmaster um die Technik, administriert das System und sorgt dafür, dass {{WT-Name}} und die notwendigen Systemkomponenten immer auf dem neuesten Stand sind. Dies schließt auch laufende Backups sowie die Installation und Aktualisierung von verfügbaren Erweiterungsmodulen mit ein.  


{| class="wikitable sortable" style="width:100%;"
{| class="wikitable sortable" style="width:100%;"
|+ Hosting-Anbieter - auf webtrees spezialisiert
|-
! Anbieter || Land || Sprache || Preis ||class="unsortable"| Besonderheiten
! Anbieter || Land || Sprache || Preis ||class="unsortable"| Besonderheiten
|-
|-
| [https://genonline.de/index.php/de/ GenOnline] || Deutschland || de || 131,40 €/a  || persönliche Beratung bei der Nutzung von '''webtrees'''
| [https://genonline.de/index.php/de/ GenOnline] || Deutschland || de || 131,40 €/a  || persönliche Beratung bei der Nutzung von {{WT-Name}}
|-
|-
| [https://hosting.webtrees.net/ Hosting webtrees] || Irland || en || 99 GBP/a || persönliche Beratung und kundenspezifische Anpassungen als Extra
| [https://hosting.webtrees.net/ Hosting webtrees] || Irland || en || 99 GBP/a || persönliche Beratung und kundenspezifische Anpassungen als Extra
|}
|}


====== Hosting mit einem dedizierten oder geteilten Server im Internet ======
===== Generelle Hosting-Anbieter =====
----
Neben den spezialisierten Hosting-Anbietern kommen für einen webtrees-Server sehr viele am Markt befindlichen Server in Frage, da die Anforderungen von {{WT-Name}} nicht außergewöhnlich sind. Eine kleine Auswahl findet sich in der folgenden Tabelle.
{{WT-ToDo|
;Welche Auswahlkriterien sind für die Entscheidung für einen Anbieter wichtig?}}
Hosting-Anbieter haben sehr unterschiedliche Angebote, so dass man sich genau überlegen sollte, welche Auswahlkriterien einem wichtig sind. Als erstes Kriterium muss man sich für die Art des Servers entscheiden
* Die günstigeren Angebote basieren darauf, dass man sich mit anderen Kunden einen physischen Server teilt. Man hat hier nur eingeschränkte Rechte und keinen vollen Zugriff auf Betriebssystem und Dateisystem des Servers.
* Wenn man einen Server exklusiv nutzen möchte, kommt ein dedizierter Server in Frage, der aber entsprechend teurer ist. Dafür wird auch die Performance entsprechend besser sein als bei einen Server, den man mit anderen Kunden teilt.
* Des weiteren gibt es virtuelle Server, die man exklusiv nutzt. Ein solcher Server ist eine virtuelle Maschine (VM), die auf einem physischen Server erstellt wird; die VM nutzt die Ressourcen des physischen Servers gemeinsam mit weiteren Virtuellen Servern.
 
{| class="wikitable sortable" style="width:100%;"
{| class="wikitable sortable" style="width:100%;"
! Anbieter || Land || Sprache || Perfomance || Preis ||class="unsortable"| Besonderheiten
|+ Hosting-Anbieter - Beispielauswahl von Webspace-Angeboten
|- style="background-color:#FFFFFF;"
| [https://www.hetzner.com/de/webhosting Hetzner] || DE || de || ? <br> > 5000 Personen || 22,80 €/a<br>58,80 €/a || 1 Datenbank, [https://de.wikipedia.org/wiki/WordPress WordPress], u.v.m. <br> 10 Datenbanken, [https://de.wikipedia.org/wiki/WordPress WordPress], u.v.m.
|-
|-
| [https://alfahosting.de/webhosting Alfahosting] || DE || de || ? || 24,00 €/a || 10 Datenbanken <br>[https://de.wikipedia.org/wiki/WordPress WordPress], [https://de.wikipedia.org/wiki/Joomla Joomla!], [https://de.wikipedia.org/wiki/TYPO3 Typo3], [https://de.wikipedia.org/wiki/Drupal Drupal] u.v.m.
! Anbieter || Land || Sprache || Performance || Preis || class="unsortable" | Besonderheiten
|-
|[https://www.hetzner.com/de/webhosting Hetzner]|| DE || de || ? <br> > 5000 Personen || 22,80 €/a<br>58,80 €/a || 1 Datenbank, [https://de.wikipedia.org/wiki/WordPress WordPress]<br>10 Datenbanken, [https://de.wikipedia.org/wiki/WordPress WordPress]
|-
|-
| [https://www.dogado.de/website/hosting Dogado] || DE || de || ? || 48,00 €/a || 10 Datenbanken <br>[https://de.wikipedia.org/wiki/Joomla Joomla!], [https://de.wikipedia.org/wiki/TYPO3 Typo3], [https://de.wikipedia.org/wiki/Drupal Drupal] u.v.m.
|[https://alfahosting.de/webhosting Alfahosting]|| DE || de || ? || 24,00 €/a || 10 Datenbanken <br>[https://de.wikipedia.org/wiki/WordPress WordPress], [https://de.wikipedia.org/wiki/Joomla Joomla!], [https://de.wikipedia.org/wiki/TYPO3 Typo3], [https://de.wikipedia.org/wiki/Drupal Drupal]
|-
|-
| [https://www.strato.de/hosting/ Strato] || DE || de || ? || 48,00 €/a || 2 Datenbanken <br>[https://de.wikipedia.org/wiki/WordPress WordPress], [https://de.wikipedia.org/wiki/Joomla Joomla!], [https://de.wikipedia.org/wiki/TYPO3 Typo3], [https://de.wikipedia.org/wiki/Drupal Drupal]l  u.v.m.
|[https://www.dogado.de/website/hosting Dogado]|| DE || de || ? || 48,00 €/a || 10 Datenbanken <br>[https://de.wikipedia.org/wiki/Joomla Joomla!], [https://de.wikipedia.org/wiki/TYPO3 Typo3], [https://de.wikipedia.org/wiki/Drupal Drupal]
|-
|-
| [https://www.ionos.de/hosting/webhosting ionos by 1&1] || DE || de || ? ||48,00 €/a || 5 Datenbanken <br>[https://de.wikipedia.org/wiki/WordPress WordPress], [https://de.wikipedia.org/wiki/Joomla Joomla!], [https://de.wikipedia.org/wiki/TYPO3 Typo3], [https://de.wikipedia.org/wiki/Drupal Drupal] u.v.m.
|[https://www.strato.de/hosting/ Strato]|| DE || de || ? || 48,00 €/a || 2 Datenbanken <br>[https://de.wikipedia.org/wiki/WordPress WordPress], [https://de.wikipedia.org/wiki/Joomla Joomla!], [https://de.wikipedia.org/wiki/TYPO3 Typo3], [https://de.wikipedia.org/wiki/Drupal Drupal]
|-
|-
| [https://all-inkl.com/webhosting/paketvergleich/ ALL-INKL.COM] || DE || de || 50 GB, 100 Kunden pro Server<br>250 GB, 50 Kunden pro Server<br> || 59,40 €/a<br>119,40 €/a<br> || 5 Datenbanken<br>50 Datenbanken<br>[https://de.wikipedia.org/wiki/WordPress WordPress], [https://de.wikipedia.org/wiki/Joomla Joomla!], [https://de.wikipedia.org/wiki/TYPO3 Typo3], [https://de.wikipedia.org/wiki/Drupal Drupal] u.v.m.
|[https://www.ionos.de/hosting/webhosting ionos by 1&1]|| DE || de || ? ||48,00 €/a || 5 Datenbanken <br>[https://de.wikipedia.org/wiki/WordPress WordPress], [https://de.wikipedia.org/wiki/Joomla Joomla!], [https://de.wikipedia.org/wiki/TYPO3 Typo3], [https://de.wikipedia.org/wiki/Drupal Drupal]
|-
|-
|[https://www.bplaced.net/pro bplaced pro] || AT || de || Speicherlimit 128 MB<br>CPU-Zeitlimit 30 s || 3,00 €/mtl.<br>36,00 €/a || 8 GB Speicher, 16 Datenbanken, PHP 8, MySQL / MariaDB, PostgreSQL, HTTPS / SSL für alle Seiten
|[https://all-inkl.com/webhosting/paketvergleich/ ALL-INKL.COM]|| DE || de || 50 GB, 100 Kunden pro Server<br>250 GB, 50 Kunden pro Server<br>&nbsp;|| 59,40 €/a<br>119,40 €/a<br>&nbsp;|| 5 Datenbanken<br>50 Datenbanken<br>[https://de.wikipedia.org/wiki/WordPress WordPress], [https://de.wikipedia.org/wiki/Joomla Joomla!], [https://de.wikipedia.org/wiki/TYPO3 Typo3], [https://de.wikipedia.org/wiki/Drupal Drupal]
|-
|[https://www.bplaced.net/pro bplaced pro]|| AT || de || Speicherlimit 128 MB<br>CPU-Zeitlimit 30 s || 36,00 €/a || 16 Datenbanken
|}
|}


==== Lokal installierter Server ====
=== Lokal installierter Server ===
----
Für einen lokalen Server, der direkt beim Webmaster steht, kommen als Betriebssystem Windows, MacOS oder Linux in Frage. In Abhängigkeit davon werden für den Serverbetrieb unterschiedliche Softwarepakete benötigt, die im folgenden beschrieben werden.
Für einen PC als lokalem Server, der direkt beim Webmaster steht, kommen als Betriebssystem Windows, MacOS oder Linux in Frage. In Abhängigkeit davon werden für den Serverbetrieb unterschiedliche Softwarepakete benötigt, die im folgenden beschrieben werden.


Man kann webtrees aber auch auf einem Netzlaufwerk der Marke Synology oder auf einen Kleinstcomputer der Marke RaspberryPi betreiben.
Man kann {{WT-Name}} aber auch auf einem Netzlaufwerk der Marke Synology oder auf einen Kleinstcomputer der Marke RaspberryPi betreiben.
   
   
===== Windows =====
==== Windows ====
----
{{WT-ToDo|Installation auf einem lokalen Windows-Rechner beschreiben}}
 
==== MacOS ====
{{WT-ToDo|Installation auf einem lokalen MacOS-Rechner beschreiben}}
 
==== Linux ====
Wenn Sie {{WT-Name}} auf ihrem eigenen Linux-Rechner installieren wollen, sind die im Folgenden beschriebenen Schritte erforderlich.
 
Als Betriebssystem kommen etwa in Frage<ref>siehe auch {{Wikipedia-Link|Liste_von_Linux-Distributionen}}</ref>
 
* Debian<ref>siehe {{Wikipedia-Link|Debian}}</ref>
* Ubuntu<ref>siehe {{Wikipedia-Link|Ubuntu}}</ref>
* [[Webtrees Handbuch/Anleitung für Webmaster#RaspberryPi|Raspberry Pi OS]]<ref>siehe {{Wikipedia-Link|Raspberry Pi OS}}</ref>
* openSUSE<ref>siehe {{Wikipedia-Link|openSUSE}}</ref>
 
Falls ihr Betriebssystem Ubuntu ist, gibt es für die Installation ein vom Nutzer ''Tuetenk0pp'' auf GitHub bereit gestelltes [https://github.com/Tuetenk0pp/webtrees-mngr Skript], das interaktiv durch die Installation führt. Die Voraussetzung dafür ist ein frisch installiertes, aktuelles Ubuntu-System. Dieses Skript hat aber einige Unzulänglichkeiten, die im [https://www.webtrees.net/index.php/en/forum/2-open-discussion/37692-how-to-upgrade-local-server-to-php8-2#9 Forum] in einem Beitrag des Nutzers ''miletrac'' beschrieben worden sind.
 
Die grundsätzlich erforderlichen Schritte sind
* Linux-Betriebssystem installieren
* Kompletten LAMP-Stacks installieren und einrichten
** Apache Webserver
** Datenbank (z.B. MariaDB)
** PHP<ref name="wpde_php" /> (Version 8, eventuell maximale Upload-Größe und andere Parameter vergrößern)
** Firewall
** Bereitstellung eines SSL-Zertifikats
* {{WT-Name}} herunterladen, entpacken, Dateirechte setzen und einrichten (ggf. [[Webtrees Handbuch/Anleitung für Webmaster#Pretty-URLs|PrettyURLs]] aktivieren); siehe Abschnitt "[[Webtrees Handbuch/Anleitung für Webmaster#Erstinstallation%20von%20webtrees|Erstinstallation von webtrees]]"
* Backup-Möglichkeit schaffen und testen


===== MacOS =====
==== Synology Netzlaufwerk ====
----
Netzlaufwerke (NAS<ref>siehe {{Wikipedia-Link|Network_Attached_Storage}}</ref>) von [https://synology.de Synology] nutzen als Betriebssystem ''DiskStation Manager (DSM)'', ein Linux-basiertes Betriebssystem. Je nach Leistungsfähigkeit der verwendeter Hardware ist die Nutzung von {{WT-Name}} möglich. Es kann z.B. eine auf [[Webtrees Handbuch/Anleitung für Webmaster#Virtueller Server|Docker]]<ref>siehe {{Wikipedia-Link|Docker_(Software)}}</ref> basierende Installation erfolgen.


===== Linux =====
{{WT-ToDo|Installation auf einem Netzlaufwerk von Synology genauer beschreiben}}
----


===== Synology Netzlaufwerk =====
==== Raspberry Pi ====
----
Das für einen ''Raspberry Pi''<ref>siehe {{Wikipedia-Link|Raspberry_Pi}}</ref> empfohlene Betriebssystem ist das auf Debian basierende Raspberry Pi OS. Die Leistungsfähigkeit eines Raspberry Pi reicht mit einigen Einschränkungen durchaus für eine Nutzung von {{WT-Name}} aus. Allerdings ist die Anzahl gleichzeitiger Nutzerzugriffe und die Größe der Stammbäume limitiert.
{{WT-ToDo|Installation unter Raspberry Pi OS genauer beschreiben}}


===== RaspberryPi =====
=== Virtueller Server ===
----
Eine Möglichkeit zum Betrieb eines {{WT-Name}}-Servers ist die Nutzung eines virtuellen Servers. Solche Server können in ihrer Leistungsfähigkeit leicht skaliert werden, was sich dann natürlich auch in den entsprechenden Kosten bemerkbar macht. Ein Vorteil einer solchen Lösung ist weiterhin, dass virtuelle Server mehr oder weniger leicht von einem physischen Server auf einen anderen Server oder sogar von einem Anbieter zu einem andern Anbieter verschoben werden können. Dadurch lassen sich sehr stabile und sichere Lösungen gestalten.


==== Virtueller Server ====
Es gibt auch kostenlose virtuelle Server. Eine Anleitung zum Einrichten eines kostenlosen Servers auf Basis eines Oracle Cloud-Kontos, der Installation von Docker und eines Secure Web Application Gateways (SWAG) sowie dem Aufbau einer Domain über DuckDNS ist in einem [https://templeknights.download/2023/09/28/setting-up-webtrees-family-tree-server/ Blog-Beitrag] sehr gut beschrieben.
----
{{WT-ToDo| docker und SWAG und Domain über DuckDNS jeweils kurz beschreiben}}
{{WT-ToDo| docker beschreiben}}


=== Installation von webtrees ===
== Installation von webtrees ==
----
Nachdem der Hosting-Anbieter bzw. der Server ausgewählt worden sind, steht die Installation von {{WT-Name}} auf dem Server an. Die im Folgenden beschriebenen Schritte sind dabei erforderlich
Nachdem der Server und der Hosting-Anbieter ausgewählt worden sind, steht die Installation von '''webtrees''' auf dem Server an. Die im Folgenden beschriebenen Schritte sind dabei erforderlich
* [[Webtrees_Handbuch/Anleitung_für_Webmaster#Voraussetzungen_für_die_Installation|Voraussetzungen für die Installation herstellen]] (Systemumgebung und Server-Zugang prüfen, PHP<ref name="wpde_php" /> konfigurieren, Datenbank anlegen, Web-Server und Internet-Anbindung konfigurieren)
* [[Webtrees_Handbuch/Anleitung_für_Webmaster#Voraussetzungen_für_die_Installation|Voraussetzungen für die Installation herstellen]] (Systemumgebung und Server-Zugang prüfen, PHP konfigurieren, Datenbank anlegen, Web-Server und Internet-Anbindung konfigurieren)
* [[Webtrees_Handbuch/Anleitung_für_Webmaster#Erstinstallation_von_webtrees|Programmdateien auf den Server laden]]
* [[Webtrees_Handbuch/Anleitung_für_Webmaster#Erstinstallation_von_webtrees|Programmdateien auf den Server laden]]
* [[Webtrees_Handbuch/Anleitung_für_Webmaster#Ersteinrichtung|Konfigurationsassistenten für die Ersteinrichtung nutzen]]
* [[Webtrees_Handbuch/Anleitung_für_Webmaster#Ersteinrichtung|Konfigurationsassistenten für die Ersteinrichtung nutzen]]
Zeile 143: Zeile 166:
* [[Webtrees_Handbuch/Anleitung_für_Webmaster#Installation_von_Erweiterungsmodulen|Erweiterungsmodule installieren]]
* [[Webtrees_Handbuch/Anleitung_für_Webmaster#Installation_von_Erweiterungsmodulen|Erweiterungsmodule installieren]]


Anstatt '''webtrees''' selbst zu installieren, kann man auch fertige Installationsdienste oder vorgefertigte Container-Lösungen nutzen, wenn der vorgesehene Host das unterstützt (etwa Docker, Installatron, OpenSuse, Puppet, Softaculous, Yunohost). Dazu gibt es ergänzende Hinweise in der [https://webtrees.net/install/ Original-webtrees-Dokumentation]. Für einige Hosting-Anbieter und Servertypen liegen dort ebenfalls noch zusätzliche Hinweise (für Bluehost, Cloudflare, Microsoft/IIS, OVH). Ansonsten zeigen die folgenden Abschnitte exemplarisch alle Schritte bei der Installation. Da jeder Server und jede Installationsumgebung verschieden ist, wird es im Detail bei Ihrer Installation etwas anders aussehen.
Anstatt {{WT-Name}} selbst zu installieren, kann man auch fertige Installationsdienste oder vorgefertigte Container-Lösungen nutzen, wenn der vorgesehene Host das unterstützt (etwa Docker, Installatron, OpenSuse, Puppet, Softaculous, Yunohost). Dazu gibt es ergänzende Hinweise in der [https://webtrees.net/install/ Original-webtrees-Dokumentation]. Für einige Hosting-Anbieter und Servertypen liegen dort ebenfalls noch zusätzliche Hinweise (für Bluehost, Cloudflare, Microsoft/IIS, OVH). Ansonsten zeigen die folgenden Abschnitte exemplarisch alle Schritte bei der Installation. Da jeder Server und jede Installationsumgebung Unterschiede aufweisen können, wird es auch bei Ihrer Installation Abweichungen geben.
 
=== Voraussetzungen für die Installation ===
Bevor {{WT-Name}} installiert werden kann, muss die Systemumgebung geprüft oder vorbereitet werden. Bei den meisten Hosting-Angeboten wird bereits alles passend parat stehen, was für {{WT-Name}} benötigt wird. Wenn man einen Server selbst aufsetzt, muss man die im folgenden beschriebenen Systemkomponenten installieren und konfigurieren. '''Insbesondere muss man sich um die erforderliche System-Sicherheit permanent und selber kümmern'''.


==== Voraussetzungen für die Installation ====
==== Systemumgebung ====
----
Die Webpräsenz sollte zumindest über einen FTP-Zugang<ref>{{wikipedia-Link|File_Transfer_Protocol}}</ref> erreichbar sein, um den Datentransfer zu ermöglichen. Besser ist noch zusätzlich ein Fernwartungszugang per SSH<ref>{{wikipedia-Link|Secure_Shell}}</ref> oder RDP<ref>{{wikipedia-Link|Remote_Desktop_Protocol}}</ref>, da hierüber noch mehr Möglichkeiten bestehen (etwa zur Einrichtung von Cronjobs<ref>{{wikipedia-Link|Cron}}</ref> oder bei der Anpassung der [[#Datensicherheit_und_Datenschutz|Dateirechte]]).
Bevor '''webtrees''' installiert werden kann, muss die Systemumgebung geprüft oder vorbereitet werden. Bei den meisten Hosting-Angeboten wird bereits alles passend parat stehen, was für webtrees benötigt wird. Wenn man einen Server selbst aufsetzt, muss man die im folgenden beschriebenen Systemkomponenten installieren und konfigurieren.


===== Systemumgebung =====
Für die {{WT-Name}}-Anwendung werden etwa 120 MB an '''Speicherplatz''' benötigt.<ref>Der Speicherplatzbedarf verteilt sich auf die Unterverzeichnisse 18 MB ./resources, 82 MB ./vendor, 9 MB ./app und 8 MB ./public.</ref> Dazu kommt der individuelle Platzbedarf für Medien- und GEDCOM-Dateien sowie Speicher für [[Webtrees_Handbuch/Anleitung_f%C3%BCr_Webmaster/Erweiterungsmodule|Erweiterungsmodule]], Cachedaten und [[#Upgrade|Upgrade]]-Dateien.
----
Die Webpräsenz sollte zumindest über einen FTP-Zugang<ref>{{wikipedia-Link|File_Transfer_Protocol}}</ref> erreichbar sein, um den Datentransfer zu ermöglichen.
Besser ist noch zusätzlich ein Fernwartungszugang per SSH<ref>{{wikipedia-Link|Secure_Shell}}</ref> oder RDP<ref>{{wikipedia-Link|Remote_Desktop_Protocol}}</ref>, da hierüber noch mehr Möglichkeiten bestehen (bspw. Einrichtung von Cronjobs<ref>{{wikipedia-Link|Cron}}</ref> oder Anpassung der [[#Datensicherheit_und_Datenschutz|Dateirechte]]).


Für die '''webtrees'''-Anwendung werden etwa 116 MB an '''Speicherplatz''' benötigt.<ref>Der Speicherplatzbedarf verteilt sich auf die Unterverzeichnisse 18 MB ./resources, 82 MB ./vendor, 9 MB ./app und 8 MB ./public.</ref> Dazu kommt der individuelle Platzbedarf für Medien- und GEDCOM-Dateien sowie Speicher für [[Webtrees_Handbuch/Anleitung_f%C3%BCr_Webmaster/Erweiterungsmodule|Erweiterungsmodule]], Cachedaten und [[#Upgrade|Upgrade]]-Dateien.
Weitere Anforderungen an die '''Server-Performance''' hängen stark von den eigenen Wünschen und der Bereitschaft ab, wieviel Geld für die Webpräsenz ausgegeben werden kann. Relevant für die Anforderungen sind die Anzahl der gleichzeitigen Benutzer, die Menge und Größe der Multimediadateien und die Menge an zu verwaltenden Datensätzen. Eine Idee für die Anforderungen an Arbeitsspeicher und zugesicherter Ausführungszeit der PHP-Skripte gibt der Abschnitt [[#Server_.C3.BCberpr.C3.BCfen|Server überprüfen]].


Weitere Anforderungen an die '''Server-Performance''' hängen stark von den eigenen Wünschen und Bereitschaft ab, was für die Webpräsenz investiert werden soll, mit welcher Anzahl Benutzern zu rechnen ist und der Menge an zu verwaltenden Datensätzen. Eine Idee für die Anforderungen an Arbeitsspeicher und zugesicherter Ausführungszeit der PHP-Skripte gibt Abschnitt [[#Server_.C3.BCberpr.C3.BCfen|Server überprüfen]].
==== PHP ====
PHP<ref name="wpde_php" /> muss für die aktuelle Version von {{WT-Name}} in einer der folgenden Versionen installiert sein: 7.4, 8.0, 8.1, 8.2, 8.3 oder 8.4. Die PHP-Version 7.4 wird seit dem 28. November 2022 nicht mehr offiziell gepflegt; daher wird diese Version auch von {{WT-Name}} nicht mehr unterstützt.


===== PHP =====
Je nachdem welche PHP-Version auf dem Web-Server installiert ist, können verschiedene Versionen von {{WT-Name}} genutzt werden (näheres zu den Versionsbezeichnungen bei {{WT-Name}} ist im nachfolgenden Abschnitt "[[Webtrees_Handbuch/Anleitung_für_Webmaster#Versionen_von_webtrees|Versionen von webtrees]]" beschrieben). Die folgende Tabelle zeigt die Abhängigkeiten zwischen den PHP- und den {{WT-Name}}-Versionen.
----
PHP muss für die aktuelle Version von '''webtrees''' in einer der folgenden Versionen installiert sein: 7.4, 8.0 oder 8.1. Die Version 7.4 wird noch bis zum 28. November 2022 gepflegt werden; danach wird diese Version auch nicht mehr von '''webtrees''' unterstützt werden, d.h. spätestens bis zu diesem Termin sollten alle alten webtrees-Installationen auf eine Version 2.1.x aktualisiert werden.


Je nachdem welche PHP-Version auf dem Web-Server installiert ist, können verschiedene Versionen von '''webtrees''' genutzt werden (näheres zu den Versionsbezeichnungen bei '''webtrees''' ist im nachfolgenden Abschnitt "[[Webtrees_Handbuch/Anleitung_für_Webmaster#Versionen_von_webtrees|Versionen von webtrees]]" beschrieben). Die folgende Tabelle zeigt die Abhängigkeiten zwischen den PHP- und den webtrees-Versionen.
{| class="wikitable"
{| class="wikitable"
|+
|+ Durch webtrees unterstützte PHP-Versionen
!PHP-Version
|-
!webtrees-Version
!webtrees Zweig
!Status
!Status
!Letzte Version
!PHP 5.3-5.6
!PHP 7.0-7.3
!PHP 7.4
!PHP 8.0
!PHP 8.1-8.4
|-
|2.2
|in Entwicklung
|dev
|❌
|❌
|❌
|❌
|✅
|-
|-
|8.0–8.1
|2.1
|ab 2.1.0
|volle Unterstützung
|volle Unterstützung
|2.1.17
|❌
|❌
|✅
|✅
|✅
|-
|-
|7.4
|2.0
|2.0.24 und ab 2.1.0
|nur noch Sicherheits-Updates
|volle Unterstützung bis zum 28.11.2022
|2.0.26
|❌
|✅
|✅
|❌
|
|-
|-
|7.1–7.3
|1.7
|2.0.24
|keine Unterstützung mehr
|größere Fehler und Sicherheitsprobleme werden noch behoben
|-
|5.3–7.3
|1.7.20
|1.7.20
|nicht mehr gepflegt
|
|✅
|❌
|❌
|❌
|-
|-
|5.2–5.6
|1.4
|keine Unterstützung mehr
|1.4.6
|1.4.6
|nicht mehr gepflegt
|
|❌
|❌
|❌
|❌
|}
|}


'''webtrees''' benötigt die folgenden Erweiterungsbibliotheken
{{WT-Name}} benötigt die folgenden PHP-Erweiterungsbibliotheken<ref>Zu den erforderlichen Erweiterungsbibliotheken vgl.:
* https://repo.packagist.org/packages/fisharebest/webtrees
* https://github.com/fisharebest/webtrees/blob/main/composer.json
* https://github.com/fisharebest/webtrees/blob/main/app/Services/ServerCheckService.php</ref>
* ext-ctype
* ext-curl
* ext-curl
* ext-exif
* ext-fileinfo
* ext-gd
* ext-gd
* ext-iconv
* ext-iconv
* ext-intl
* ext-intl
* ext-json
* ext-json
* ext-mbstring
* ext-pcre
* ext-pcre
* ext-pdo
* ext-pdo (und die Treiber für die verwendete Datenbank - mysql/postgres/etc.)
* ext-session
* ext-session
* ext-simplexml
* ext-simplexml
* ext-xml
* ext-xml
* ext-zip
* ext-zip
 
Die Situation ist allerdings nicht ganz einfach, denn es gibt für einige der erforderlichen Erweiterungen auch Ersatzlösungen<ref>{{wikipedia-Link|Polyfill}}</ref>. Zum Beispiel werden in {{WT-Name}} Funktionen von „php-mbstring“ verwendet, aber diese werden zusätzlich auch über „symfony/polyfill-mbstring“ eingebunden. {{WT-Name}} funktioniert also auch ohne die PHP-Erweiterung, wenngleich auch etwas langsamer.
Die Situation ist allerdings nicht ganz einfach, denn es gibt für einige der erforderlichen Erweiterungen auch Ersatzlösungen<ref>{{wikipedia-Link|Polyfills}}</ref>. Zum Beispiel werden in '''webtrees''' Funktionen von „php-mbstring“ verwendet, aber diese werden zusätzlich auch über „symfony/polyfill-mbstring“ eingebunden. '''webtrees''' funktioniert also auch ohne die PHP-Erweiterung, wenngleich auch etwas langsamer.


Dasselbe gilt für „php-calendar“, das von „fisharebest/ext-calendar“ ersetzt werden kann. Es kann auch noch weitere Funktionen geben, die in ähnlicher Form, eventuell mit eingeschränkter Funktionalität arbeiten, wenn die eigentliche Bibliothek fehlt.
Dasselbe gilt für „php-calendar“, das von „fisharebest/ext-calendar“ ersetzt werden kann. Es kann auch noch weitere Funktionen geben, die in ähnlicher Form, eventuell mit eingeschränkter Funktionalität arbeiten, wenn die eigentliche Bibliothek fehlt.
Zeile 209: Zeile 266:
Welche PHP-Erweiterungen aktuell installiert sind, lässt sich über den Menüpunkt "Webseite / [[Webtrees Handbuch/Anleitung für Administratoren/Webseite#Server_Information|Server Information]]“ im Verwaltungsmenü anzeigen.
Welche PHP-Erweiterungen aktuell installiert sind, lässt sich über den Menüpunkt "Webseite / [[Webtrees Handbuch/Anleitung für Administratoren/Webseite#Server_Information|Server Information]]“ im Verwaltungsmenü anzeigen.


===== Datenbank =====
{{Halt|Die Erweiterung php-psr sollte nicht installiert werden, da es dann zu Fehlern mit webtrees kommen kann.<ref>siehe Artikel "[https://webtrees.net/install/ubserspace/ Uberspace webhosting]" im {{WT-Name}}-Forum</ref>}}
----
'''webtrees''' verwendet die [https://laravel.com/docs/8.x/database Laravel-Datenbankkomponente] und unterstützt damit folgende gängige DBMS<ref>{{wikipedia-Link|DBMS}}</ref> <ref>Für das gewünschte DBMS ist dann ggf. die Installation/Aktivierung weiterer php-extensions erforderlich.</ref>:<ref>Übersetzung des Abschnitts "Database Requirements" von https://webtrees.net/install/requirements/ wurde hier eingearbeitet.</ref>
* MySQL<ref>{{wikipedia-Link|MySQL}}</ref> - Version 5.7 oder höher
* MariaDB<ref>{{wikipedia-Link|MariaDB}}</ref> - Version 10.3 oder höher
* PostgreSQL<ref>{{wikipedia-Link|PostgreSQL}}</ref> - Version 9.6 oder höher
* SQLite<ref>{{wikipedia-Link|SQLite}}</ref> - Version 3.8.8 oder höher
* Microsoft SQL Server<ref>{{wikipedia-Link|Microsoft_SQL_Server}}</ref> - 2017 oder höher


MySQL/MariaDB wird für Produktionsserver empfohlen. '''webtrees''' verwendet die Sortierfunktionen von MySQL, um Namen in verschiedenen Sprachen korrekt zu suchen und zu sortieren.<br>
==== Datenbank ====
PostgreSQL und SQL-Server sind weitgehend ungetestet, sollten aber funktionieren.<br>
{{WT-Name}} verwendet in der aktuellsten Version die [https://laravel.com/docs/8.x/database Laravel-Datenbankkomponente] und unterstützt damit folgende gängige Datenbankmanagementsysteme (DBMS)<ref>{{wikipedia-Link|DBMS}}</ref> <ref>Für das gewünschte DBMS ist dann ggf. die Installation/Aktivierung weiterer php-extensions erforderlich.</ref>:<ref>Übersetzung des Abschnitts "Database Requirements" von https://webtrees.net/install/requirements/ wurde hier eingearbeitet.</ref>
SQLite eignet sich gut für kleine Websites, ist aber bei vielen gleichzeitigen Benutzern nicht gut skalierbar.
* MySQL<ref name="wpde_mysql">{{wikipedia-Link|MySQL}}</ref> - Version 5.7 oder höher
* MariaDB<ref name="wpde_mariadb">{{wikipedia-Link|MariaDB}}</ref> - Version 10.2 oder höher
* SQLite<ref name="wpde_sqlite">{{wikipedia-Link|SQLite}}</ref> - Version 3.8.8 oder höher
* Microsoft SQL Server<ref name="wpde_sqlserver">{{wikipedia-Link|Microsoft_SQL_Server}}</ref> - 2017 oder höher
* PostgreSQL<ref name="wpde_postgresql">{{wikipedia-Link|PostgreSQL}}</ref> - Version 9.6 oder höher
In Abhängigkeit des installierten Versionszweiges von <span class="wtname">webtrees,</span> muss die Datenbank in einer passenden Version installiert sein, die der folgenden Tabelle zu entnehmen ist (näheres zu den Versionsbezeichnungen bei {{WT-Name}} ist im nachfolgenden Abschnitt "[[Webtrees_Handbuch/Anleitung_für_Webmaster#Versionen_von_webtrees|Versionen von webtrees]]" beschrieben).  


Bei der [[#Datenbankanbindung_konfigurieren|Einrichtung der Datenbank]] besteht mit dem Tabellennamen-Präfix (Vorgabewert ist <code>wt_</code>) die Möglichkeit mehrere Anwendungen in einer Datenbank kollisionsfrei abzuspeichern. Dies sollte nur erfolgen, wenn nicht ausreichend Datenbanken im Hosting-Paket enthalten sind. Grundsätzlich sollte für jede Anwendung eine eigene Datenbank zum Einsatz kommen, was den Betrieb<ref>Beispielsweise sind die Ausfälle durch Wartungen nur auf eine Anwendung berenzt und Backup & Restore sind ohne Seiteneffekte umsetzbar.</ref> vereinfacht. Aus Sicherheitsgründen ist auch die Verwendung unterschiedlicher Datenbanknutzer zweckmäßig.
{| class="wikitable"
|+ Durch webtrees unterstützte Datenbank-Versionen
|-
!webtrees Zweig
!Status
!Letzte Version
!MySQL
!MariaDB
!SQLite
!SQL Server
!PostgreSQL
|-
|2.2
|in Entwicklung
|dev
|✅ 5.7+
|✅ 10.3+
|✅ 3.8.8+
|✅ 2017+
|✅ 10.0+
|-
|2.1
|volle Unterstützung
|2.1.17
|✅ 5.7+
|✅ 10.2+
|✅ 3.8.8+
|✅ 2017+
|✅ 9.6+
|-
|2.0
|nur noch Sicherheits-Updates
|2.0.26
|✅ 5.6+
|✅ 10.1+
|❌
|❌
|❌
|-
|1.7
|keine Unterstützung mehr
|1.7.20
|✅ 5.5+
|✅ 5.5+
|❌
|❌
|❌
|-
|1.4
|keine Unterstützung mehr
|1.4.6
|✅ 5.5+
|✅ 5.5+
|❌
|❌
|❌
|}
MySQL/MariaDB wird für Produktionsserver empfohlen. {{WT-Name}} verwendet die Sortierfunktionen von MySQL, um Namen in verschiedenen Sprachen korrekt zu suchen und zu sortieren.<br>PostgreSQL und SQL-Server sind weitgehend ungetestet, sollten aber funktionieren. SQLite eignet sich gut für kleine Websites, ist aber bei vielen gleichzeitigen Benutzern nicht leistungsstark genug.
 
Bei der [[#Datenbankanbindung_konfigurieren|Einrichtung der Datenbank]] besteht mit dem frei wählbaren Tabellennamen-Präfix (Vorgabewert ist <code>wt_</code>) die Möglichkeit, mehrere {{WT-Name}}-Anwendungen in einer Datenbank kollisionsfrei abzuspeichern. Dies sollte nur erfolgen, wenn nicht ausreichend Datenbanken im Hosting-Paket enthalten sind. Grundsätzlich sollte für jede Anwendung eine eigene Datenbank zum Einsatz kommen, was den Betrieb<ref>Beispielsweise sind die Ausfälle durch Wartungen nur auf eine Anwendung berenzt und Backup & Restore sind ohne Seiteneffekte umsetzbar.</ref> vereinfacht. Aus Sicherheitsgründen ist auch die Verwendung unterschiedlicher Datenbanknutzer für die verschiedenen Anwendungen sinnvoll.


{{Halt|Derzeit unterstützt webtrees bei der Zeichenkodierung in der Datenbank nur UTF8_MB3, aber nicht UTF8_MB4. Dadurch ist es nicht möglich Texte oder andere Datenfelder zu speichern, die etwa Emoji enthalten.<ref>Vgl. auch: https://github.com/fisharebest/webtrees/issues/2950.</ref>}}
{{Halt|Derzeit unterstützt webtrees bei der Zeichenkodierung in der Datenbank nur UTF8_MB3, aber nicht UTF8_MB4. Dadurch ist es nicht möglich Texte oder andere Datenfelder zu speichern, die etwa Emoji enthalten.<ref>Vgl. auch: https://github.com/fisharebest/webtrees/issues/2950.</ref>}}


===== Web-Server =====
==== Web-Server ====
----
{{WT-ToDo|Beschreiben: welche Webserver kommen in Frage (Apache, Microsoft IIS, ...)?}}
{{WT-ToDo|Beschreiben: welche Webserver kommen in Frage (Apache, Microsoft IIS, ...)?}}


===== Internet-Anbindung =====
==== Internet-Anbindung ====
Entweder ist eine Internet-Domäne bereits Bestandteil des Vertrages mit dem Hosting-Anbieter oder diese muss separat bei einem Anbieter von Internet-Domänen gemietet werden. Als Beispiel wird im Folgenden die Domäne <code>musterfamilie.de</code> verwendet.
Entweder ist eine Internet-Domäne bereits Bestandteil des Vertrages mit dem Hosting-Anbieter oder diese muss separat bei einem Anbieter von Internet-Domänen gemietet werden. Als Beispiel wird im Folgenden die Domäne <code>musterfamilie.de</code> verwendet.


Der Zugang zu '''webtrees''' sollte in jedem Fall verschlüsselt erfolgen, d.h. es sollte das [[#Sichere_Kommunikationsverbindung|Protokoll https]] zur Verwendung kommen. Von einer ungesicherten Anbindung mit http wird abgeraten.
Der Zugang zu {{WT-Name}} sollte in jedem Fall verschlüsselt erfolgen, d.h. es sollte das [[#Sichere_Kommunikationsverbindung|Protokoll https]] zur Verwendung kommen. Von einer ungesicherten Anbindung mit http wird abgeraten.


Es gibt zwei mögliche Konfigurationen, wie '''webtrees''' über das Internet von einem Browser adressiert werden kann
Es gibt zwei mögliche Konfigurationen, wie {{WT-Name}} über das Internet von einem Browser adressiert werden kann


* '''''webtrees''''' direkt in die Heimatseite integriert: <code><nowiki>https://musterfamilie.de</nowiki></code>
* ''{{WT-Name}}'' direkt in die Heimatseite integriert: <code><nowiki>https://musterfamilie.de</nowiki></code>
* '''''webtrees''''' in einer Subdomain, etwa "ahnen", zur Heimatseite:  <code><nowiki>https://ahnen.musterfamilie.de</nowiki></code>
* ''{{WT-Name}}'' in einer Subdomain, etwa "ahnen", zur Heimatseite:  <code><nowiki>https://ahnen.musterfamilie.de</nowiki></code>


Die Variante mit der Subdomain bietet sich insbesondere dann an, wenn noch weitere Anwendungen in der Domäne installiert werden sollen (etwa Wordpress). Nicht in jedem Mietvertrag für die Heimatseite wird es eine Option geben, die die freie Wahl von Subdomains vorsieht. Wenn man die Variante mit der Subdomain wählt, dann installiert man webtrees in einen Unterordner des Hauptverzeichnisses des Web-Servers, etwa in den Ordner "webtrees" und ordnet in der Domänen-Verwaltung des Servers diesen Unterordner der Subdomain zu.
Die Variante mit der Subdomain bietet sich insbesondere dann an, wenn noch weitere Anwendungen in der Domäne installiert werden sollen (etwa Wordpress). Nicht in jedem Mietvertrag für die Heimatseite wird es eine Option geben, die die freie Wahl von Subdomains vorsieht. Wenn man die Variante mit der Subdomain wählt, dann installiert man webtrees in einen Unterordner des Hauptverzeichnisses des Web-Servers, etwa in den Ordner "<code>/webtrees</code>" und ordnet in der Domänen-Verwaltung des Servers diesen Unterordner der Subdomain zu.


Aber auch wenn man keine Subdomain nutzen möchte oder kann, sollte man webtrees in einen eigenen Unterordner des Hauptverzeichnisses des Web-Servers installieren, etwa in den Ordner "webtrees". Dann ist es möglich zukünftig auch noch andere Anwendungen in der Domäne zu betreiben und zu adressieren. Die Adressierung in einem auf webtrees zugreifenden Browser sieht dann so aus
Aber auch wenn man keine Subdomain nutzen möchte oder kann, sollte man webtrees in einen eigenen Unterordner des Hauptverzeichnisses des Web-Servers installieren, etwa in den Ordner "<code>/webtrees</code>". Dann ist es möglich zukünftig auch noch andere Anwendungen in der Domäne zu betreiben und zu adressieren. Die Adressierung in einem auf {{WT-Name}} zugreifenden Browser sieht dann so aus


* '''''webtrees''''' in einem Unterordner der Heimatseite integriert: <code><nowiki>https://musterfamilie.de/wetrees</nowiki></code>
* ''{{WT-Name}}'' in einem Unterordner der Heimatseite integriert: <code><nowiki>https://musterfamilie.de/webtrees</nowiki></code>
 
Die Anbindung an das Internet sollte eine hohe Datenrate bieten und ausfallsicher gestaltet sein. Wenn man ein Hosting-Angebot nutzt, wird man sich darum nicht kümmern müssen. Wenn man {{WT-Name}} auf einem lokalen Server installiert hat und den Wunsch hat, dass dieser aus dem Internet erreichbar sein soll, dann muss man sich eine dynamische Internet-Adresse besorgen, diese einrichten und im eigenen Router eine Port-Weiterleitung zu dem eigenen Web-Server konfigurieren.                                                                                                                     


Die Anbindung an das Internet sollte eine hohe Datenrate bieten und ausfallsicher gestaltet sein. Wenn man ein Hosting-Angebot nutzt, wird man sich darum nicht kümmern müssen. Wenn man webtrees auf einem lokalen Server installiert hat und den Wunsch hat, dass dieser aus dem Internet erreichbar sein soll, dann muss man sich eine dynamische Internet-Adresse besorgen, diese einrichten und im eigenen Router eine Port-Weiterleitung zu dem eigenen Web-Server einrichten.                                                                                                                     
----
{{WT-ToDo|Noch beschreiben: Installation der Zertifikate für https (für Domain bzw. Subdomain)}}
{{WT-ToDo|Noch beschreiben: Installation der Zertifikate für https (für Domain bzw. Subdomain)}}


===== Werkzeuge für den Webmaster =====
==== E-Mail ====
----
Um die optionalen E-Mail-Funktionen von {{WT-Name}} nutzen zu können, muss ein E-Mail-Konto vorhanden sein. Die Konfiguration ist im Abschnitt "[[Webtrees_Handbuch/Anleitung_für_Administratoren/Webseite#E-Mail-Versand|E-Mail-Versand]]" im Kapitel "[[Webtrees_Handbuch/Anleitung_für_Administratoren|Anleitung für Administratoren]]" beschrieben.
 
==== Werkzeuge für den Webmaster ====
Neben den Voraussetzungen auf der Seite des Servers, benötigt man als Webmaster noch lokale Programme.
Neben den Voraussetzungen auf der Seite des Servers, benötigt man als Webmaster noch lokale Programme.
{{WT-ToDo|Beschreiben: Browser, ftp-Programm, Datenbankmanagement-Programm, E-Mail, ...}}
{{WT-ToDo|Beschreiben: Browser, ftp-Programm, Datenbankmanagement-Programm, E-Mail, ...}}


===== Werkzeuge für einen Programmierer =====
==== Werkzeuge für einen Programmierer ====
----
Neben den Werkzeugen, die ein Webmaster benötigt, sollte ein Programmierer von Erweiterungsmodulen noch weitere Programme installieren.
{{WT-ToDo|Programmiertools wie PhpStorm kurz beschreiben.}}
 
=== Erstinstallation von webtrees ===
Nachdem das ZIP-Archiv der aktuellen Version vom {{WT-Name}}-GitHub-Server (siehe [https://github.com/fisharebest/webtrees/releases github.com/fisharebest/webtrees/releases]) heruntergeladen wurde, müssen die Dateien entpackt und im Zielordner auf dem Webserver abgelegt werden. Wie dies erfolgt, hängt von der Konstellation ab. Bei einem lokalen Webserver auf dem eigenen Arbeitsrechner kann das Entpacken und Ablegen direkt geschehen. Bei einem gehosteten Server kann dies auch per SSH oder RDP möglich sein oder es muss über den Zwischenschritt des temporären Entpackens auf dem Arbeitsrechner und dem Hochladen per FTP auf den Server erledigt werden. Zumindest die gesetzten Dateirechte sollten in diesem Schritt geprüft werden, damit der Webserver die Dateien auch lesen und verarbeiten darf.


==== Erstinstallation von webtrees ====
Danach erfolgt die Ersteinrichtung wie im nachfolgenden Abschnitt beschrieben.
----
{{WT-ToDo|Beschreiben: Aktuelle Version runterladen, entpacken, hochladen per ftp}}


=== Ersteinrichtung ===
{{Halt|Bei der Speicherung der Programmdateien und Daten auf dem Server dürfen keine "Symbolischen Verknüpfungen"<ref>{{wikipedia-Link|Symbolische_Verknüpfung}}</ref> genutzt werden, da diese seit Version 2.0 nicht mehr unterstützt werden.<ref>Vgl. "Differences in 2.0" (https://webtrees.net/upgrade/2.0/) und "Error if Data on the web server contains a 'symbolic link' and the user clicks 'Clean up data folder' #2984" (https://github.com/fisharebest/webtrees/issues/2984).</ref>}}
----
Nach dem Kopieren der webtrees-Anwendungsdaten auf den Webserver muss für den Abschluss der Ersteinrichtung in einem Web-Browser die neue Site aufgerufen werden. Dies sollte unmittelbar passieren, damit niemand Unbefugtes Schaden anrichten kann.


==== Sprache festlegen ====
== Ersteinrichtung ==
----
Nach dem Kopieren der {{WT-Name}}-Anwendungsdaten auf den Webserver muss für den Abschluss der Ersteinrichtung in einem Web-Browser die neue Site aufgerufen werden. Dies sollte unmittelbar passieren, damit niemand Unbefugtes in der Zwischenzeit Schaden anrichten kann.
[[Datei:WT_2.1_Einrichtungsassistent1-Sprachauswahl.png|thumb|right|250px|Einrichtungsassistent (Seite 1) - Sprachauswahl]]
Wird die Konfigurationsdatei <code>data/config.ini.php</code> bei der Ausführung nicht gefunden, wird automatisch der Einrichtungsassistent angezeigt, der zunächst mit der Sprachauswahl beginnt.
{{-}}


==== Server überprüfen ====
Wird die Konfigurationsdatei <code>data/config.ini.php</code> bei der Ausführung nicht gefunden, wird automatisch der Einrichtungsassistent angezeigt. Die Konfigurationsdatei wird am Ende des Vorgangs automatisch erstellt, so dass zukünftig beim Start von {{WT-Name}} der Einrichtungsassistent nicht mehr erscheinen wird.
----
[[Datei:WT_2.1_Einrichtungsassistent2-Serverleistung.png|thumb|right|250px|Einrichtungsassistent (Seite 2) - Serverleistung prüfen]]
Es folgt die Prüfung der Serverleistung<ref>Anpassungen für den bereitgestellten Arbeitsspeicher und die Ausführungszeit müssen in der Konfiguration von [[#PHP|PHP]] über die php.ini-Direktiven [http://php.net/memory-limit memory_limit] und [http://php.net/max-execution-time max_execution_time] vorgenommen werden.</ref>: Die Speicher- und Prozessorzeit-Anforderungen sind abhängig von der Anzahl der Personen in Ihrem Stammbaum und den Möglichkeiten des genutzten Webhostings. Die Seite zeigt eine kurze Liste typischer Anforderungen:
* Kleiner Stammbaum (500 Personen): 16-32MB, 10-20 Sekunden
* Mittlerer Stammbaum (5000 Personen): 32-64MB, 20-40 Sekunden
* Großer Stammbaum (50000 Personen): 64-128MB, 40-80 Sekunden
{{-}}


==== Datenbankanbindung konfigurieren ====
=== Sprache festlegen ===
----
[[Datei:WT_2.1_Einrichtungsassistent1-Sprachauswahl.png|thumb|right|250px|Einrichtungsassistent (Seite 1) - Sprachauswahl|verweis=Special:FilePath/WT_2.1_Einrichtungsassistent1-Sprachauswahl.png]]
[[Datei:WT_2.1_Einrichtungsassistent3-DBMS-Auswahl.png|thumb|right|250px|Einrichtungsassistent (Seite 3) - DBMS-Auswahl]]
Der erste Schritt ist die Auswahl der Sprache, in der die Dialogführung im weiteren erfolgen soll.{{-}}
Zur Auswahl für die Verbindung zu einem Datenbank-Server stehen folgende DBMS:
* MySQL/MariaDB/Percona<ref>https://en.wikipedia.org/wiki/Percona_Server_for_MySQL</ref>,
* SQLite,
* PostgreSQL und
* Microsoft SQL Server


Die Unterstützung für PostgreSQL und Microsoft SQL Server ist experimentell und SQLite eignet sich nur für kleine Webseiten, zum Testen und zur Beurteilung. Insofern dürfte bei den meisten Installationen MySQL/MariaDB zu Einsatz kommen.
=== Server überprüfen ===
[[Datei:WT_2.1_Einrichtungsassistent2-Serverleistung.png|thumb|right|250px|Einrichtungsassistent (Seite 2) - Serverleistung prüfen|verweis=Special:FilePath/WT_2.1_Einrichtungsassistent2-Serverleistung.png]]
Es folgt die Prüfung der Serverleistung<ref>Anpassungen für den bereitgestellten Arbeitsspeicher und die Ausführungszeit müssen in der Konfiguration von [[#PHP|PHP]] über die php.ini-Direktiven [http://php.net/memory-limit memory_limit] und [http://php.net/max-execution-time max_execution_time] vorgenommen werden.</ref>: Die Speicher- und Prozessorzeit-Anforderungen sind abhängig von der Anzahl der Personen in Ihrem Stammbaum und den Möglichkeiten des genutzten Webhostings. Die Seite zeigt eine kurze Liste typischer Anforderungen:
* Kleiner Stammbaum (500 Personen): 16-32 MB Hauptspeicher, 10-20 Sekunden Prozessorzeit
* Mittlerer Stammbaum (5000 Personen): 32-64 MB Hauptspeicher, 20-40 Sekunden Prozessorzeit
* Großer Stammbaum (50000 Personen): 64-128 MB Hauptspeicher, 40-80 Sekunden Prozessorzeit
{{-}}
{{-}}


<gallery perrow=2 widths="250" caption="Einrichtungsassistent (Seite 4) - Konfiguration der Datenbank-Verbindung">
=== Datenbankanbindung konfigurieren ===
[[Datei:WT_2.1_Einrichtungsassistent3-DBMS-Auswahl.png|thumb|right|250px|Einrichtungsassistent (Seite 3) - DBMS-Auswahl|verweis=Special:FilePath/WT_2.1_Einrichtungsassistent3-DBMS-Auswahl.png]]
Bei den meisten Installationen dürfte MySQL<ref name="wpde_mysql" />/MariaDB<ref name="wpde_mariadb" /> zum Einsatz kommen (siehe dazu der oben stehende Abschnitt "[[Webtrees_Handbuch/Anleitung_für_Webmaster#Datenbank|Datenbank]]").
{{-}}<gallery perrow="2" widths="250" caption="Einrichtungsassistent (Seite 4) - Konfiguration der Datenbank-Verbindung">
Datei:WT_2.1_Einrichtungsassistent4-DBMS-MySQL.png|MySQL/MariaDB/Percona
Datei:WT_2.1_Einrichtungsassistent4-DBMS-MySQL.png|MySQL/MariaDB/Percona
Datei:WT_2.1_Einrichtungsassistent4-DBMS-SQLite.png|SQLite
Datei:WT_2.1_Einrichtungsassistent4-DBMS-SQLite.png|SQLite
Datei:WT_2.1_Einrichtungsassistent4-DBMS-PostgreSQL.png|PostgreSQL
Datei:WT_2.1_Einrichtungsassistent4-DBMS-PostgreSQL.png|PostgreSQL<ref name="wpde_postgresql" />
Datei:WT_2.1_Einrichtungsassistent4-DBMS-MSSQL.png|Microsoft SQL Server
Datei:WT_2.1_Einrichtungsassistent4-DBMS-MSSQL.png|Microsoft SQL Server<ref name="wpde_sqlserver" />
</gallery>
</gallery>


Je nach DBMS-Wahl müssen unterschiedliche Parameter für die Datenbank-Verbindung angegeben werden:
Je nach DBMS-Wahl müssen unterschiedliche Parameter für die Datenbank-Verbindung angegeben werden
* Servername (vermutlich localhost, da der Server meistens auf dem selben Host wie der Webserver ausgeführt wird)
* Servername (wahrscheinlich in vielen Fällen <code>localhost</code>, da der Datenbank-Server häufig auf dem selben Host wie der Webserver ausgeführt wird)
* Portnummer (Standard: MySQL=3306 / PostgreSQL=5432 / MS SQL=1433)
* Portnummer (Standard: MySQL=3306 / PostgreSQL=5432 / MS SQL=1433)
* Datenbankbenutzer und Passwort
* Datenbankbenutzer und Passwort
* ggf. ein Tabellenpräfix (wenn in einer Datenbank Tabellen unterschiedlicher Anwendungen abgelegt werden)
* ggf. ein Tabellenpräfix (wenn in einer Datenbank Tabellen für unterschiedliche Anwendungen angelegt werden)
Bei SQLite beschränkt es sich auf den Ablagepfad der Datei und das Tabellenpräfix.
Bei SQLite<ref name="wpde_sqlite" /> beschränken sich die Angaben auf den Ablagepfad der Datei und das Tabellenpräfix.


==== Administratorkonto einrichten ====
=== Administratorkonto einrichten ===
----
[[Datei:WT_2.1_Einrichtungsassistent5-Adminkonto.png|thumb|right|250px|Einrichtungsassistent (Seite 5) - Administratorkonto|verweis=Special:FilePath/WT_2.1_Einrichtungsassistent5-Adminkonto.png]]
[[Datei:WT_2.1_Einrichtungsassistent5-Adminkonto.png|thumb|right|250px|Einrichtungsassistent (Seite 5) - Administratorkonto]]
Zum Abschluss der Einrichtung werden noch Informationen für die Erstellung des Administratoren-Kontos abgefragt.
Zum Abschluss der Einrichtung werden noch Informationen für die Erstellung des Administratoren-Kontos abgefragt.
Danach erfolgt die Weiterleitung zum Formular, um den ersten [[Webtrees_Handbuch/Anleitung_für_Administratoren/Stammbäume#Einen_Stammbaum_erstellen|Stammbaum anzulegen]].
Danach erfolgt die Weiterleitung zum Formular, um den ersten [[Webtrees_Handbuch/Anleitung_für_Administratoren/Stammbäume#Einen_Stammbaum_erstellen|Stammbaum anzulegen]].{{-}}
{{-}}


==== config.ini.php ====
=== config.ini.php ===
----
Die Haupt-Konfigurationsdatei von {{WT-Name}} <code>data/config.ini.php</code> wird bei der Ersteinrichtung automatisch erstellt. Sie kann dann folgendermaßen aussehen:
Die Haupt-Konfigurationsdatei <code>data/config.ini.php</code> kann nach der Ersteinrichtung folgendermaßen aussehen:
<syntaxhighlight lang="php">
<syntaxhighlight lang="php">
; <?php return; ?> DO NOT DELETE THIS LINE
; <?php return; ?> DO NOT DELETE THIS LINE
Zeile 323: Zeile 428:
dbport="3306"
dbport="3306"
dbuser="webtrees"
dbuser="webtrees"
dbpass="Gemeimes-Passwort"
dbpass="Geheimes-Passwort"
dbname="webtrees"
dbname="webtrees"
tblpfx="wt_"
tblpfx="wt_"
Zeile 330: Zeile 435:
</syntaxhighlight>
</syntaxhighlight>


Es ist eingentlich eine INI-Datei<ref>{{wikipedia-Link|Initialisierungsdatei}}</ref> mit Schlüssel-Wert-Paaren, die in einer PHP-Datei verpackt wurde. Zur zusätzlichen Absicherung der Daten - neben dem [[#Zugriffsschutz|Verzeichnisschutz]] - ist die erste Zeile wichtig, da sie die Ausgabe im Browser verhindert. Weitere Details können auch dem Abschnitt zu [[#Pretty-URLs|Pretty-URLs]] entnommen werden.
Es ist eigentlich eine INI-Datei<ref>{{wikipedia-Link|Initialisierungsdatei}}</ref> mit Schlüssel-Wert-Paaren, die in einer PHP<ref name="wpde_php" />-Datei verpackt wurde. Zur zusätzlichen Absicherung der Daten - neben dem [[#Zugriffsschutz|Verzeichnisschutz]] - ist die erste Zeile wichtig, da sie die Ausgabe im Browser verhindert. Weitere Details können auch dem Abschnitt zu [[#Pretty-URLs|Pretty-URLs]] entnommen werden.
 
{{Infobox|Insbesondere beim Erstellen oder nachträglichen Ändern der Datei auf Windows-Systemen ist zu beachten, dass diese in der richtigen Kodierung - UTF-8<ref>{{wikipedia-Link|UTF-8}}</ref> (ohne Byte-order-Mark/BOM) - gespeichert und hochgeladen wird. Ansonsten kann es zu Fehlern kommen.<ref>Vgl. auch: https://webtrees.net/faq/config-ini-php/.</ref>}}
 
Möglichkeiten zum [[#Blockieren ganzer Netze oder Organisationen|Blockieren ganzer Netze oder Organisationen]] siehe Ausführungen im gleichnamigen Abschnitt weiter unten.
 
=== Test der Installation ===
Nachdem die Erstinstallation abgeschlossen ist, sollte in einem ersten Test die einwandfreie Funktion der Website geprüft werden.
 
{{WT-ToDo|Noch beschreiben: wie testet man am besten?}}


{{Infobox|Insbesondere beim Erstellen oder nachträglicher Änderung der Datei auf Windows-System ist zu beachten, dass diese in der richtigen Kodierung - UTF-8<ref>{{wikipedia-Link|UTF-8}}</ref> (ohne Byte-order-Mark/BOM) - gespeichert/hochgeladen wird. Ansonsten kann es zu Fehlern kommen.<ref>Vgl. auch: https://webtrees.net/faq/config-ini-php/.</ref>}}
==== Test mit dem Import einer GEDCOM-Datei ====


==== Test der Installation ====
==== Test der eMail-Funktion ====
----
Nachdem die Erstinstallation abgeschlossen ist,
sollte in einem ersten Test die einwandfreie Funktion der Website geprüft werden.
{{WT-ToDo|Noch beschreiben: wie testet man am besten? Hochladen von GEDCOM-Testdaten.}}


==== Installation von Erweiterungsmodulen ====
=== Installation von Erweiterungsmodulen ===
----
Nach dem erfolgreichen Test können nun noch [[Webtrees Handbuch/Anleitung für Webmaster/Erweiterungsmodule|Erweiterungsmodule]] installiert werden (siehe dazu den Abschnitt "[[Webtrees Handbuch/Anleitung für Webmaster/Erweiterungsmodule|Erweiterungsmodule]]"). Dies sollte schrittweise erfolgen, damit bei eventuell auftretenden Problemen das verursachende Erweiterungsmodul leichter identifiziert werden kann.
Nach dem erfolgreichen Test können nun noch [[Webtrees Handbuch/Anleitung für Webmaster/Erweiterungsmodule|Erweiterungsmodule]] installiert werden
(siehe dazu den Abschnitt "[[Webtrees Handbuch/Anleitung für Webmaster/Erweiterungsmodule|Erweiterungsmodule]]").
Dies sollte schrittweise erfolgen, damit bei eventuell auftretenden Problemen das verursachende Erweiterungsmodul leichter identifiziert werden kann.


Als Webmaster können Sie auf dem Server im Ordner "/modules_v4" installierte [[Webtrees Handbuch/Anleitung für Webmaster/Erweiterungsmodule|Erweiterungsmodule]] durch eine Umbenennung auf einfache Art deaktivieren. Dazu müssen Sie in den Ordnernamen einen "." (Punkt) einfügen, etwa indem Sie an den Ordnernamen ein ".disable" anhängen. Also indem Sie etwa den Ordner "jc-theme-justlight" in "jc-theme-justlight.disable" umbenennen. Solche Ordner sind dann für webtrees komplett unsichtbar. Durch das Entfernen des angehängten Namensbestandteils zu einem späteren Zeitpunkt, wird das Erweiterungsmodul wieder für webtrees sichtbar. Diese Funktion reicht somit tiefer als das Aktivieren oder Deaktivieren von [[Webtrees Handbuch/Anleitung für Webmaster/Erweiterungsmodule|Erweiterungsmodulen]] im Menü "[[Webtrees Handbuch/Anleitung für Administratoren/Module#Module|Module]]" durch einen Administrator und ist immer dann zu empfehlen, wenn vermutet wird, dass ein Erweiterungsmodul Fehler verursacht.
Als Webmaster können Sie auf dem Server im Ordner <code>/modules_v4</code> installierte [[Webtrees Handbuch/Anleitung für Webmaster/Erweiterungsmodule|Erweiterungsmodule]] durch eine Umbenennung auf einfache Art deaktivieren. Dazu müssen Sie in den Ordnernamen einen "." (Punkt) einfügen, etwa indem Sie an den Ordnernamen ein ".disable" anhängen. Also indem Sie etwa den Ordner <code>jc-theme-justlight</code> in <code>jc-theme-justlight.disable</code> umbenennen. Solche Ordner sind dann für {{WT-Name}} unsichtbar. Durch das Entfernen des angehängten Namensbestandteils zu einem späteren Zeitpunkt, wird das Erweiterungsmodul wieder für {{WT-Name}} sichtbar. Diese Funktion reicht somit tiefer als das Aktivieren oder Deaktivieren von [[Webtrees Handbuch/Anleitung für Webmaster/Erweiterungsmodule|Erweiterungsmodulen]] im Menü "[[Webtrees_Handbuch/Anleitung_für_Administratoren/Module#Alle_Module|Module]]" durch einen Administrator und ist immer dann zu empfehlen, wenn vermutet wird, dass ein Erweiterungsmodul Fehler verursacht.


=== Upgrade ===
== Upgrade ==
----
Eine Aktualisierung von {{WT-Name}} geht schnell und einfach. Falls der Kern von {{WT-Name}} auf einen neuen Versionsstand gebracht werden soll, stehen zwei verschiedene Wege zur Verfügung: das automatische und das manuelle Verfahren. Für die Aktualisierung eines Erweiterungsmoduls steht nur das manuelle Verfahren zur Verfügung.
Eine Aktualisierung von webtrees geht schnell und einfach. Falls der Kern von webtrees auf einen neuen Versionsstand gebracht werden soll, dann stehen zwei verschiedene Wege zur Verfügung:
das automatische und das manuelle Verfahren. Für die Aktualisierung eines Erweiterungsmoduls steht nur das manuelle Verfahren zur Verfügung.


==== Upgrade von webtrees ====
=== Upgrade von webtrees ===
----
[[Datei:WT 2.0 Update_verfügbar.png|thumb|right|600px|Hinweis auf eine neue Version|verweis=Special:FilePath/WT_2.0_Update_verfügbar.png]]
{| width="100%"
Das Vorliegen einer neuen Version wird dem Administrator in einer Hinweiszeile angezeigt. Es wird dringend empfohlen, die Installation zu aktualisieren, sobald eine neue Version von {{WT-Name}} zur Verfügung steht. Selbst kleinere Upgrades enthalten in der Regel eine erhebliche Anzahl von beseitigten Fehlern sowie Verbesserungen in der Bedienoberfläche oder Programmerweiterungen. Gefundene und behobene Sicherheitslücken führen immer zu einer neuen Version, die dann schnellstmöglich eingespielt werden sollte. Falls nicht sowieso regelmäßig Datensicherungen erstellt werden, sollte vor einem Update immer eine [[Webtrees Handbuch/Anleitung für Webmaster#Backup_der_genealogischen_Daten_und_der_Datenbank|Sicherung]] durchgeführt werden.
|-
{{-}}
| style="vertical-align:top;" |
Das Vorliegen einer neuen Version wird dem Administrator in einer Hinweiszeile angezeigt. Es wird dringend empfohlen, die Installation zu aktualisieren, sobald eine neue Version von webtrees zur Verfügung steht. Selbst kleinere Upgrades enthalten in der Regel eine erhebliche Anzahl von beseitigten Fehlern sowie Verbesserungen in der Bedienoberfläche oder Programmerweiterungen. Gefundene und behobene Sicherheitslücken führen immer zu einer neuen Version, die dann schnellstmöglich eingespielt werden sollte. Falls nicht sowieso regelmäßig Datensicherungen erstellt werden, sollte vor einem Update immer eine [[Webtrees Handbuch/Anleitung für Webmaster#Backup_der_genealogischen_Daten_und_der_Datenbank|Sicherung]] durchgeführt werden.
|[[Datei:WT 2.0 Update_verfügbar.png|thumb|right|600px|Hinweis auf eine neue Version]]
|}


===== Versionen von webtrees =====
==== Versionen von webtrees ====
----
Die Versionsnummern von webtrees in der Form x.y.z, also etwa 2.1.3, folgen folgendem Schema
Die Versionsnummern von webtrees in der Form x.y.z, also etwa 2.1.3, folgen folgendem Schema


* die erste Zahl "x" kennzeichnet eine Hauptversion, die nicht miteinander kompatible Versionen unterscheidet.
* die erste Zahl "x" kennzeichnet eine Hauptversion, die nicht miteinander kompatible Versionen unterscheidet.
Die Datenbankstruktur von webtrees in der Version 1 und die internen Schnittstellen der Module von webtrees passen nicht zur Version 2 von webtrees.
Die Datenbankstruktur von {{WT-Name}} in der Version 1 und die internen Schnittstellen der Module passen nicht zur Version 2. [[Webtrees Handbuch/Anleitung für Webmaster/Erweiterungsmodule|Erweiterungsmodule]] für {{WT-Name}} 1 funktionieren also nicht mit der Version 2 und umgekehrt. Ein Upgrade bei einem Wechsel der Hauptversion ist nur manuell möglich. Hierzu gibt es eine spezielle Anleitung und es müssen umfangreiche Vorbereitungen für das Upgrade getroffen werden.
[[Webtrees Handbuch/Anleitung für Webmaster/Erweiterungsmodule|Erweiterungsmodule]] für webtrees 1 funktionieren also nicht mit der Version 2 und umgekehrt. Ein Upgrade bei einem Wechsel der Hauptversion ist nur manuell möglich. Hierzu gibt es eine spezielle Anleitung und es müssen umfangreiche Vorbereitungen für das Upgrade getroffen werden.


* die zweite Zahl "y" kennzeichnet eine neue Version, die grundsätzlich neue Funktionen und geänderte interne Schnittstellen mit sich bringt.
* die zweite Zahl "y" kennzeichnet eine neue Version, die grundsätzlich neue Funktionen und geänderte interne Schnittstellen mit sich bringt.
[[Webtrees Handbuch/Anleitung für Webmaster/Erweiterungsmodule|Erweiterungsmodule]] können kompatibel sein, sind es aber wahrscheinlich eher nicht. Vor dem Einspielen eines Updates sollte also geprüft werden, ob alle im Einsatz befindlichen Erweiterungsmodule in einer kompatiblen Version vorliegen. Der Wechsel von Version 2.0 zur Version 2.1 etwa betrifft so viele interne Schnittstellen, dass die meisten [[Webtrees Handbuch/Anleitung für Webmaster/Erweiterungsmodule|Erweiterungsmodule]] angepasst werden müssen. Bei einem Wechsel der webtrees-Version kann es auch vorkommen, dass andere Versionen von PHP unterstützt werden, so dass der Webmaster gleichzeitig auch einen Wechsel der PHP-Version vornehmen kann oder muss.
[[Webtrees Handbuch/Anleitung für Webmaster/Erweiterungsmodule|Erweiterungsmodule]] können kompatibel sein, sind es aber wahrscheinlich eher nicht. Vor dem Einspielen eines Updates sollte also geprüft werden, ob alle im Einsatz befindlichen Erweiterungsmodule in einer kompatiblen Version vorliegen. Der Wechsel von Version 2.0 zur Version 2.1 etwa betrifft so viele interne Schnittstellen, dass die meisten [[Webtrees Handbuch/Anleitung für Webmaster/Erweiterungsmodule|Erweiterungsmodule]] angepasst werden müssen. Bei einem Wechsel der {{WT-Name}}-Version kann es auch vorkommen, dass andere Versionen von PHP unterstützt werden, so dass der Webmaster gleichzeitig auch einen Wechsel der PHP-Version vornehmen kann oder muss.


* die dritte Zahl "z" kennzeichnet eine Unterversion, die etwa gefundene Fehler behebt oder kleinere Anpassungen mit sich bringt.
* die dritte Zahl "z" kennzeichnet eine Unterversion, die etwa gefundene Fehler behebt oder kleinere Anpassungen mit sich bringt.
Im Normalfall werden die meisten [[Webtrees Handbuch/Anleitung für Webmaster/Erweiterungsmodule|Erweiterungsmodule]] von diesen Änderungen nicht betroffen sein und können deshalb weiter verwendet werden.
Im Normalfall werden die meisten [[Webtrees Handbuch/Anleitung für Webmaster/Erweiterungsmodule|Erweiterungsmodule]] von diesen Änderungen nicht betroffen sein und können deshalb weiter verwendet werden.


Eine Übersicht über alle bislang vorliegenden Versionen von webtrees ist im Kapitel [[Webtrees Handbuch/Allgemeine Erläuterung des Programms#Versionsgeschichte|"Allgemeine Erläuterung des Programms"]] aufgeführt.
Eine Übersicht über alle bislang vorliegenden Versionen von {{WT-Name}} ist im Kapitel [[Webtrees Handbuch/Allgemeine Erläuterung des Programms#Versionsgeschichte|"Allgemeine Erläuterung des Programms"]] aufgeführt.


===== Automatisches Upgrade =====
==== Automatisches Upgrade ====
----
[[Datei:WT 2.0 Aktualisierungsassistent Ablauf.png|thumb|right|600px|Protokoll des Aktualisierungsablaufs|verweis=Special:FilePath/WT_2.0_Aktualisierungsassistent_Ablauf.png]]
[[Datei:WT 2.0 Aktualisierungsassistent Ablauf.png|thumb|right|600px|Protokoll des Aktualisierungsablaufs]]
{{WT-Name}} hat die Fähigkeit, sich automatisch zu aktualisieren. Im Rhythmus von nicht weniger als 24 Stunden sucht {{WT-Name}} frühestens nach einer aktualisierten Version. Sollte ein Upgrade verfügbar sein, erscheint eine Hinweiszeile mit einem Link, sofern man als Administrator angemeldet ist. Durch einen Klick auf den Link kann der Administrator den Upgrade-Assistenten für das automatische Update nutzen. In der Hinweiszeile wird auch vermerkt, wann der Upgrade-Assistent zuletzt gelaufen ist. Bei Bedarf kann man durch einen Klick auf den Link eine sofortige Prüfung auf die Verfügbarkeit einer neueren Version anstoßen.
webtrees hat die Fähigkeit, sich automatisch zu aktualisieren. Alle 24 Stunden sucht webtrees nach einer aktualisierten Version. Sollte ein Upgrade verfügbar ist, dann erscheint eine Hinweiszeile mit einem Link, sofern man als Administrator angemeldet ist. Durch einen Klick auf den Link kann der Administrator den Upgrade-Assistenten für das automatische Update nutzen.


Automatische Upgrades sind von Berechtigungen und Ressourcen auf dem Server abhängig. Die verwendeten PHP-Skripte benötigen die Berechtigung
Automatische Upgrades sind von Berechtigungen und Ressourcen auf dem Server abhängig. Die verwendeten PHP-Skripte benötigen die Berechtigung
* Dateien vom [https://github.com/fisharebest/webtrees/releases webtrees-GitHub-Server] über eine gesicherte Kommunikation auf den webtrees-Server zu kopieren.
* Dateien vom [https://github.com/fisharebest/webtrees/releases webtrees-GitHub-Server] über eine gesicherte Kommunikation auf den {{WT-Name}}-Server zu kopieren.
* Dateien auf dem Server zu überschreiben. Wenn der Webserver Skripte als anonymer Benutzer ausführt, dann wird er keine Berechtigung haben, Dateien zu aktualisieren. Wenn Sie also aufgefordert werden, die Berechtigungen des Ordners /data auf 777 zu ändern, können Sie das automatische Upgrade nicht verwenden; sie müssen in diesem Fall dann ein [[Webtrees_Handbuch/Anleitung_für_Webmaster#Manuelles_Upgrade|manuelles Upgrade]] durchführen oder die Voraussetzungen für das automatische Upgrade schaffen.
* Dateien auf dem Server zu überschreiben. Wenn der Webserver Skripte als anonymer Benutzer ausführt, dann wird er keine Berechtigung haben, Dateien zu aktualisieren. Wenn Sie also aufgefordert werden, die Berechtigungen des Ordners <code>./data</code> auf 777 zu ändern, können Sie das automatische Upgrade nicht verwenden; sie müssen in diesem Fall dann ein [[Webtrees_Handbuch/Anleitung_für_Webmaster#Manuelles_Upgrade|manuelles Upgrade]] durchführen oder die Voraussetzungen für das automatische Upgrade schaffen.


Der Server muss ausreichend leistungsfähig sein, um das Upgrade abzuschließen, ohne CPU- und Speichergrenzen zu überschreiten. Der Server muss ungefähr 130 MB freien Speicherplatz haben, um die neue Version zu speichern und zu entpacken. Das Upgrade dauert normalerweise zwischen 15 und 60 Sekunden. Wenn nach fünf Minuten keine Antwort erfolgt ist, dann wurde wahrscheinlich ein CPU-Zeitbegrenzung erreicht und das Upgrade ist fehlgeschlagen.
Der Server muss ausreichend leistungsfähig sein, um das Upgrade abzuschließen, ohne CPU- und Speichergrenzen zu überschreiten. Der Server muss ungefähr 130 MB freien Speicherplatz haben, um die neue Version zu speichern und zu entpacken. Das Upgrade dauert normalerweise zwischen 15 und 60 Sekunden. Wenn nach fünf Minuten keine Antwort erfolgt ist, dann wurde wahrscheinlich eine CPU-Zeitbegrenzung erreicht und das Upgrade ist fehlgeschlagen.
 
{{-}}
{{Infobox|Wenn das automatische Upgrade aus irgendeinem Grund fehlschlägt, dann sollten Sie als Webmaster zuerst versuchen das zu Grunde liegende Problem zu lösen und dann ein manuelles Update durchführen. Das Verzeichnis "/data/tmp/upgrade" auf dem Server sollte in diesem Fall manuell gelöscht werden.}}
{{Infobox|Wenn das automatische Upgrade aus irgendeinem Grund fehlschlägt, sollten Sie als Webmaster zuerst versuchen das zu Grunde liegende Problem zu lösen und alternativ ein manuelles Update durchführen. Das Verzeichnis <code>./data/tmp/upgrade</code> auf dem Server sollte in diesem Fall manuell gelöscht werden.}}


{{WT-ToDo|Noch beschreiben: was muss der Webmaster genau tun, damit sein Server die benötigten Fähigkeiten hat}}
{{WT-ToDo|Noch beschreiben: was muss der Webmaster genau tun, damit sein Server die benötigten Fähigkeiten hat}}


Der automatische Upgrade-Prozess erfolgt in den folgenden Schritten
Der automatische Upgrade-Prozess erfolgt in den folgenden Schritten
[[Datei:WT_2.0_Aktualisierungsassistent_Warnung.png|thumb|right|600px|Warnung bei installierten Erweiterungsmodulen]]
[[Datei:WT_2.0_Aktualisierungsassistent_Warnung.png|thumb|right|600px|Warnung bei installierten Erweiterungsmodulen|verweis=Special:FilePath/WT_2.0_Aktualisierungsassistent_Warnung.png]]
# Falls die [[Webtrees_Handbuch/Anleitung_für_Webmaster/Erweiterungsmodule|Vesta-Erweiterungsmodule]] installiert sind, erfolgt ggf. eine Warnung, dass diese [[Webtrees Handbuch/Anleitung für Webmaster/Erweiterungsmodule|Erweiterungsmodule]] eventuell mit der neuen [[Webtrees_Handbuch/Anleitung_für_Webmaster#Versionen_von_webtrees|Version]] von webtrees nicht kompatibel sein könnten (siehe nebenstehende Abbildung). Hier sollte man also den Prozess ggf. abbrechen, wenn man erst die Kompatibilität prüfen möchte. Andere [[Webtrees Handbuch/Anleitung für Webmaster/Erweiterungsmodule|Erweiterungsmodule]] verwenden keine solche Benachrichtigungsfunktion. Hilfreich ist immer ein Blick ins webtrees-Forum und auf die GitHub-Seiten der installierten [[Webtrees Handbuch/Anleitung für Webmaster/Erweiterungsmodule#Übersicht_über_die_Erweiterungsmodule|Erweiterungsmodule]]. Ein Upgrade auf einem webtrees-Testserver kann die Sicherheit bringen, dass sich die installierten [[Webtrees Handbuch/Anleitung für Webmaster/Erweiterungsmodule|Erweiterungsmodule]] mit der neuen webtrees-Version vertragen werden; erst danach sollte dann das Upgrade im Produktivsystem eingespielt werden.
# Falls die [[Webtrees_Handbuch/Anleitung_für_Webmaster/Erweiterungsmodule|Vesta-Erweiterungsmodule]] installiert sind, erfolgt ggf. eine Warnung, dass diese [[Webtrees Handbuch/Anleitung für Webmaster/Erweiterungsmodule|Erweiterungsmodule]] eventuell mit der neuen [[Webtrees_Handbuch/Anleitung_für_Webmaster#Versionen_von_webtrees|Version]] von {{WT-Name}} nicht kompatibel sein könnten (siehe nebenstehende Abbildung). Hier sollte man also den Prozess ggf. abbrechen, wenn man erst die Kompatibilität prüfen möchte. Andernfalls werden die Vesta-Module nach dem Upgrade automatisch deaktiviert. Andere [[Webtrees Handbuch/Anleitung für Webmaster/Erweiterungsmodule|Erweiterungsmodule]] verwenden keine solche Benachrichtigungsfunktion. Hilfreich ist immer ein Blick ins {{WT-Name}}-Forum und auf die GitHub-Seiten der installierten [[Webtrees_Handbuch/Anleitung_für_Webmaster/Erweiterungsmodule#.C3.9Cbersicht_.C3.BCber_bekannte_Erweiterungsmodule|Erweiterungsmodule]]. Ein Upgrade auf einem {{WT-Name}}-Testserver kann die Sicherheit bringen, dass sich die installierten [[Webtrees Handbuch/Anleitung für Webmaster/Erweiterungsmodule|Erweiterungsmodule]] mit der neuen {{WT-Name}}-Version vertragen werden; erst danach sollte dann das Upgrade im Produktivsystem eingespielt werden.
# Danach wird ein Verzeichnis "/data/tmp/upgrade" angelegt, in das temporär die neuen Dateien geladen werden.
# Danach wird ein Verzeichnis <code>./data/tmp/upgrade</code> angelegt, in das temporär die neuen Dateien geladen werden.
# Nun wird geprüft, ob es noch Änderungen von Daten in den Stammbäumen gibt, die noch nicht vom Moderator freigegeben wurden (siehe Abschnitt [[Webtrees_Handbuch/Anleitung_für_Moderatoren|"Freigeben von Änderungen durch einen Moderator"]]). Der Upgrade-Prozess bricht aber nicht ab, wenn noch solche Änderungen vorliegen, es erfolgt lediglich eine Warnmeldung.
# Nun wird geprüft, ob es noch Änderungen von Daten in den Stammbäumen gibt, die noch nicht vom Moderator freigegeben wurden (siehe Abschnitt [[Webtrees_Handbuch/Anleitung_für_Moderatoren|"Freigeben von Änderungen durch einen Moderator"]]). Der Upgrade-Prozess bricht aber nicht ab, wenn noch solche Änderungen vorliegen, es erfolgt lediglich eine Warnmeldung.
# Es werden alle Stammbäume automatisch exportiert, d.h. es wird für jeden Stammbaum im Verzeichnis "/data" eine aktuelle GEDCOM-Datei angelegt (der Dateiname enthält das Datum des Exports).
# Alle Stammbäume werden automatisch exportiert, d.h. es wird für jeden Stammbaum im Verzeichnis <code>./data</code> eine aktuelle GEDCOM-Datei angelegt (der Dateiname enthält das Datum des Exports).
# Vom [https://github.com/fisharebest/webtrees/releases webtrees-GitHub-Server] wird die neue webtrees-Version als zip-Datei in das im Schritt 2 angelegte Verzeichnis kopiert.
# Vom [https://github.com/fisharebest/webtrees/releases {{WT-Name}}-GitHub-Server] wird die neue {{WT-Name}}-Version als zip-Datei in das im Schritt 2 angelegte Verzeichnis kopiert.
# Die zip-Datei wird in das temporäre Verzeichnis entpackt und die entpackten Dateien werden dann an die Zielstelle kopiert.
# Dateien in den Verzeichnissen <code>./app</code>, <code>./resources</code> und <code>./vendor</code>, die nicht mehr benötigt werden, werden gelöscht.
# Dateien in den Verzeichnis "/app", "/resources" und "/vendor", die nicht mehr benötigt werden, werden gelöscht.
# Die zip-Datei wird in das temporäre Verzeichnis entpackt und die entpackten Dateien werden dann an das Zielverzeichnis kopiert.
# Zum Abschluss öffnet sich das Verwaltungsmenü. Hier kann vom Administrator kontrolliert werden, ob die neue Version korrekt angezeigt wird.
# Zum Abschluss öffnet sich das Verwaltungsmenü. Hier kann vom Administrator kontrolliert werden, ob die neue Version korrekt angezeigt wird.


===== Manuelles Upgrade =====
==== Manuelles Upgrade ====
----
Beim manuellen Upgrade<ref>Vgl. auch https://webtrees.net/upgrade/manual/</ref> lädt der Webmaster eine neue, freigegebene Version von {{WT-Name}} auf einen lokalen Rechner herunter und entpackt diese Version dort. Falls [[Webtrees Handbuch/Anleitung für Webmaster/Erweiterungsmodule|Erweiterungsmodule]] installiert sind, sollte überprüft werden, ob diese mit der neuen Version von {{WT-Name}} kompatibel sind. Eventuell stehen für diese Module auch Upgrades zur Verfügung.
Beim manuellen Upgrade lädt der Webmaster eine neue, freigegebene Version von webtrees auf einen lokalen Rechner herunter und entpackt diese Version dort. Falls [[Webtrees Handbuch/Anleitung für Webmaster/Erweiterungsmodule|Erweiterungsmodule]] installiert sind, sollte überprüft werden, ob diese mit der neuen Version von webtrees kompatibel sind. Eventuell stehen für diese Module auch Upgrades zur Verfügung.


Dann werden alle Ordner und Dateien mit einem [https://de.wikipedia.org/wiki/Kategorie:FTP-Client ftp-Programm] in das webtrees-Verzeichnis auf dem Webserver kopiert. Man kann zuvor die Verzeichnisse "/app", "/resources" und "/vendor" löschen, damit alle nicht mehr benötigten Dateien entfernt werden. Während die neuen Dateien hochgeladen werden, würde ein Besucher der Website auf eine Mischung aus alten und neuen Dateien stoßen. Dies könnte ein unvorhersehbares Verhalten oder Fehler verursachen. Um dies zu verhindern, muss vor dem Kopieren die Datei "/data/offline.txt.disable" in "/data/offline.txt" umbenannt werden. Solange diese Datei existiert, werden die Besucher der Website eine Meldung sehen:
Während neue Dateien hochgeladen werden, würde ein Besucher der Website auf eine Mischung aus alten und neuen Dateien stoßen. Dies würde ein unvorhersehbares Verhalten oder Fehler verursachen. Um dies zu verhindern, muss vor dem Kopieren die Datei <code>/data/offline.txt</code> angelegt werden. Solange diese Datei existiert, werden die Besucher der Website eine Meldung sehen wie "Die Webseite befindet sich im Wartungsmodus. Sie sollten es in einigen Minuten erneut versuchen.". Wenn die Datei "offline.txt" leer ist, wird diese Standardnachricht angezeigt; alternativ kann man eine besondere Nachricht in diese Datei schreiben, so dass die Besucher ersatzweise diese Meldung sehen. Man sollte als nächstes die Verzeichnisse <code>/app</code>, <code>/resources</code> und <code>/vendor</code> löschen, damit alte Dateien entfernt werden. Dann werden alle Ordner und Dateien mit einem [https://de.wikipedia.org/wiki/Kategorie:FTP-Client ftp-Programm] in das {{WT-Name}}-Verzeichnis auf dem Webserver kopiert. Nach dem Kopieren der Dateien auf den Server muss die Datei <code>/data/offline.txt</code> wieder entfernt werden. Auch wenn der Administrator in der Systemsteuerung ein anderes Verzeichnis für den Datenordner gewählt haben sollte, der Speicherort für diese Datei ist immer im Verzeichnis <code>/data</code>.
"Die Webseite befindet sich im Wartungsmodus. Sie sollten es in einigen Minuten erneut versuchen.". Wenn die Datei "offline.txt" leer ist, dann wird diese Standardnachricht angezeigt;
alternativ kann man eine besondere Nachricht in diese Datei schreiben, so dass die Besucher dann stattdessen diese Meldung erhalten. Nach dem Kopieren der Dateien auf den Server muss die Datei wieder in "/data/offline.txt.disable" umbenannt werden.
Auch wenn der Administrator in der Systemsteuerung ein anderes Verzeichnis für den Datenordner gewählt haben sollte, der Speicherort für diese Datei ist immer im Verzeichnis "/data".


Beim Wechsel von einer Unterversion zu einer anderen, kann man üblicherweise den Inhalt der Dateien auf dem Server einfach überschreiben. Beim Wechsel zu einer neuen Version oder gar einer Hauptversion empfiehlt es sich alle Dateien im webtrees-Verzeichnis auf dem Server zuvor zu löschen. Davon ausgenommen ist die Datei .htaccess im Stammverzeichnis von webtrees und die Dateien im Unterverzeichnis "/data".
Beim Wechsel von einer Unterversion zu einer anderen, kann man üblicherweise den Inhalt der Dateien auf dem Server einfach überschreiben. Beim Wechsel zu einer neuen Version oder gar einer Hauptversion empfiehlt es sich alle Dateien im {{WT-Name}}-Verzeichnis auf dem Server zuvor zu löschen. Davon ausgenommen ist die Datei <code>.htaccess</code> im Stammverzeichnis von {{WT-Name}} und die Dateien im Unterverzeichnis <code>/data</code>.
{{WT-ToDo|Wie verläuft ein Upgrade, wenn man [https://de.wikipedia.org/wiki/Composer_(Paketverwaltung) Composer] einsetzt?}}


{{Infobox|
{{Infobox|
Wenn im Zuge eines Upgrades auch Datenbank-Upgrades erforderlich sind, dann werden diese automatisch durchgeführt, sobald ein Nutzer die Website das nächste Mal besucht. Aus diesem Grund kann es dann länger dauern, bis die erste Seite angezeigt wird.}}
Wenn im Zuge eines Upgrades auch Datenbank-Upgrades erforderlich sind, dann werden diese automatisch durchgeführt, sobald ein Nutzer die Website das nächste Mal besucht. Aus diesem Grund kann es dann länger dauern, bis die erste Seite angezeigt wird.}}


===== Upgrade in Abhängigkeit von der Ausgangsversion =====
==== Upgrade in Abhängigkeit von der Ausgangsversion ====
----
Wenn Sie derzeit eine der unten aufgeführten älteren Versionen von {{WT-Name}} verwenden, gibt es beim Upgrade auf eine neuere Version zusätzliche Dinge zu beachten. Da die Hinweise, die bei einem solchen Versionswechsel zu beachten sind, teilweise recht umfangreich sind und den Umfang dieses Abschnittes sprengen würden, sind diese teilweise auf Unterseiten ausgelagert
Wenn Sie derzeit eine der unten aufgeführten Versionen von webtrees verwenden, gibt es beim Upgrade zusätzliche Dinge zu beachten.


* webtrees bis 2.0.24: beim Update auf die Version 2.1 ändern sich in Vorbereitung auf den GEDCOM-Standard 7.0 einige [[Webtrees_Handbuch/Anleitung_für_Webmaster/Anleitung_Upgrade_21|Datenfelder]]
* [[Webtrees_Handbuch/Anleitung_für_Webmaster/Anleitung_Upgrade_21|Upgrade auf die Version 2.1]]
* webtrees 2.0.8: Diese Version enthält einen Fehler im Auto-Upgrade-Code; diese Version wurde schnell zurückgezogen, aber einige Benutzer haben sie installiert. Um den automatischen Upgrade-Assistenten wieder verwenden zu können, müssen zwei Dateien bearbeitet werden
* [[Webtrees_Handbuch/Anleitung_für_Webmaster/Anleitung_Upgrade_20|Upgrade auf die Version 2.0]]
** Bearbeiten Sie zunächst "/app/Factories/FilesystemFactory.php" und ändern Sie Zeile 40 von /../../..in /../…“. Dies behebt den Fehler.
 
** Bearbeiten Sie zweitens "/app/Webtrees.php" und ändern Sie Zeile 101 von „2.0.8“ in „2.0.7“. Dadurch wird das automatische Upgrade wieder aktiviert.
oder es wird auf die englischsprachigen Originalseiten verwiesen. Im folgenden finden Sie eine Liste der Ausgangsversionen mit den Hinweisen, was zu beachten ist, wenn Sie von einer solchen Version auf eine neuere Version wechseln wollen.
* webtrees 1.7.10 – 1.7.20: Es sind vor einem manuellen Upgrade auf die Version 2 diverse Änderungen an den Einstellungen, der Serverkonfiguration und eventuell auch Anpassungen in den genealogischen Daten notwendig. Daher sollte Sie unbedingt diese [[Webtrees_Handbuch/Anleitung_für_Webmaster/Anleitung_Upgrade_20|Anleitung]] vor dem Upgrade beachten.
 
* webtrees 1.4.0 – 1.7.9: Es muss vor einem Umstieg auf die Version 2 erst ein Upgrade auf die Version 1.7.20 erfolgen.
* 2.1.8 und 2.1.9: Diese Versionen enthalten einen Fehler im Auto-Upgrade-Code. Das automatische Upgrade scheint erfolgreich ausgeführt zu werden, es werden jedoch keine Dateien installiert. Daher wurden diese Versionen bei GitHub schnell ersetzt, aber einige Benutzer hatten sie bereits installiert. Um den automatischen Upgrade-Assistenten wieder verwenden zu können, muss eine Datei ersetzt werden: <code>app/Http/RequestHandlers/UpgradeWizardStep.php</code>. Die aktualisierte Version dieser Datei kann [https://raw.githubusercontent.com/fisharebest/webtrees/3bcf98433336b5a90f37394d98c25184064324ae/app/Http/RequestHandlers/UpgradeWizardStep.php hier] heruntergeladen werden.
* webtrees 1.0.0 – 1.3.2: Vor einem Upgrade muss zuerst die „Medien-Firewall“ deaktiviert werden (siehe [https://webtrees.net/upgrade/media-firewall/ Anleitung] in englischer Sprache); dann muss ein manuelles Upgrade auf die Version 1.7.20 durchgeführt werden.
* bis 2.0.26: beim Update auf die Version 2.1 ändern sich in Vorbereitung auf den GEDCOM-Standard 7.0 einige [[Webtrees_Handbuch/Anleitung_für_Webmaster/Anleitung_Upgrade_21|Datenfelder]]
* phpGedView: In webtrees 1.7.20 ist ein spezieller Migrationsassistent für das Vorgänger-Programm phpGedView integriert. Sie sollten daher diese Version als neue Instanz neben phpGedView installieren und dann den Migrationsassistenten nutzen. Beachten Sie, dass Sie keine funktionierende phpGedView-Installation benötigen. Sie benötigen nur die Datenbank und den Ordner "index". Nähere Hinweise finden Sie in der englischsprachigen [https://webtrees.net/upgrade/phpgedview/ Dokumentation].
* 2.0.8: Diese Version enthält einen Fehler im Auto-Upgrade-Code, daher wurde die Version bei GitHub schnell ersetzt, aber einige Benutzer hatten sie bereits installiert. Um den automatischen Upgrade-Assistenten wieder verwenden zu können, müssen zwei Dateien bearbeitet werden
** Bearbeiten Sie zunächst <code>/app/Factories/FilesystemFactory.php</code> und ändern Sie Zeile 40 von <code>/../../..</code> in <code>/../…</code>. Dies behebt den Fehler.
** Bearbeiten Sie zweitens <code>/app/Webtrees.php</code> und ändern Sie Zeile 101 von „2.0.8“ in „2.0.7“. Dadurch wird das automatische Upgrade wieder aktiviert.
* 1.7.10 – 1.7.20: Es sind vor einem manuellen Upgrade auf die Version 2 diverse Änderungen an den Einstellungen, der Serverkonfiguration und eventuell auch Anpassungen in den genealogischen Daten notwendig. Daher sollten Sie unbedingt diese [[Webtrees_Handbuch/Anleitung_für_Webmaster/Anleitung_Upgrade_20|Anleitung]] vor dem Upgrade beachten.
* 1.4.0 – 1.7.9: Es muss vor einem Umstieg auf die Version 2 erst ein Upgrade auf die Version 1.7.20 erfolgen.
* 1.0.0 – 1.3.2: Vor einem Upgrade muss zuerst die „Medien-Firewall“ deaktiviert werden (siehe [https://webtrees.net/upgrade/media-firewall/ Anleitung] in englischer Sprache); dann muss ein manuelles Upgrade auf die Version 1.7.20 durchgeführt werden.
* phpGedView: In {{WT-Name}} 1.7.20 ist ein spezieller Migrationsassistent für das Vorgänger-Programm phpGedView integriert. Sie sollten daher diese Version als neue Instanz neben phpGedView installieren und dann den Migrationsassistenten nutzen. Beachten Sie, dass Sie keine funktionierende phpGedView-Installation benötigen. Sie benötigen nur die Datenbank und den Ordner "index". Nähere Hinweise finden Sie in der englischsprachigen [https://webtrees.net/upgrade/phpgedview/ Dokumentation].


{{Infobox|
{{Infobox|
;Alle hier eventuell benötigten älteren Versionen von webtrees findet man auf der [https://webtrees.net/download webtrees-Download-Übersichtsseite].}}
;Alle hier eventuell benötigten älteren Versionen von webtrees findet man auf der [https://webtrees.net/download webtrees-Download-Übersichtsseite].}}


==== Upgrade eines Erweiterungsmoduls ====
=== Upgrade eines Erweiterungsmoduls ===
----
Wenn eines der [[Webtrees Handbuch/Anleitung für Webmaster/Erweiterungsmodule|Erweiterungsmodule]] in einer neuen Version vorliegt, erhält der Administrator beim Aufruf der Verwaltungsseite eine entsprechende Nachricht.
Wenn eines der [[Webtrees Handbuch/Anleitung für Webmaster/Erweiterungsmodule|Erweiterungsmodule]] in einer neuen Version vorliegt, erhält der Administrator beim Aufruf der Verwaltungsseite eine entsprechende Nachricht.
{{WT-ToDo|Noch beschreiben:<br>wie findet man heraus welches Erweiterungsmodul die Meldung erzeugt hat und wo man die aktuellere Version findet}}
{{WT-ToDo|Noch beschreiben:<br>wie findet man heraus welches Erweiterungsmodul die Meldung erzeugt hat und wo man die aktuellere Version findet}}
Zeile 444: Zeile 541:
Zum Abschluss muss im Browser das Fenster mit webtrees erneut geladen, d.h. aufgefrischt werden, damit die Änderung sichtbar wird.
Zum Abschluss muss im Browser das Fenster mit webtrees erneut geladen, d.h. aufgefrischt werden, damit die Änderung sichtbar wird.


{{Vorlage:Warnung|Laden Sie immer nur freigegebene Versionen von [[Webtrees Handbuch/Anleitung für Webmaster/Erweiterungsmodule|Erweiterungsmodulen]] herunter (Releases), nie Zwischenstände im Entwicklungszustand!}}
{{Vorlage:Warnung|Laden Sie für den Einsatz in einem Produktivsystem immer nur freigegebene Versionen von [[Webtrees Handbuch/Anleitung für Webmaster/Erweiterungsmodule|Erweiterungsmodulen]] herunter (Releases), nie Zwischenstände im Entwicklungszustand!}}


=== Pretty-URLs ===
== Pretty-URLs ==
----
Internet-Adressen, wie <code><nowiki>https://musterfamilie.de</nowiki></code>, werden für Unterseiten durch weitere Bestandteile ergänzt. Für {{WT-Name}} gibt es dabei zwei mögliche Varianten, wie diese Adressen aussehen können. In ihrer Funktion sind sie identisch. Die URL-Varianten sind<ref>Übersetzung der Seite https://webtrees.net/faq/urls/.</ref>
Internet-Adressen, wie "<nowiki>https://musterfamilie.de</nowiki>", werden für Unterseiten durch weitere Bestandteile ergänzt. Für webtrees gibt es dabei zwei mögliche Varianten, wie diese Adressen aussehen können. In ihrer Funktion sind sie identisch. Die URL-Varianten sind<ref>Übersetzung der Seite https://webtrees.net/faq/urls/.</ref>
* Standard-URL: <pre>https://musterfamilie.de/webtrees/index.php?route=/tree/demo</pre>
* Standard-URL: <pre>https://musterfamilie.de/webtrees/index.php?route=/tree/demo</pre>
* Pretty-URL<ref>{{wikipedia-Link|Clean URL}}</ref>: <pre>https://musterfamilie.de/webtrees/tree/demo</pre>
* Pretty-URL<ref>{{wikipedia-Link|Clean URL}}</ref>: <pre>https://musterfamilie.de/webtrees/tree/demo</pre>


Die zweite Variante hat den Vorteil, dass sie keinen Rückschluss darüber zulässt, welche Technik hinter der Website steckt (bei der ersten Variante erkennt man sofort, dass PHP verwendet wird). Das ist aus Sicherheitsgründen zu bevorzugen. Und die zweite Variante ist auch für Menschen einfacher zu lesen. Um Pretty-URLs ("hübsche URLs") zu aktivieren, benötigen Sie zwei Dinge
Die zweite Variante hat den Vorteil, dass sie keinen Rückschluss darüber zulässt, welche Technik hinter der Website steckt (bei der ersten Variante erkennt man sofort, dass PHP verwendet wird). Daher ist die zweite Variante aus Sicherheitsgründen zu bevorzugen. Und diese Variante ist auch für Menschen einfacher zu lesen. Um Pretty-URLs ("hübsche URLs") zu aktivieren, benötigen Sie zwei Dinge


# Sie müssen Ihren Webserver so konfigurieren, dass er "Pretty-URLs" akzeptiert und sie an '''webtrees''' weiterleitet. Die genaue Konfiguration ist bei jedem Server anders.<br>Die Grundkonfiguration ist wie folgt
# Sie müssen den Webserver so konfigurieren, dass er "Pretty-URLs" akzeptiert und diese an {{WT-Name}} weiterleitet. Die genaue Konfiguration ist bei jedem Webserver anders (Apache<ref>{{Wikipedia-Link|Apache_HTTP_Server}}</ref>, NGINX<ref>{{Wikipedia-Link|Nginx}}</ref>, IIS<ref>{{Wikipedia-Link|Microsoft_Internet_Information_Services}}</ref>, ...).<br>Die Grundkonfiguration ist wie folgt
#* Statische Dateien werden in <code>/public</code> aufbewahrt. Diese können direkt ausgeliefert werden, wobei lange expires-Header verwendet werden.
#* Statische Dateien werden in <code>/public</code> aufbewahrt. Diese können direkt ausgeliefert werden, wobei lange expires-Header verwendet werden.
#* Dynamische Seiten werden von <code>index.php</code> generiert. Alle nicht-statischen URLs sollten auf <code>/index.php</code> abgebildet werden.
#* Dynamische Seiten werden von <code>index.php</code> generiert. Alle nicht-statischen URLs sollten auf <code>/index.php</code> abgebildet werden.
#* Andere Dateien und Ordner sind privat und sollten nicht zugänglich gemacht werden, z. B. <code>/app</code>, <code>/data</code>, <code>/modules</code>, <code>/resources</code>, <code>/vendor</code>.
#* Andere Dateien und Ordner sind privat und sollten nicht zugänglich sein, z. B. <code>/app</code>, <code>/data</code>, <code>/modules_v4</code>, <code>/resources</code>, <code>/vendor</code>.
# Sie müssen '''webtrees''' anweisen, Pretty-URLs zu erzeugen. Dazu müssen Sie zwei Zeilen in der Datei [[Webtrees_Handbuch/Anleitung_für_Webmaster#config.ini.php|data/config.ini.php]] hinzufügen bzw. ändern:
# Sie müssen {{WT-Name}} anweisen, Pretty-URLs zu erzeugen. Dazu müssen in der Datei [[Webtrees_Handbuch/Anleitung_für_Webmaster#config.ini.php|<code>data/config.ini.php</code>]] zwei Zeilen hinzugefügt oder geändert werden:
<syntaxhighlight lang="ini">
<syntaxhighlight lang="ini">
base_url="https://musterfamilie.de/webtrees"
base_url="https://musterfamilie.de/webtrees"
Zeile 464: Zeile 560:
</syntaxhighlight>
</syntaxhighlight>


Nachdem Sie Pretty-URLs aktiviert haben, erkennt '''webtrees''' weiterhin die Standard-URLs. Alle Lesezeichen und Suchmaschinen-Links funktionieren also weiterhin.
Nachdem Sie Pretty-URLs aktiviert haben, erkennt {{WT-Name}} weiterhin die Standard-URLs. Alle bereits vorhandenen Lesezeichen und Suchmaschinenverweise funktionieren also weiterhin.


==== Beispiel-Konfiguration für NGINX ====
=== Beispiel-Konfiguration für NGINX ===
----
Hier ein Beispiel für eine NGINX-Konfiguration für {{WT-Name}}, die in einem Unterordner <code>/webtrees/</code> installiert ist.
Hier ein Beispiel für eine NGINX-Konfiguration für '''webtrees''', die in einem Unterordner <code>/webtrees/</code> installiert ist.
<syntaxhighlight lang="nginx">
<syntaxhighlight lang="nginx">
# Static files have versions in their URLs, and can be cached indefinitely.
# Static files have versions in their URLs, and can be cached indefinitely.
Zeile 513: Zeile 608:




==== Beispiel-Konfiguration für Apache ====
=== Beispiel-Konfiguration für Apache ===
----
Unterstützt der Server [[Webtrees_Handbuch/Anleitung_für_Webmaster#.htaccess|.htaccess]]-Dateien? Um dies zu testen, versuchen Sie, die {{WT-Name}}-Konfigurationsdatei im Browser anzuzeigen (z. B. <code><nowiki>https://musterfamilie.de/data/config.ini.php</nowiki></code>). Wenn <code>.htaccess</code>-Dateien unterstützt werden, erhalten Sie den Fehler "403/Access-denied"<ref>{{Wikipedia-Link|HTTP-Statuscode}}</ref>. Wenn nicht, dann sehen Sie eine Seite, die nur ein Semikolon enthält.
Unterstützt der Server [[Webtrees_Handbuch/Anleitung_für_Webmaster#.htaccess|.htaccess]]-Dateien? Um dies zu testen, versuchen Sie, die webtrees-Konfigurationsdatei im Browser anzuzeigen (z. B. <code>https://<Ihre.site.com>/data/config.ini.php</code>). Wenn .htaccess-Dateien unterstützt werden, erhalten Sie den Fehler "403/Access-denied". Wenn nicht, dann sehen Sie eine Seite, die nur ein Semikolon enthält.
 
Speichern Sie die folgende <code>.htaccess</code>-Datei im Root-Ordner <code>/webtrees</code>:
<syntaxhighlight lang="apacheconf">
### .htaccess file for webtrees


Speichern Sie die folgende <code>.htaccess</code>-Datei im webtrees-Ordner:
<syntaxhighlight lang="ApacheConf">
<IfModule mod_rewrite.c>
<IfModule mod_rewrite.c>
   RewriteEngine On
   RewriteEngine On
Zeile 541: Zeile 637:
</syntaxhighlight>
</syntaxhighlight>


Ändern Sie den Eintrag für <code>RewriteBase</code> so, dass er mit dem Pfadteil der webtrees-URL übereinstimmt; wenn sie '''webtrees''' in einer Subdomäne installiert haben, etwa "<nowiki>https://webtrees.musterfamilie.de</nowiki>", dann lautet dieser Eintrag <code>RewriteBase /</code>.
Ändern Sie den Eintrag für <code>RewriteBase</code> so, dass er mit dem Pfadteil der {{WT-Name}}-URL übereinstimmt; wenn {{WT-Name}} in einer Subdomäne installiert wurde, etwa <code><nowiki>https://webtrees.musterfamilie.de</nowiki></code>, dann lautet dieser Eintrag <code>RewriteBase /</code>.


=== Datensicherheit und Datenschutz ===
== Datensicherheit und Datenschutz ==
----


==== Sichere Kommunikationsverbindung ====
=== Sichere Kommunikationsverbindung ===
----
https ...  
https ...  


==== Logfile-Überwachung ====
=== Logfile-Überwachung ===
----
 
=== Zugriffsschutz ===
 
==== Dateirechte ====
 
==== .htaccess ====
<code>.htaccess</code><ref>{{Wikipedia-Link|.htaccess}}</ref> (englisch hypertext access „Hypertext-Zugriff“) ist eine Konfigurationsdatei auf einem Webservern wie Apache<ref>{{Wikipedia-Link|Apache_HTTP_Server}}</ref>. In dieser Datei können verzeichnisbezogene Regeln aufgestellt werden.
 
Wenn man einen Apache-Webserver nutzt, kann eine <code>.htaccess</code>-Datei mit einem Texteditor erstellt und in das Root-Verzeichnis von {{WT-Name}} kopiert werden. Ein Beispiel dazu, das Pretty-URLs erlaubt, ist im Abschnitt "[[Webtrees Handbuch/Anleitung für Webmaster#Pretty-URLs|Pretty-URLs]]" in diesem Kapitel beschrieben.
 
Beispielsweise kann man mit den Festlegungen in der <code>.htaccess</code>-Datei ein Verzeichnis oder einzelne Dateien durch HTTP-Authentifizierung vor unberechtigten Zugriffen schützen. Auch Fehlerseiten (wie die Seite "404"<ref>{{Wikipedia-Link|HTTP-Statuscode}}</ref>) oder Weiterleitungen innerhalb des Servers lassen sich darin festlegen, ohne dass der Webserver neu gestartet werden muss; Änderungen in der <code>.htaccess</code>-Datei treten sofort in Kraft, weil die Datei bei jeder Anfrage an den Webserver ausgewertet wird. Festlegungen in .<code>htaccess</code> gelten für das Verzeichnis, in dem die Datei gespeichert ist, und in allen Unterverzeichnissen; diese Festlegungen können aber in den Unterverzeichnissen überschrieben werden.
 
Um etwa im {{WT-Name}}-Ordner <code>/data</code> den Zugriff auf die dort liegende Mediendateien und ggf. auch <code>.ged</code>-Dateien von außen einzuschränken, kann man dort eine <code>.htaccess</code>-Datei mit dem folgenden Inhalt hinterlegen:
<syntaxhighlight lang="apacheconf">
order allow,deny
deny from all
</syntaxhighlight>
 
Mit der ersten Zeile wird festgelegt, dass zuerst alle "allow"-Regeln bearbeitet werden und dann alle "deny"-Regeln<ref>siehe Dokumentation der [https://httpd.apache.org/docs/trunk/mod/mod_access_compat.html#order Order Directive]</ref>. Die Ablehnung von Zugriffen ist damit der Standard. Mit der zweiten Zeile wird der Zugriff für alle externen Rechner gesperrt<ref>siehe Dokumentation der [https://httpd.apache.org/docs/trunk/mod/mod_access_compat.html#deny Deny Directive]</ref>. Diese <code>.htaccess</code>-Datei im Ordner <code>/data</code> ist die einzige, die in der webtrees-Installation bei der Auslieferung enthalten ist.
 
Um Weiterleitungsregeln in der <code>.htaccess</code>-Datei zu testen, kann man die Webseite [https://htaccess.madewithlove.com/ <code>htaccess.madewithlove.com</code>] verwenden.
 
=== Unerwünschte Zugriffe auf die Website blockieren ===
Um unerwünschte Zugriffe auf die '''webtrees-'''Website zu blockieren, gibt es einige standardmäßig aktive Funktionen in {{WT-Name}}. Im Bedarfsfall können diese noch angepasst werden. Zugriffsversuche werden im [[Webtrees Handbuch/Anleitung für Webmaster#Logfile-.C3.9Cberwachung|'''webtrees-'''Logfile]] dokumentiert und können dort analysiert werden.
 
==== Kategorien von Besuchern ====
Die Besucher Ihrer Website können ganz generell als gut oder schlecht eingestuft werden.
 
Zu den guten Besuchern gehören
 
* Menschen
* Suchmaschinen, die es Menschen ermöglichen, Ihre Website zu finden; zum Beispiel Google, Bing, DuckDuckGo, usw.
* Werkzeuge zur Überwachung der Verfügbarkeit der Website, Website-Qualitätstestprogramme usw.
 
Zu den schlechten Besuchern gehören
 
* Robots (Webcrawler), die Daten über Ihre Website sammeln, um sie an andere zu verkaufen. Zum Beispiel Werbetreibende, Abmahnanwälte, Suchmaschinenoptimierer.
* Robots, die nach Schwachstellen auf Ihrer Website suchen.
* Schlecht geschriebene Robots, die den Server stark belasten und ihn so für die guten Besucher verlangsamen.
 
Das Ziel ist es nun, die schlechten Nutzer in effizienter Art und Weise am Zugriff zu hindern ohne die guten Nutzer auszusperren.
 
==== robots.txt für seriöse Robots ====
Nach der Übereinkunft des Robots-Exclusion-Standard-Protokolls<ref>Vgl. [https://www.rfc-editor.org/rfc/rfc9309.html RFC9309] Robots Exclusion Protocol.</ref> liest ein Robot beim Auffinden einer Webseite zuerst die Datei <code>robots.txt</code> im Stammverzeichnis („root“) einer Domain. In dieser Datei kann festgelegt werden, ob und wie die Webseite von einem Webcrawler besucht werden darf. Der Webmaster hat so die Möglichkeit, ausgesuchte Bereiche der Website für (bestimmte) Suchmaschinen zu sperren. Das Protokoll ist rein hinweisend und ist auf die Mitarbeit des Robots angewiesen.
{{WT-ToDo|Beschreiben wie robots.txt funktioniert und dass es ggf. von webtrees automatisch erzeugt wird.}}
 
==== Standardmäßig blockierte Robots ====
{{WT-Name}} enthält eine "Bad Bot Blocker"-Komponente. Diese filtert jede Anfrage an ihre Website.
 
Die folgenden Robots werden standardmäßig blockiert
 
* Robots mit einem User-Agent-String, der sie als Datensammler für Werbetreibende oder Suchmaschinenoptimierer usw. ausweist.
* Robots, die ihren User-Agent-String fälschen. Zum Beispiel Robots, die behaupten, von Google zu sein, aber nicht von einer Google-IP-Adresse aus operieren<ref>Daher muss bei der Konfiguration von Webserver und Proxy darauf geachtet werden, dass die zugreifende IP-Adresse an webtrees durchgereicht wird.</ref>.
Wenn ein Robot blockiert wurde, wird im Webprotokoll ein Statuscode 406 angezeigt.
 
==== Blockieren ganzer Netze oder Organisationen ====
Der "Bad Bot Blocker"<ref>Vgl. Commit https://github.com/fisharebest/webtrees/commit/617057d4ae09fbcd822ba635c6ed70514af7603a.</ref> von {{WT-Name}} kann auch ganze IP-Netzwerke blockieren.<ref>Übersetzung des Abschnitte "Blocking entire networks/organisations" auf der Seite https://webtrees.net/admin/block/.</ref>
 
Das Internet besteht aus vielen kleineren, miteinander verbundenen Netzwerken. Jedes dieser Netze hat eine Kennung, die so genannte "AS-Nummer"<ref>{{Wikipedia-Link|Autonomes_System}}</ref>.
 
Sie können die AS-Nummer für eine konkrete IP-Adresse mit einer WHOIS<ref>{{Wikipedia-Link|Whois}}</ref>-Suche herausfinden.
 
Um diese Abwehrfunktion zu aktivieren, erstellen Sie einen Eintrag für <code>block_asn</code> in der Datei <code>data/config.ini.php</code>. Dies ist ein freies Textformat - {{WT-Name}} sucht nach den Zeichenfolgen ASnnnnn an beliebiger Stelle in diesem Eintrag. Zum Beispiel:
<syntaxhighlight lang="php">
block_asn="Bad company=AS123456, Evil organisation=AS654321"
</syntaxhighlight>
 
Normalerweise werden Sie dies verwenden, um Server-Hosting-Unternehmen zu blockieren, die in dem Ruf stehen, ihren Kunden jede Art von Diensten (Spamming, Scanning, Hacking usw.) zu erlauben, ohne Fragen zu stellen. Dies wird oft als "kugelsicheres Hosting"<ref>Vgl. https://en.wikipedia.org/wiki/Bulletproof_hosting.</ref> bezeichnet.


==== Zugriffsschutz ====
Dieses Feature wurde über die Konfigurationsdatei implementiert, um auf diese Weise leicht Hunderte von Anfragen pro Sekunde blockieren zu können. Müsste erst eine "teure" Verbindung zur Datenbank aufgebaut werden, könnte ein Angreifer den Server leicht überlasten, indem er zu viele Datenbankanfragen stellt.<ref>Vgl. Forumsbeitrag "Help for version 2.1 > any plans to block certain IP-adresses from trying to login": https://www.webtrees.net/index.php/en/forum/help-for-release-2-1-x/37854-any-plans-to-block-certain-ip-adresses-from-trying-to-login</ref>
----


===== Dateirechte =====
==== Blockieren von IP-Adressbereichen ====
----
Einzelne IP-Adressen oder ganze IP-Adressbereiche können auch über eine Funktion des Apache-Webservers für den Zugriff gesperrt werden, sofern ein solcher im Einsatz ist. Dazu erfolgt ein Eintrag in der <code>.htaccess</code>-Datei, der beispielsweise so aussehen kann, um zwei konkrete IP-V4-Adressen auszuschließen:
Order Allow,Deny
Allow from all
Deny from 5.188.62.21 5.188.62.26
Neben der Sperrung von einzelnen IP-V4 oder -V6-Adressen, können die Zugriffe auch für ganze Subnetze gesperrt werden.<ref>siehe https://htaccessbook.com/block-ip-address/</ref>


===== .htaccess =====
==== Schutz vor zu hoher Rate von Nutzereingaben ====
----
Wenn in einem kurzen Zeitraum zu viele Anfragen desselben Typs beim {{WT-Name}}-Server eingehen (z. B. Passwort-Reset, Registrierung eines neuen Benutzers usw.), blockiert {{WT-Name}} diese Anfragen mit einer Fehlermeldung: „HTTP 429 – zu viele Anfragen – versuchen Sie es später noch einmal“.
Dies liegt daran, dass solche Anfragen dazu führen, dass E-Mails gesendet werden. Ein böswilliger Benutzer könnte Tausende dieser Anfragen auslösen, die dann dazu führen würden, dass Tausende von E-Mails an den Administrator gesendet werden. Daher werden solche Anfragen in ihrer Frequenz überwacht, sodass diese blockiert werden können, wenn „zu viele in zu kurzer Zeit“ eingegangen sind.
==== Spam-Schutz ====
{{WT-Name}} verfügt über einen relativ einfachen eingebauten Spam-Schutz auf den Kontakt-Formular- und [[Webtrees_Handbuch/Anleitung_für_Besucher#Anmelden|Registrierungsseiten]], der ohne den Einsatz von Captchas<ref>{{Wikipedia-Link|Captcha}}</ref> auskommt:<ref>Vgl. Forumsbeitrag "Open discussion > protect against spam": https://www.webtrees.net/index.php/en/forum/2-open-discussion/38244-protect-against-spam</ref><ref>Vgl. Issue #2901 Deter SPAM registrations and messages: https://github.com/fisharebest/webtrees/issues/2901.</ref>


===== robots.txt =====
* Es wird auf der entsprechenden Webseite JavaScript ausgeführt, welches ein verstecktes Formularfeld setzt.
----
* Der Benutzer muss die Seite mehr als 3 Sekunden lang betrachten, bevor er das Formular abschickt.
Falls eine dieser beiden Aktionen zu einem Fehler führt, wird die entsprechende Nutzereingabe verworfen.


==== Cookies ====
=== Cookies ===
----
{{WT-Name}} verwendet ein First-Party-Session-Cookie namens "__Secure-WT-ID". Es ist technisch erforderlich und bedarf daher nicht der Zustimmung des Nutzers.
'''webtrees''' verwendet ein First-Party-Session-Cookie namens "__Secure-WT-ID". Es ist technisch erforderlich und bedarf daher nicht der Zustimmung des Nutzers.
{{WT-ToDo|Hinweis auf weitere Cookies, etwa von GVExport oder von Drittdiensten}}


==== Drittdienste ====
=== Drittdienste ===
----
{{WT-ToDo|beschreiben, dass die Statistikgrafiken derzeit auf Google-Technik basieren und daher IP-Adressen an Google transferiert werden}}
{{WT-ToDo|beschreiben, dass die Statistikgrafiken derzeit auf Google-Technik basieren und daher IP-Adressen an Google transferiert werden}}
Die html-Blöcke auf der Startseite eines Stammbaums und auf der "Meine Seite" unterstützen auch die Einbindung von externen Webseiten (etwa um externe Grafiken oder externen Code dort einzubinden). Damit gelangen auch Informationen über die Nutzer der Website an Drittdienste, so dass diese Funktionen in einer individuell erstellten Datenschutzerklärung dokumentiert werden müssen.
Die html-Blöcke auf der Startseite eines Stammbaums und auf der "Meine Seite" unterstützen auch die Einbindung von externen Webseiten (etwa um externe Grafiken oder externen Code dort einzubinden). Damit gelangen auch Informationen über die Nutzer der Website an Drittdienste, so dass diese Funktionen in einer individuell erstellten Datenschutzerklärung dokumentiert werden müssen.


==== Nachverfolgungs- und Analyse-Dienste ====
=== Nachverfolgungs- und Analyse-Dienste ===
----
{{WT-ToDo|Die einzelnen Dienste noch genauer beschreiben}}
{{WT-ToDo|Noch genauer beschreiben}}
Der Administrator kann in webtrees verschiedene [[Webtrees Handbuch/Anleitung für Administratoren/Module|Nachverfolgungs- und Analyse-Module]] aktivieren.
Der Administrator kann in webtrees verschiedene [[Webtrees Handbuch/Anleitung für Administratoren/Module|Nachverfolgungs- und Analyse-Module]] aktivieren.
* Bing™ Webmaster Tools - https://www.bing.com/toolbox/webmaster
* Bing™ Webmaster Tools - https://www.bing.com/toolbox/webmaster
Zeile 585: Zeile 751:
Diese Module erfassen und speichern Nutzungsinformationen und bereiten diese in Statistiken auf. Sobald diese Module aktiviert werden, werden die Hinweise in der automatisch erzeugten Datenschutzerklärung entsprechend ergänzt.
Diese Module erfassen und speichern Nutzungsinformationen und bereiten diese in Statistiken auf. Sobald diese Module aktiviert werden, werden die Hinweise in der automatisch erzeugten Datenschutzerklärung entsprechend ergänzt.


==== Datenschutzerklärung und Impressum ====
=== Datenschutzerklärung und Impressum ===
----
{{WT-ToDo|Die Standard-Erklärung beschreiben; Erweiterungsmodul anpassen als Alternativlösung beschreiben. Situation in AT und CH berüksichtigen.}}
{{WT-ToDo|Das folgende sind nur erste Stichpunkte zu den relevanten Positionen ...}}
*
* Standard-Erklärung versus eigenes Modul
* Einbindung von Funktionen im CCS/Javascript-Modul


=== Suchmaschienenoptimierung ===
== Suchmaschinenoptimierung ==
----
Die Auffindbarkeit von {{WT-Name}}-Seiten durch Suchmaschinen kann erwünscht oder unerwünscht sein.
Die Auffindbarkeit von webtrees-Seiten durch Suchmaschinen kann erwünscht oder unerwünscht sein.


Wenn man nicht möchte, dass die Seiten gefunden werden, dann muss man die im Abschnitt "[[Webtrees Handbuch/Anleitung für Webmaster#robots.txt|robots.txt]]" beschriebene Funktion nutzen und die Einstellungen in der webtrees-Verwaltung wie im Abschnitt "[[Webtrees Handbuch/Anleitung für Administratoren/Stammbäume#Datenschutz|Datenschutz]]" verwenden, um Informationen für Besucher unsichtbar zu machen. Suchmaschinen greifen mit den selben Rechten auf webrees-Seiten zu wie Besucher.
Wenn man nicht möchte, dass die Seiten gefunden werden, muss man die im Abschnitt "[[Webtrees Handbuch/Anleitung für Webmaster#robots.txt|robots.txt]]" beschriebene Funktion nutzen und die Einstellungen in der {{WT-Name}}-Verwaltung wie im Abschnitt "[[Webtrees_Handbuch/Anleitung_für_Verwalter#Datenschutz|Datenschutz]]" verwenden, um Informationen für Besucher unsichtbar zu machen. Suchmaschinen greifen mit den selben Rechten auf {{WT-Name}}-Seiten zu wie Besucher.


Auf der anderen Seite kann es sinnvoll sein, dass einige der Informationen, die man in den Stammbäumen hinterlegt hat, durch Suchmaschinen indiziert werden. So können andere Familien- oder Ahnenforscher oder entfernte Familienmitglieder auf diese Informationen aufmerksam werden, wenn sie etwa nach einem Familiennamen im Internet suchen. Dadurch kann man dann mit diesen in Kontakt kommen und so die eigene Forschung entsprechend erweitern.
Auf der anderen Seite kann es sinnvoll sein, dass einige der Informationen, die man in den Stammbäumen hinterlegt hat, durch Suchmaschinen indiziert werden. So können andere Familien- oder Ahnenforscher oder entfernte Familienmitglieder auf diese Informationen aufmerksam werden, wenn sie etwa nach einem Familiennamen im Internet suchen. Dadurch kann man dann mit diesen in Kontakt kommen und so die eigene Forschung entsprechend erweitern.
Zeile 603: Zeile 766:
}}
}}


===== sitemap.xml =====
==== sitemap.xml ====
----
{{WT-ToDo|
{{WT-ToDo|
;Die Funktion und der Aufbau von sitemap.xml muss noch beschrieben werden ...
;Die Funktion und der Aufbau von sitemap.xml muss noch beschrieben werden ...
Zeile 612: Zeile 774:
}}
}}


=== Backup der genealogischen Daten und der Datenbank ===
== Backup der genealogischen Daten und der Datenbank ==
----
Da ein jedes IT-System durch technische Probleme, durch Fehlkonfigurationen, Anwenderfehler oder durch Cyber-Attacken gestört werden kann, ist es unbedingt erforderlich ein Backup-Konzept zu erstellen. Die {{WT-Name}}-Anwendung selbst kann jederzeit wieder frisch installiert werden, aber die genealogischen Daten und die in der Datenbank hinterlegten Einstellungen müssen regelmäßig gesichert werden.
Da ein jedes IT-System durch technische Probleme, durch Fehlkonfigurationen oder durch Cyber-Attacken gestört werden kann, ist es unbedingt erforderlich ein Backup-Konzept zu erstellen.
 
Die webtrees-Anwendung selbst kann jederzeit wieder frisch installiert werden, aber die genealogischen Daten und die in der Datenbank hinterlegten Einstellungen müssen regelmäßig gesichert werden.
Eventuell legt der Hosting-Anbieter bereits automatisch regelmäßige Backups an. Wenn dies nicht der Fall sein sollte, muss der Webmaster sich selbst darum kümmern.
 
=== Backup der genealogischen Daten ===
Um die genealogischen Daten zu sichern, sollten alle in {{WT-Name}} angelegten Stammbäume regelmäßig durch den Webmaster als [[GEDCOM]]-Datei [[Webtrees_Handbuch/Anleitung_für_Verwalter#Export|exportiert]] werden. Diese [[GEDCOM]]-Dateien sollten mit einem Datum im Dateinamen versehen werden und nicht nur auf dem Server gespeichert werden, sondern auch auf einem anderen sicheren Datenträger archiviert werden. Dieser Datenträger sollte nicht online sein, d.h. er sollte nicht permanent aus dem Internet zugänglich sein.
 
Auch die Ortseinträge im Verwaltungsmenü ganz unten sollten regelmäßig als separate Datei exportiert werden.
 
Die Mediendateien, die etwa im {{WT-Name}}-Verzeichnis <code>/data/media</code> gespeichert sind, müssen ebenfalls regelmäßig mit Hilfe eines [https://de.wikipedia.org/wiki/Kategorie:FTP-Client ftp-Programms] gesichert werden. Die Vorschaubilder (thumbnails) müssen nicht gesichert werden, da sie von {{WT-Name}} automatisch wieder neu erzeugt werden.
 
Auch die Einstellungen in <code>/data/config.ini.php</code> müssen gesichert werden.
 
{{Infobox|'''Alternative'''<br>
{{WT-Name}} bietet alternativ auch die Möglichkeit, dass der Verwalter oder der Administrator anstelle des Webmasters die Datensicherung übernehmen können. Dazu muss der Verwalter für seinen Stammbaum oder der Administrator für alle Stammbäume das [[Webtrees_Handbuch/Anleitung_für_Verwalter#Export|Verwaltungsmenü]] aufrufen und dort einen Export der [[GEDCOM]]-Daten und der zugehörigen Mediendateien, in einer ZIP-Datei verpackt, anstoßen.}}
 
=== Backup der webtrees-Datenbank ===
Laut der [https://dev.webtrees.net/statistics.html Installationsstatistik] wird produktiv im wesentlichen das DBMS MySQL<ref name="wpde_mysql" />/MariaDB<ref name="wpde_mariadb" /> eingesetzt. Daher beschränken sich die Beschreibungen in diesem Abschnitt der Einfachheit halber nur darauf.
 
<gallery perrow=1 widths="250" caption="phpMyAdmin v5.2.0" style="float:right;">
Datei:WT_phpMyAdmin_Export.png|Export/Datensicherung
Datei:WT_phpMyAdmin_Import.png|Import/Wiederherstellung
</gallery>
Ein gebräuchliches webbasiertes Werkzeug ist "phpMyAdmin"<ref>{{wikipedia-Link|PhpMyAdmin}}</ref>, worüber Hosting-Anbieter zumeist auch den Zugang zu der von {{WT-Name}} genutzten Datenbank ermöglichen.
 
Wählen Sie für die '''Datensicherung''' im Hauptfenster von phpMyAdmin im oberen Menü "Exportieren" für die gewünschte Datenbank aus. In der Regel sollte die Exportmethode "schnell" bereits die notwendigen Optionen gesetzt haben. Wichtig ist, dass als Ausgabeformat SQL genutzt wird. Nach Klicken auf die Schaltfläche "Exportieren" bzw. OK muss nach einigen Sekunden lediglich der Speicherort benannt werden, um die Sicherung auf Ihren Computer herunterzuladen.
 
Für die '''Wiederherstellung''' bzw. Installation einer gesicherten Datenbank wechseln Sie in phpMyAdmin zur gewünschten Ziel-Datenbank oder erstellen eine neue. Sofern die Datenbank noch Tabellen enthält, sollten diese in Abhängigkeit von den Exporteinstellungen der Datensicherung/der SQL-Datei ggf. vor dem Import gelöscht werden.<ref>Ein Blick in den SQL-Quelltext gibt Aufschluss, ob die Datenbank vorbereitet werden muss: Sind dort Angaben wie <code>DROP TABLE IF EXISTS [TABELLENNAME]; CREATE TABLE [TABELLENNAME] ...</code> ersichtlich, ist nichts zu tun.</ref>
Wählen Sie im Hauptfenster im oberen Menü „Importieren“ aus. Im darauf folgenden Formular sollte es ausreichend sein lediglich die Quell-Datei anzugeben und den Vorgang mit den gegebenen Voreinstellungen über Klicken auf die Schaltfläche "Importieren" bzw. OK zu starten. phpMyAdmin gibt Auskunft über das Ergebnis der Wiederherstellung.
{{-}}
 
 
 
Für das '''Vorgehen per Kommandozeile''' nachfolgend Beispiel-Kommandos in 2 Varianten (mit [1] komprimierter und [2] unkomprimierter Datei) für die Eingabe in einer Linux-Shell. Das gewünschte Beispiel-Kommando ohne Zeilennummer kopieren und die in eckigen Klammern gesetzten Platzhalter entsprechend durch die eigenen Angaben ersetzen. Eine Adaptierung auf andere Betriebssysteme sollte zumindest in der unkomprimierten Form unproblematisch sein.
 
<u>Sicherung:</u>
<syntaxhighlight lang="Bash" line>
mysqldump --single-transaction --quick -u [Datenbankbenutzer] -p [Datenbankname] | gzip > ~/datenbankexport.sql.gz
mysqldump --single-transaction --quick -u [Datenbankbenutzer] -p [Datenbankname] > ~/datenbankexport.sql
</syntaxhighlight>
 
Der Datenbank-Benutzer sollte dabei über PROCESS-Privilegien<ref>Vgl. https://dev.mysql.com/doc/refman/5.7/en/privileges-provided.html#priv_process</ref> verfügen oder es muss zusätzlich die Option <code>--no-tablespaces</code> übergeben werden.<ref>Vgl. https://dba.stackexchange.com/questions/271981/access-denied-you-need-at-least-one-of-the-process-privileges-for-this-ope</ref>
 
Für die Automatisierung von zeitgesteuerten Backups könnte das Kommando folgendermaßen aussehen:
<syntaxhighlight lang="Bash" line>
mysqldump --defaults-extra-file=[Konfigurationsdatei] --single-transaction --quick --no-tablespaces [Datenbankname] | gzip > ~/datenbankexport.sql.gz
mysqldump --defaults-extra-file=[Konfigurationsdatei] --single-transaction --quick --no-tablespaces [Datenbankname] > ~/datenbankexport.sql
</syntaxhighlight>
Die genannte Konfigurationsdatei muss zuvor mit nachfolgendem Inhalt erstellt werden:
<syntaxhighlight lang="ini">
[client]
user=[Datenbankbenutzer]
password=[Datenbankbenutzer-Passwort]
</syntaxhighlight>


Eventuell legt der Hosting-Anbieter bereits automatisch regelmäßige Backups an. Wenn dies nicht der Fall sein sollte, dann muss der Webmaster sich selbst darum kümmern.
<u>Wiederherstellung:</u>
<syntaxhighlight lang="Bash" line>
gunzip -c ~/datenbankexport.sql.gz | mysql -u [Datenbankbenutzer] -p [Datenbankname]
mysql -u [Datenbankbenutzer] -p [Datenbankname] < ~/datenbankexport.sql
</syntaxhighlight>


==== Backup der genealogischen Daten ====
=== Neuinstallation von webtrees-Dateien ===
----
Löschen Sie alle Ordner im {{WT-Name}}-Verzeichnis bis auf den Ordner <code>/data</code>. Löschen Sie im Hauptverzeichnis alle Dateien bis auf die Datei <code>.htaccess</code>. Nun laden Sie wie bei der [[Webtrees_Handbuch/Anleitung_für_Webmaster#Erstinstallation_von_webtrees|Erstinstallation]] die aktuellste Version von {{WT-Name}}  auf ihren lokalen PC und dann mit einem [https://de.wikipedia.org/wiki/Kategorie:FTP-Client ftp-Programm] auf ihren Server ins Verzeichnis <code>webtrees</code>.
Um die genealogischen Daten zu sichern, sollten alle in webtrees angelegten Stammbäume regelmäßig durch den Webmaster als [[GEDCOM]]-Datei exportiert werden. Diese [[GEDCOM]]-Dateien sollten mit einem Datum im Dateinamen versehen werden und nicht nur auf dem Server gespeichert werden, sondern auch auf einem anderen sicheren Datenträger archiviert werden. Dieser Datenträger sollte nicht online sein, d.h. er sollte nicht permanent aus dem Internet zugänglich sein.


Die Mediendateien, die etwa im webtrees-Verzeichnis "/data/media" gespeichert sind, müssen ebenfalls regelmäßig mit Hilfe eines [https://de.wikipedia.org/wiki/Kategorie:FTP-Client ftp-Programms] gesichert werden. Die Vorschaubilder (thumbnails) brauchen nicht gesichert zu werden, da sie bei Bedarf jederzeit automatisch wieder neu erzeugt werden.
== Umzug von {{WT-Name}} auf einen neuen Server ==
Wenn Sie eine Installation von {{WT-Name}}, die bereits auf einem Server läuft, zu einem anderen Server umziehen möchten, müssen Sie für den neuen Server zuerst die [[Webtrees Handbuch/Anleitung für Webmaster#Voraussetzungen für die Installation|Voraussetzungen prüfen]]. Dazu gehört dann etwa die Bereitstellung der richtigen Version von PHP.


Auch die Einstellungen in "/data/config.ini" müssen gesichert werden.
Mit der im Folgenden vorgeschlagenen Vorgehensweise werden alle Einstellungen in die neue Umgebung übernommen. Alternativ wäre es auch möglich auf dem neuen Server {{WT-Name}} frisch zu installieren und nur die zuvor exportierten GEDCOM-Dateien neu einzuspielen. Dann müssen aber alle Einstellungen neu vorgenommen werden; alle Nutzer müssen neu angelegt werden und alle Informationen wie Geschichten, gestaltete html-Blöcke, etc sind dann erst einmal nicht mehr vorhanden.


{{Infobox|Alternative
=== Aktivitäten auf dem alten Server ===
<br>webtrees bietet alternativ auch die Möglichkeit, dass der Verwalter oder der Administrator statt dem Webmaster die Datensicherung übernehmen können. Dazu muß der Verwalter für seinen Stammbaum oder der Administrator für alle Stammbäume das [[Webtrees Handbuch/Anleitung für Administratoren/Stammbäume#Export|Verwaltungsmenü]] aufrufen und dort einen Export der [[GEDCOM]]-Daten und der zugehörigen Mediendateien, in einer zip-Datei verpackt, anstossen.}}
# Am besten erfolgt noch ein [[Webtrees Handbuch/Anleitung für Webmaster#Upgrade|Upgrade]] von {{WT-Name}} und allen [[Webtrees Handbuch/Anleitung für Webmaster/Erweiterungsmodule|Erweiterungsmodulen]] auf die jeweils aktuellste Version.
# Überprüfen des Eintrags ‚Datenverzeichnis‘ unter <code>Meine Seiten / Verwaltung /  Webseite / Einstellungen Webseite</code>. Der dort aufgeführte Ordner wird von {{WT-Name}} verwendet, um Mediendateien, GEDCOM-Dateien, temporäre Dateien, etc. zu speichern. Wenn das Datenverzeichnis des Ordners nicht auf <code>…/data/</code> eingestellt ist, muss später auf dem neuen Server dieser Eintrag entsprechend angepasst werden.
# Erstellen einer Kopie dieses Datenverzeichnisses mit Ausnahme der Dateien  <code>config.ini.php</code>, <code>index.php</code> und <code>.htaccess</code>. Die Cache-Dateien müssen nicht unbedingt gesichert werden.
# [[Webtrees Handbuch/Anleitung für Webmaster#Backup der webtrees-Datenbank|Erstellen eines Abzugs]] der von {{WT-Name}} verwendeten Datenbank, z.B. durch einen Export aller Tabellen mit der Anwendung phpMyAdmin.


==== Backup der webtrees Datenbank ====
=== Aktivitäten auf dem neuen Server ===
----
# Einrichten einer neuen Datenbank auf dem neuen Server.
Jeder Hosting-Anbieter bietet einen Zugang zu der von webtrees genutzten Datenbank, etwa durch das Werkzeug "[https://de.wikipedia.org/wiki/PhpMyAdmin phpMyAdmin]".
# [[Webtrees Handbuch/Anleitung für Webmaster#Installation von webtrees|Installation]] von {{WT-Name}} auf dem neuen Server mit der selben Hauptversion (etwa 2.0 oder 2.1) wie auf dem alten Server.
{{WT-ToDo|
# Installation aller bisher verwendeten [[Webtrees Handbuch/Anleitung für Webmaster/Erweiterungsmodule|Erweiterungsmodule]] (in der dazu passenden Version).
;Der folgende Ablauf muss noch verifiziert und ggf. genauer beschrieben werden ...
# Abmelden vom neuen Server.
}}
# Import des zuvor auf dem alten Server erstellten Datenbankabzugs in die neue Datenbank etwa mit der Anwendung phpMyAdmin.
Wählen Sie für die Datensicherung im Hauptfenster von [https://de.wikipedia.org/wiki/PhpMyAdmin phpMyAdmin] im oberen Menü „Exportieren“ und dann „Los“. Wählen Sie nach einigen Sekunden aus, wohin Sie exportieren möchten, und klicken Sie auf die Schaltfläche „Speichern“, um die Sicherung auf Ihren Computer herunterzuladen.
# Kopie des zuvor auf dem alten Server gesicherten Inhalts des Ordners <code>/data/</code> in das passende {{WT-Name}}-Verzeichnis auf dem neuen Server.
# Anpassungen im Verzeichnis <code>/data</code>: Überprüfung ob die URL und die übrigen Einstellungen in der Datei <code>config.ini.php</code> zur neuen Umgebung passen; eventuell Anpassung der [[Webtrees Handbuch/Anleitung für Webmaster#.htaccess|<code>.htaccess</code>-Datei]] an die neue Umgebung.
# Überprüfung ob der Inhalts der Datei <code>[[Webtrees Handbuch/Anleitung für Webmaster#robots.txt für seriöse Robots|robots.txt]]</code> im Stammverzeichnis von {{WT-Name}} zu der neuen Umgebung passt.
# Eventuell Umzug des bisherigen Domänennamens zur neuen Umgebung.
# Aufruf von {{WT-Name}} auf dem neuen Server.
# Anpassung des Eintrags ‚Datenverzeichnis‘ unter <code>Meine Seiten / Verwaltung /  Webseite / Einstellungen Webseite</code>, sofern dies erforderlich ist (siehe [[Webtrees Handbuch/Anleitung für Webmaster#Aktivitäten auf dem alten Server|oben]]).
# Test der wichtigsten Funktionen, etwa zum Versand von E-Mails.
# Information an die Nutzer über die erfolgte Umstellung.
 
== [[Webtrees_Handbuch/Anleitung_für_Webmaster/Erweiterungsmodule|Erweiterungsmodule]] ==
{{WT-Name}} ist so konzipiert, dass es durch Module erweitert und modifiziert werden kann. Erweiterungsmodule sind entweder funktionale Erweiterungen des {{WT-Name}}-Kerns oder zusätzliche Themen (Gestaltung der Bedienoberfläche), welche von Mitgliedern der {{WT-Name}}-Gemeinschaft erstellt und der Allgemeinheit zur Verfügung gestellt wurden. Erweiterungsmodule sind nicht Bestandteil der Erstinstallation von {{WT-Name}} oder von Upgrades und müssen daher separat installiert und aktualisiert werden.


Wenn Sie eine gesicherte Datenbank wieder installieren möchten, dann nutzen Sie dafür ebenfalls [https://de.wikipedia.org/wiki/PhpMyAdmin phpMyAdmin]. Wählen Sie im Hauptfenster im oberen Menü „Importieren“ und dann „Los“, damit die vorhandenen Tabellen durch die gesicherten ersetzt werden.
Auf einer eigenen [[Webtrees_Handbuch/Anleitung_für_Webmaster/Erweiterungsmodule|Unterseite]] werden alle bekannten Erweiterungsmodule aufgeführt, welche entweder auf der {{WT-Name}}-Seite "[https://webtrees.net/download/modules Download - Modules and themes]" oder in [https://github.com GitHub] veröffentlicht wurden.


==== Neuinstallation von Webtrees-Dateien ====
{{Infobox|'''Downgrade'''
----
Löschen Sie alle Ordner im webtrees-Verzeichnis bis auf den Ordner "/data". Löschen Sie im Hauptverzeichnis alle Dateien bis auf die Datei ".htaccess".
Nun laden Sie wie bei der [[Webtrees Handbuch/Anleitung für Webmaster#Installation|Erstinstallation]] die aktuellste Version von webtrees auf ihren lokalen PC und dann mit einem [https://de.wikipedia.org/wiki/Kategorie:FTP-Client ftp-Programm] auf ihren Server ins Verzeichnis webtrees.


===[[Webtrees_Handbuch/Anleitung_für_Webmaster/Erweiterungsmodule|Erweiterungsmodule]]===
Im allgemeinen ist ein Downgrade, also der Übergang auf eine frühere Version von {{WT-Name}}, nicht möglich. Die Ursache liegt darin, dass Upgrades eventuell Änderungen an der Datenbankstruktur (oft als „Schema“ bezeichnet) vornehmen. Der Code einer früheren Version funktioniert dann nicht mit der neuen Datenbankstruktur. Daher können Sie nur auf eine Version downgraden, die die gleiche Datenbankstruktur verwendet.
----
'''webtrees''' ist so konzipiert, dass es durch Module erweitert und modifiziert werden kann. Erweiterungsmodule sind entweder funktionale Erweiterungen des '''webtrees'''-Kerns oder zusätzliche Themen (Gestaltung der Bedienoberfäche), welche von Mitgliedern der '''webtrees'''-Gemeinschaft erstellt und der Allgemeinheit zur Verfügung gestellt wurden. Erweiterungsmodule sind nicht Bestandteil der Erstinstallation von '''webtrees''' oder von Upgrades und müssen daher separat installiert und aktualisiert werden.


In diesem [[Webtrees_Handbuch/Anleitung_für_Webmaster/Erweiterungsmodule|Unterkapitel]] werden alle bekannten Erweiterungsmodule aufgeführt, welche entweder auf der webtrees-Seite "[https://webtrees.net/download/modules Download - Modules and themes]" oder in [https://github.com GitHub] veröffentlicht wurden.
Um das zu verifizieren, müssen Sie in der Datei <code>app/Webtrees.php</code> nach einer Zeile suchen, die so ähnlich aussieht:
<code>define('WT_SCHEMA_VERSION', 34);</code>. Wenn beide Versionen von webtrees dieselbe Schemaversion haben, können Sie ein Downgrade durchführen. Befolgen Sie für ein Downgrade dasselbe Verfahren wie für ein manuelles Upgrade.}}


=== Einzelnachweise ===
== Einzelnachweise ==
----
<references />
<references />


[[Kategorie:Webtrees]]
[[Kategorie:Webtrees]]

Aktuelle Version vom 14. Januar 2024, 23:36 Uhr

Webtrees Icon
Info
Handbuch-Abschnitt noch im Aufbau
Bitte haben Sie noch ein wenig Geduld oder bringen sich auch gern selber mit ein :-)..


Systemarchitektur

Systemarchitektur (Client, Server, Backend)

Die Systemarchitektur für die Anwendung webtrees umfasst einen Client, einen Server und das Backend mit dem Archiv für webtrees bei GitHub.

Client

Der Client ist das Endgerät des Nutzers auf dem irgendein aktueller Browser installiert ist (Firefox, Chrome, Edge, Safari, usw.). Als Endgerät kommen etwa Laptop, Tablet oder Smartphone in Frage. Abhängig von der Rolle des Benutzers in webtrees werden ggf. zusätzlich zum Browser noch weitere lokal installierte Anwendungen benötigt.

Besucher sowie Mitglieder oder Moderatoren benötigen nur den Browser um auf alle Funktionen von webtrees zugreifen zu können. Mitglieder und Moderatoren benötigen für die erstmalige Anmeldung eine E-Mail-Möglichkeit. Der Administrator kann aus webtrees heraus E-Mails an die Nutzer verschicken.

Ein Verwalter oder Administrator benötigt darüber hinaus ein Programm mit dem er E-Mails empfangen kann. Er wird auf diesem Weg darüber informiert, dass ein neuer Nutzer ein Konto beantragt hat. Sobald eine neue Version von webtrees auf dem Backend-Server verfügbar ist, erfolgt ebenfalls eine Nachricht an die Administratoren.

Der Webmaster benötigt ein ftp-Programm (ftp-Client) mit dem er Daten auf den Server hochladen und von diesem herunterladen kann. Und er benötigt ein Programm mit dem er die webtrees-Datenbank verwalten kann. Näheres dazu ist im nachfolgenden Abschnitt "Werkzeuge für den Webmaster" beschrieben.

Server

Der webtrees-Server kann ein physischer oder ein virtueller Server sein. Als physischer Server kommt vor allem ein dedizierter oder geteilter Server bei einem Hosting-Anbieter in Frage (siehe nächster Abschnitt "Auswahl eines Hosting-Anbieters"), aber auch ein eigener Rechner zu Hause, wie etwa ein PC, ein RaspberryPi oder ein Netzlaufwerk (siehe nachfolgender Abschnitt "Lokal installierter Server"). Als virtueller Server kommt etwa ein Docker-Container in Frage. Eine Sonderform der Installation wäre, dass der Client und der Server auf dem selben Endgerät, also lokal, installiert sind.

Die einzelnen Komponenten des Servers sind

Nuvola pen.svg Noch beschreiben: genaue Funktion aller Server-Komponenten mit ggf. einem Verweis auf die Abschnitte unter "Voraussetzungen"; insbesondere wie geht das mit der http-Kompression und wie geht das mit dem Interpretieren von PHP und wie geht das mit kompaktem JavaScript; fehlt noch eine Server-Komponente "JavaScript-Interpreter? Nuvola pen.svg
Nuvola pen.svg Was ist mit Nachrichten über das Formular? Interne Benachrichtigung und/oder E-Mail? Nuvola pen.svg


Backend-Server

Der Quelltext des Backend-Servers für webtrees liegt bei GitHub. Dort liegen die aktuelle Version von webtrees und die in Entwicklung befindlichen Versionen. Auch fast alle Erweiterungsmodule liegen bei GitHub. Beim automatischen Upgrade, veranlasst durch einen Administrator, lädt webtrees eigenständig eine neue webtrees-Version vom Backend-Server auf den webtrees-Server.

webtrees prüft regelmäßig über eine Abfrage auf dem Backend-Server, ob dort eine neuere Version vorliegt. Dazu wird die Datei dev.webtrees.net/build/latest-version.txt vom Backend-Server geladen. Diese Prüfaktion wird immer dann angestoßen, wenn irgendeine webtrees-Seite aufgerufen wird; die Prüfung erfolgt aber innerhalb 24 Stunden nur einmal. Für den Fall, dass ein Upgrade vorliegt, werden die Administratoren per E-Mail einmalig darüber informiert. Zusätzlich wird für einen angemeldeten Administrator an verschiedenen Stellen in der Bedienoberfläche ein Hinweis angezeigt.

Um eine Übersicht über die weltweit installierten webtrees-Instanzen zu bekommen, wird bei dieser Prüfung auf eine neue Version auch eine Information mit den wichtigsten Parametern des webtrees-Servers übertragen. Die dabei übermittelten Informationen sind

  • eine eindeutige, anonymisierte Kennung der webtrees-Installation
  • installierte webtrees-Version
  • von webtrees verwendete PHP[1]-Version
  • von webtrees verwendeter Typ und Version der Datenbank.

Die gewonnenen Statistikinformationen werden auf dieser webtrees-Seite publiziert.

Kommunikationsnetz

In den meisten Fällen kommunizieren die Client-Rechner mit dem webtrees-Server über eine Internet-Verbindung. Diese sollte möglichst schnell und verschlüsselt sein (https).

Die Verbindung zum Backend-Server erfolgt immer über das Internet und ist immer verschlüsselt.

Nuvola pen.svg Im gesamten obigen Abschnitt für die Fachbegriffe noch Links auf die wikipedia einfügen Nuvola pen.svg

Server-Typen

Der größte Teil der webtrees-Server befindet sich in einem Rechenzentrum eines Hosting-Anbieters oder eines Anbieters für Cloud-Dienste und ist dort über das Internet erreichbar. Man kann einen webtrees-Server aber auch zu Hause betreiben (siehe nachfolgender Abschnitt "Lokal installierter Server").

Hosting-Anbieter haben sehr unterschiedliche Angebote, so dass man sich genau überlegen sollte, welche Auswahlkriterien einem wichtig sind. Als erstes Kriterium muss man sich für die Art des Servers entscheiden

  • Die günstigeren Angebote basieren darauf, dass man sich mit anderen Kunden einen physischen Server teilt (siehe nachfolgender Abschnitt "Geteilter Server"). Man hat hier nur eingeschränkte Rechte und keinen vollen Zugriff auf Betriebssystem und Dateisystem des Servers.
  • Wenn man einen Server exklusiv nutzen möchte, kommt ein dedizierter Server in Frage, der aber entsprechend teurer ist. Dafür wird auch die Performance entsprechend besser sein als bei einen Server, den man mit anderen Kunden teilt.
  • Des weiteren gibt es virtuelle Server, die man exklusiv nutzt (siehe nachfolgender Abschnitt "Virtueller Server"). Ein solcher Server ist eine virtuelle Maschine (VM), die auf einem physischen Server erstellt wird; die VM nutzt die Ressourcen des physischen Servers gemeinsam mit weiteren Virtuellen Servern.

Geteilter Server

Die in der folgenden Tabelle aufgeführten Angebote basieren alle auf einem Server, den man mit anderen Kunden gemeinsam nutzt, also entsprechend dem ersten Punkt in der obigen Liste.

webtrees benötigt nur eine Datenbank, so dass diese Anforderung von allen im folgenden aufgeführten Anbietern erfüllt wird. Einen verschlüsselten Zugang über das Internet bieten ebenfalls alle diese Anbieter. Die meisten Anbieter bieten auch noch viele weitere Anwendungen wie etwa WordPress zur Installation an, aber das ist im Zusammenhang mit webtrees irrelevant.

Wenn es darum geht die Kriterien für einen Servertyp festzulegen, dann kommt es weniger auf die Größe des Stammbaumes an, sondern eher auf die Anzahl der gleichzeitig zu unterstützenden Nutzer. Wenn es weniger als 5 Nutzer sind, die gleichzeitig mit webtrees arbeiten sollen, dann reicht in der Regel ein geteilter Server aus und alle unten aufgeführten Angebote kommen in Frage. Neben dem Preis ist sicherlich das wichtigste Kriterium der stabile Betrieb durch einen Anbieter und die gute Erreichbarkeit seiner Hotline im Störungsfall. Hier lohnt es sich Referenzen und Beurteilungen durch andere Nutzer auszuwerten. Aus Datenschutzgründen sollten nur Anbieter ausgewählt werden, die ihre Server in der EU betreiben und somit den Regelungen der EU unterworfen sind.

Hosting

Auswahl eines Hosting-Anbieters

Nach der Entscheidung für einen Server-Typ muss entschieden werden, wer diesen Server betreibt. Wenn man den Server nicht lokal installiert und selbst betreiben möchte, kommt dafür ein Hosting-Anbieter in Frage. Mit diesem schließt man einen entsprechenden Vertrag, der meist auch die Bereitstellung einer Internet-Domäne beinhaltet.

Spezialisierte Hosting-Anbieter für webtrees

Es gibt derzeit zwei Hosting-Anbieter, die sich auf webtrees spezialisiert haben. Sie bieten eine fertige und speziell auf die Anforderungen von webtrees ausgerichtete Installation auf Servern in der EU an und kümmern sich um die grundlegende Betriebssicherheit. Die Installation auf einem Server in der EU ist wichtig, da somit die europäischen Datenschutzregelungen greifen.

Ein webtrees-Hosting-Paket ist ideal für diejenigen, die webtrees als Software-as-a-Service nutzen möchten, sich aber nicht mit der Einrichtung und dem Betrieb der Anwendung beschäftigen möchten. Sie erhalten ein komplett installiertes und vorkonfiguriertes System und müssen sich nur um die genealogischen Daten kümmern. Alles andere erledigt der Dienstleister im Hintergrund. Er kümmert sich in der Rolle als Webmaster um die Technik, administriert das System und sorgt dafür, dass webtrees und die notwendigen Systemkomponenten immer auf dem neuesten Stand sind. Dies schließt auch laufende Backups sowie die Installation und Aktualisierung von verfügbaren Erweiterungsmodulen mit ein.

Hosting-Anbieter - auf webtrees spezialisiert
Anbieter Land Sprache Preis Besonderheiten
GenOnline Deutschland de 131,40 €/a persönliche Beratung bei der Nutzung von webtrees
Hosting webtrees Irland en 99 GBP/a persönliche Beratung und kundenspezifische Anpassungen als Extra
Generelle Hosting-Anbieter

Neben den spezialisierten Hosting-Anbietern kommen für einen webtrees-Server sehr viele am Markt befindlichen Server in Frage, da die Anforderungen von webtrees nicht außergewöhnlich sind. Eine kleine Auswahl findet sich in der folgenden Tabelle.

Hosting-Anbieter - Beispielauswahl von Webspace-Angeboten
Anbieter Land Sprache Performance Preis Besonderheiten
Hetzner DE de ?
> 5000 Personen
22,80 €/a
58,80 €/a
1 Datenbank, WordPress
10 Datenbanken, WordPress
Alfahosting DE de ? 24,00 €/a 10 Datenbanken
WordPress, Joomla!, Typo3, Drupal
Dogado DE de ? 48,00 €/a 10 Datenbanken
Joomla!, Typo3, Drupal
Strato DE de ? 48,00 €/a 2 Datenbanken
WordPress, Joomla!, Typo3, Drupal
ionos by 1&1 DE de ? 48,00 €/a 5 Datenbanken
WordPress, Joomla!, Typo3, Drupal
ALL-INKL.COM DE de 50 GB, 100 Kunden pro Server
250 GB, 50 Kunden pro Server
 
59,40 €/a
119,40 €/a
 
5 Datenbanken
50 Datenbanken
WordPress, Joomla!, Typo3, Drupal
bplaced pro AT de Speicherlimit 128 MB
CPU-Zeitlimit 30 s
36,00 €/a 16 Datenbanken

Lokal installierter Server

Für einen lokalen Server, der direkt beim Webmaster steht, kommen als Betriebssystem Windows, MacOS oder Linux in Frage. In Abhängigkeit davon werden für den Serverbetrieb unterschiedliche Softwarepakete benötigt, die im folgenden beschrieben werden.

Man kann webtrees aber auch auf einem Netzlaufwerk der Marke Synology oder auf einen Kleinstcomputer der Marke RaspberryPi betreiben.

Windows

Nuvola pen.svg Installation auf einem lokalen Windows-Rechner beschreiben Nuvola pen.svg

MacOS

Nuvola pen.svg Installation auf einem lokalen MacOS-Rechner beschreiben Nuvola pen.svg

Linux

Wenn Sie webtrees auf ihrem eigenen Linux-Rechner installieren wollen, sind die im Folgenden beschriebenen Schritte erforderlich.

Als Betriebssystem kommen etwa in Frage[2]

Falls ihr Betriebssystem Ubuntu ist, gibt es für die Installation ein vom Nutzer Tuetenk0pp auf GitHub bereit gestelltes Skript, das interaktiv durch die Installation führt. Die Voraussetzung dafür ist ein frisch installiertes, aktuelles Ubuntu-System. Dieses Skript hat aber einige Unzulänglichkeiten, die im Forum in einem Beitrag des Nutzers miletrac beschrieben worden sind.

Die grundsätzlich erforderlichen Schritte sind

  • Linux-Betriebssystem installieren
  • Kompletten LAMP-Stacks installieren und einrichten
    • Apache Webserver
    • Datenbank (z.B. MariaDB)
    • PHP[1] (Version 8, eventuell maximale Upload-Größe und andere Parameter vergrößern)
    • Firewall
    • Bereitstellung eines SSL-Zertifikats
  • webtrees herunterladen, entpacken, Dateirechte setzen und einrichten (ggf. PrettyURLs aktivieren); siehe Abschnitt "Erstinstallation von webtrees"
  • Backup-Möglichkeit schaffen und testen

Synology Netzlaufwerk

Netzlaufwerke (NAS[7]) von Synology nutzen als Betriebssystem DiskStation Manager (DSM), ein Linux-basiertes Betriebssystem. Je nach Leistungsfähigkeit der verwendeter Hardware ist die Nutzung von webtrees möglich. Es kann z.B. eine auf Docker[8] basierende Installation erfolgen.

Nuvola pen.svg Installation auf einem Netzlaufwerk von Synology genauer beschreiben Nuvola pen.svg

Raspberry Pi

Das für einen Raspberry Pi[9] empfohlene Betriebssystem ist das auf Debian basierende Raspberry Pi OS. Die Leistungsfähigkeit eines Raspberry Pi reicht mit einigen Einschränkungen durchaus für eine Nutzung von webtrees aus. Allerdings ist die Anzahl gleichzeitiger Nutzerzugriffe und die Größe der Stammbäume limitiert.

Nuvola pen.svg Installation unter Raspberry Pi OS genauer beschreiben Nuvola pen.svg

Virtueller Server

Eine Möglichkeit zum Betrieb eines webtrees-Servers ist die Nutzung eines virtuellen Servers. Solche Server können in ihrer Leistungsfähigkeit leicht skaliert werden, was sich dann natürlich auch in den entsprechenden Kosten bemerkbar macht. Ein Vorteil einer solchen Lösung ist weiterhin, dass virtuelle Server mehr oder weniger leicht von einem physischen Server auf einen anderen Server oder sogar von einem Anbieter zu einem andern Anbieter verschoben werden können. Dadurch lassen sich sehr stabile und sichere Lösungen gestalten.

Es gibt auch kostenlose virtuelle Server. Eine Anleitung zum Einrichten eines kostenlosen Servers auf Basis eines Oracle Cloud-Kontos, der Installation von Docker und eines Secure Web Application Gateways (SWAG) sowie dem Aufbau einer Domain über DuckDNS ist in einem Blog-Beitrag sehr gut beschrieben.

Nuvola pen.svg docker und SWAG und Domain über DuckDNS jeweils kurz beschreiben Nuvola pen.svg

Installation von webtrees

Nachdem der Hosting-Anbieter bzw. der Server ausgewählt worden sind, steht die Installation von webtrees auf dem Server an. Die im Folgenden beschriebenen Schritte sind dabei erforderlich

Anstatt webtrees selbst zu installieren, kann man auch fertige Installationsdienste oder vorgefertigte Container-Lösungen nutzen, wenn der vorgesehene Host das unterstützt (etwa Docker, Installatron, OpenSuse, Puppet, Softaculous, Yunohost). Dazu gibt es ergänzende Hinweise in der Original-webtrees-Dokumentation. Für einige Hosting-Anbieter und Servertypen liegen dort ebenfalls noch zusätzliche Hinweise (für Bluehost, Cloudflare, Microsoft/IIS, OVH). Ansonsten zeigen die folgenden Abschnitte exemplarisch alle Schritte bei der Installation. Da jeder Server und jede Installationsumgebung Unterschiede aufweisen können, wird es auch bei Ihrer Installation Abweichungen geben.

Voraussetzungen für die Installation

Bevor webtrees installiert werden kann, muss die Systemumgebung geprüft oder vorbereitet werden. Bei den meisten Hosting-Angeboten wird bereits alles passend parat stehen, was für webtrees benötigt wird. Wenn man einen Server selbst aufsetzt, muss man die im folgenden beschriebenen Systemkomponenten installieren und konfigurieren. Insbesondere muss man sich um die erforderliche System-Sicherheit permanent und selber kümmern.

Systemumgebung

Die Webpräsenz sollte zumindest über einen FTP-Zugang[10] erreichbar sein, um den Datentransfer zu ermöglichen. Besser ist noch zusätzlich ein Fernwartungszugang per SSH[11] oder RDP[12], da hierüber noch mehr Möglichkeiten bestehen (etwa zur Einrichtung von Cronjobs[13] oder bei der Anpassung der Dateirechte).

Für die webtrees-Anwendung werden etwa 120 MB an Speicherplatz benötigt.[14] Dazu kommt der individuelle Platzbedarf für Medien- und GEDCOM-Dateien sowie Speicher für Erweiterungsmodule, Cachedaten und Upgrade-Dateien.

Weitere Anforderungen an die Server-Performance hängen stark von den eigenen Wünschen und der Bereitschaft ab, wieviel Geld für die Webpräsenz ausgegeben werden kann. Relevant für die Anforderungen sind die Anzahl der gleichzeitigen Benutzer, die Menge und Größe der Multimediadateien und die Menge an zu verwaltenden Datensätzen. Eine Idee für die Anforderungen an Arbeitsspeicher und zugesicherter Ausführungszeit der PHP-Skripte gibt der Abschnitt Server überprüfen.

PHP

PHP[1] muss für die aktuelle Version von webtrees in einer der folgenden Versionen installiert sein: 7.4, 8.0, 8.1, 8.2, 8.3 oder 8.4. Die PHP-Version 7.4 wird seit dem 28. November 2022 nicht mehr offiziell gepflegt; daher wird diese Version auch von webtrees nicht mehr unterstützt.

Je nachdem welche PHP-Version auf dem Web-Server installiert ist, können verschiedene Versionen von webtrees genutzt werden (näheres zu den Versionsbezeichnungen bei webtrees ist im nachfolgenden Abschnitt "Versionen von webtrees" beschrieben). Die folgende Tabelle zeigt die Abhängigkeiten zwischen den PHP- und den webtrees-Versionen.

Durch webtrees unterstützte PHP-Versionen
webtrees Zweig Status Letzte Version PHP 5.3-5.6 PHP 7.0-7.3 PHP 7.4 PHP 8.0 PHP 8.1-8.4
2.2 in Entwicklung dev
2.1 volle Unterstützung 2.1.17
2.0 nur noch Sicherheits-Updates 2.0.26
1.7 keine Unterstützung mehr 1.7.20
1.4 keine Unterstützung mehr 1.4.6

webtrees benötigt die folgenden PHP-Erweiterungsbibliotheken[15]

  • ext-ctype
  • ext-curl
  • ext-exif
  • ext-fileinfo
  • ext-gd
  • ext-iconv
  • ext-intl
  • ext-json
  • ext-mbstring
  • ext-pcre
  • ext-pdo (und die Treiber für die verwendete Datenbank - mysql/postgres/etc.)
  • ext-session
  • ext-simplexml
  • ext-xml
  • ext-zip

Die Situation ist allerdings nicht ganz einfach, denn es gibt für einige der erforderlichen Erweiterungen auch Ersatzlösungen[16]. Zum Beispiel werden in webtrees Funktionen von „php-mbstring“ verwendet, aber diese werden zusätzlich auch über „symfony/polyfill-mbstring“ eingebunden. webtrees funktioniert also auch ohne die PHP-Erweiterung, wenngleich auch etwas langsamer.

Dasselbe gilt für „php-calendar“, das von „fisharebest/ext-calendar“ ersetzt werden kann. Es kann auch noch weitere Funktionen geben, die in ähnlicher Form, eventuell mit eingeschränkter Funktionalität arbeiten, wenn die eigentliche Bibliothek fehlt.

Welche PHP-Erweiterungen aktuell installiert sind, lässt sich über den Menüpunkt "Webseite / Server Information“ im Verwaltungsmenü anzeigen.

Crystal error.png Die Erweiterung php-psr sollte nicht installiert werden, da es dann zu Fehlern mit webtrees kommen kann.[17] Crystal error.png

Datenbank

webtrees verwendet in der aktuellsten Version die Laravel-Datenbankkomponente und unterstützt damit folgende gängige Datenbankmanagementsysteme (DBMS)[18] [19]:[20]

  • MySQL[21] - Version 5.7 oder höher
  • MariaDB[22] - Version 10.2 oder höher
  • SQLite[23] - Version 3.8.8 oder höher
  • Microsoft SQL Server[24] - 2017 oder höher
  • PostgreSQL[25] - Version 9.6 oder höher

In Abhängigkeit des installierten Versionszweiges von webtrees, muss die Datenbank in einer passenden Version installiert sein, die der folgenden Tabelle zu entnehmen ist (näheres zu den Versionsbezeichnungen bei webtrees ist im nachfolgenden Abschnitt "Versionen von webtrees" beschrieben).

Durch webtrees unterstützte Datenbank-Versionen
webtrees Zweig Status Letzte Version MySQL MariaDB SQLite SQL Server PostgreSQL
2.2 in Entwicklung dev ✅ 5.7+ ✅ 10.3+ ✅ 3.8.8+ ✅ 2017+ ✅ 10.0+
2.1 volle Unterstützung 2.1.17 ✅ 5.7+ ✅ 10.2+ ✅ 3.8.8+ ✅ 2017+ ✅ 9.6+
2.0 nur noch Sicherheits-Updates 2.0.26 ✅ 5.6+ ✅ 10.1+
1.7 keine Unterstützung mehr 1.7.20 ✅ 5.5+ ✅ 5.5+
1.4 keine Unterstützung mehr 1.4.6 ✅ 5.5+ ✅ 5.5+

MySQL/MariaDB wird für Produktionsserver empfohlen. webtrees verwendet die Sortierfunktionen von MySQL, um Namen in verschiedenen Sprachen korrekt zu suchen und zu sortieren.
PostgreSQL und SQL-Server sind weitgehend ungetestet, sollten aber funktionieren. SQLite eignet sich gut für kleine Websites, ist aber bei vielen gleichzeitigen Benutzern nicht leistungsstark genug.

Bei der Einrichtung der Datenbank besteht mit dem frei wählbaren Tabellennamen-Präfix (Vorgabewert ist wt_) die Möglichkeit, mehrere webtrees-Anwendungen in einer Datenbank kollisionsfrei abzuspeichern. Dies sollte nur erfolgen, wenn nicht ausreichend Datenbanken im Hosting-Paket enthalten sind. Grundsätzlich sollte für jede Anwendung eine eigene Datenbank zum Einsatz kommen, was den Betrieb[26] vereinfacht. Aus Sicherheitsgründen ist auch die Verwendung unterschiedlicher Datenbanknutzer für die verschiedenen Anwendungen sinnvoll.

Crystal error.png Derzeit unterstützt webtrees bei der Zeichenkodierung in der Datenbank nur UTF8_MB3, aber nicht UTF8_MB4. Dadurch ist es nicht möglich Texte oder andere Datenfelder zu speichern, die etwa Emoji enthalten.[27] Crystal error.png

Web-Server

Nuvola pen.svg Beschreiben: welche Webserver kommen in Frage (Apache, Microsoft IIS, ...)? Nuvola pen.svg

Internet-Anbindung

Entweder ist eine Internet-Domäne bereits Bestandteil des Vertrages mit dem Hosting-Anbieter oder diese muss separat bei einem Anbieter von Internet-Domänen gemietet werden. Als Beispiel wird im Folgenden die Domäne musterfamilie.de verwendet.

Der Zugang zu webtrees sollte in jedem Fall verschlüsselt erfolgen, d.h. es sollte das Protokoll https zur Verwendung kommen. Von einer ungesicherten Anbindung mit http wird abgeraten.

Es gibt zwei mögliche Konfigurationen, wie webtrees über das Internet von einem Browser adressiert werden kann

  • webtrees direkt in die Heimatseite integriert: https://musterfamilie.de
  • webtrees in einer Subdomain, etwa "ahnen", zur Heimatseite: https://ahnen.musterfamilie.de

Die Variante mit der Subdomain bietet sich insbesondere dann an, wenn noch weitere Anwendungen in der Domäne installiert werden sollen (etwa Wordpress). Nicht in jedem Mietvertrag für die Heimatseite wird es eine Option geben, die die freie Wahl von Subdomains vorsieht. Wenn man die Variante mit der Subdomain wählt, dann installiert man webtrees in einen Unterordner des Hauptverzeichnisses des Web-Servers, etwa in den Ordner "/webtrees" und ordnet in der Domänen-Verwaltung des Servers diesen Unterordner der Subdomain zu.

Aber auch wenn man keine Subdomain nutzen möchte oder kann, sollte man webtrees in einen eigenen Unterordner des Hauptverzeichnisses des Web-Servers installieren, etwa in den Ordner "/webtrees". Dann ist es möglich zukünftig auch noch andere Anwendungen in der Domäne zu betreiben und zu adressieren. Die Adressierung in einem auf webtrees zugreifenden Browser sieht dann so aus

  • webtrees in einem Unterordner der Heimatseite integriert: https://musterfamilie.de/webtrees

Die Anbindung an das Internet sollte eine hohe Datenrate bieten und ausfallsicher gestaltet sein. Wenn man ein Hosting-Angebot nutzt, wird man sich darum nicht kümmern müssen. Wenn man webtrees auf einem lokalen Server installiert hat und den Wunsch hat, dass dieser aus dem Internet erreichbar sein soll, dann muss man sich eine dynamische Internet-Adresse besorgen, diese einrichten und im eigenen Router eine Port-Weiterleitung zu dem eigenen Web-Server konfigurieren.

Nuvola pen.svg Noch beschreiben: Installation der Zertifikate für https (für Domain bzw. Subdomain) Nuvola pen.svg

E-Mail

Um die optionalen E-Mail-Funktionen von webtrees nutzen zu können, muss ein E-Mail-Konto vorhanden sein. Die Konfiguration ist im Abschnitt "E-Mail-Versand" im Kapitel "Anleitung für Administratoren" beschrieben.

Werkzeuge für den Webmaster

Neben den Voraussetzungen auf der Seite des Servers, benötigt man als Webmaster noch lokale Programme.

Nuvola pen.svg Beschreiben: Browser, ftp-Programm, Datenbankmanagement-Programm, E-Mail, ... Nuvola pen.svg

Werkzeuge für einen Programmierer

Neben den Werkzeugen, die ein Webmaster benötigt, sollte ein Programmierer von Erweiterungsmodulen noch weitere Programme installieren.

Nuvola pen.svg Programmiertools wie PhpStorm kurz beschreiben. Nuvola pen.svg

Erstinstallation von webtrees

Nachdem das ZIP-Archiv der aktuellen Version vom webtrees-GitHub-Server (siehe github.com/fisharebest/webtrees/releases) heruntergeladen wurde, müssen die Dateien entpackt und im Zielordner auf dem Webserver abgelegt werden. Wie dies erfolgt, hängt von der Konstellation ab. Bei einem lokalen Webserver auf dem eigenen Arbeitsrechner kann das Entpacken und Ablegen direkt geschehen. Bei einem gehosteten Server kann dies auch per SSH oder RDP möglich sein oder es muss über den Zwischenschritt des temporären Entpackens auf dem Arbeitsrechner und dem Hochladen per FTP auf den Server erledigt werden. Zumindest die gesetzten Dateirechte sollten in diesem Schritt geprüft werden, damit der Webserver die Dateien auch lesen und verarbeiten darf.

Danach erfolgt die Ersteinrichtung wie im nachfolgenden Abschnitt beschrieben.

Crystal error.png Bei der Speicherung der Programmdateien und Daten auf dem Server dürfen keine "Symbolischen Verknüpfungen"[28] genutzt werden, da diese seit Version 2.0 nicht mehr unterstützt werden.[29] Crystal error.png

Ersteinrichtung

Nach dem Kopieren der webtrees-Anwendungsdaten auf den Webserver muss für den Abschluss der Ersteinrichtung in einem Web-Browser die neue Site aufgerufen werden. Dies sollte unmittelbar passieren, damit niemand Unbefugtes in der Zwischenzeit Schaden anrichten kann.

Wird die Konfigurationsdatei data/config.ini.php bei der Ausführung nicht gefunden, wird automatisch der Einrichtungsassistent angezeigt. Die Konfigurationsdatei wird am Ende des Vorgangs automatisch erstellt, so dass zukünftig beim Start von webtrees der Einrichtungsassistent nicht mehr erscheinen wird.

Sprache festlegen

Einrichtungsassistent (Seite 1) - Sprachauswahl

Der erste Schritt ist die Auswahl der Sprache, in der die Dialogführung im weiteren erfolgen soll.

Server überprüfen

Einrichtungsassistent (Seite 2) - Serverleistung prüfen

Es folgt die Prüfung der Serverleistung[30]: Die Speicher- und Prozessorzeit-Anforderungen sind abhängig von der Anzahl der Personen in Ihrem Stammbaum und den Möglichkeiten des genutzten Webhostings. Die Seite zeigt eine kurze Liste typischer Anforderungen:

  • Kleiner Stammbaum (500 Personen): 16-32 MB Hauptspeicher, 10-20 Sekunden Prozessorzeit
  • Mittlerer Stammbaum (5000 Personen): 32-64 MB Hauptspeicher, 20-40 Sekunden Prozessorzeit
  • Großer Stammbaum (50000 Personen): 64-128 MB Hauptspeicher, 40-80 Sekunden Prozessorzeit


Datenbankanbindung konfigurieren

Einrichtungsassistent (Seite 3) - DBMS-Auswahl

Bei den meisten Installationen dürfte MySQL[21]/MariaDB[22] zum Einsatz kommen (siehe dazu der oben stehende Abschnitt "Datenbank").


Je nach DBMS-Wahl müssen unterschiedliche Parameter für die Datenbank-Verbindung angegeben werden

  • Servername (wahrscheinlich in vielen Fällen localhost, da der Datenbank-Server häufig auf dem selben Host wie der Webserver ausgeführt wird)
  • Portnummer (Standard: MySQL=3306 / PostgreSQL=5432 / MS SQL=1433)
  • Datenbankbenutzer und Passwort
  • ggf. ein Tabellenpräfix (wenn in einer Datenbank Tabellen für unterschiedliche Anwendungen angelegt werden)

Bei SQLite[23] beschränken sich die Angaben auf den Ablagepfad der Datei und das Tabellenpräfix.

Administratorkonto einrichten

Einrichtungsassistent (Seite 5) - Administratorkonto

Zum Abschluss der Einrichtung werden noch Informationen für die Erstellung des Administratoren-Kontos abgefragt. Danach erfolgt die Weiterleitung zum Formular, um den ersten Stammbaum anzulegen.

config.ini.php

Die Haupt-Konfigurationsdatei von webtrees data/config.ini.php wird bei der Ersteinrichtung automatisch erstellt. Sie kann dann folgendermaßen aussehen:

; <?php return; ?> DO NOT DELETE THIS LINE
dbtype="mysql"
dbhost="localhost"
dbport="3306"
dbuser="webtrees"
dbpass="Geheimes-Passwort"
dbname="webtrees"
tblpfx="wt_"
base_url="https://musterfamilie.de/webtrees"
rewrite_urls="0"

Es ist eigentlich eine INI-Datei[31] mit Schlüssel-Wert-Paaren, die in einer PHP[1]-Datei verpackt wurde. Zur zusätzlichen Absicherung der Daten - neben dem Verzeichnisschutz - ist die erste Zeile wichtig, da sie die Ausgabe im Browser verhindert. Weitere Details können auch dem Abschnitt zu Pretty-URLs entnommen werden.

Info
Insbesondere beim Erstellen oder nachträglichen Ändern der Datei auf Windows-Systemen ist zu beachten, dass diese in der richtigen Kodierung - UTF-8[32] (ohne Byte-order-Mark/BOM) - gespeichert und hochgeladen wird. Ansonsten kann es zu Fehlern kommen.[33]


Möglichkeiten zum Blockieren ganzer Netze oder Organisationen siehe Ausführungen im gleichnamigen Abschnitt weiter unten.

Test der Installation

Nachdem die Erstinstallation abgeschlossen ist, sollte in einem ersten Test die einwandfreie Funktion der Website geprüft werden.

Nuvola pen.svg Noch beschreiben: wie testet man am besten? Nuvola pen.svg

Test mit dem Import einer GEDCOM-Datei

Test der eMail-Funktion

Installation von Erweiterungsmodulen

Nach dem erfolgreichen Test können nun noch Erweiterungsmodule installiert werden (siehe dazu den Abschnitt "Erweiterungsmodule"). Dies sollte schrittweise erfolgen, damit bei eventuell auftretenden Problemen das verursachende Erweiterungsmodul leichter identifiziert werden kann.

Als Webmaster können Sie auf dem Server im Ordner /modules_v4 installierte Erweiterungsmodule durch eine Umbenennung auf einfache Art deaktivieren. Dazu müssen Sie in den Ordnernamen einen "." (Punkt) einfügen, etwa indem Sie an den Ordnernamen ein ".disable" anhängen. Also indem Sie etwa den Ordner jc-theme-justlight in jc-theme-justlight.disable umbenennen. Solche Ordner sind dann für webtrees unsichtbar. Durch das Entfernen des angehängten Namensbestandteils zu einem späteren Zeitpunkt, wird das Erweiterungsmodul wieder für webtrees sichtbar. Diese Funktion reicht somit tiefer als das Aktivieren oder Deaktivieren von Erweiterungsmodulen im Menü "Module" durch einen Administrator und ist immer dann zu empfehlen, wenn vermutet wird, dass ein Erweiterungsmodul Fehler verursacht.

Upgrade

Eine Aktualisierung von webtrees geht schnell und einfach. Falls der Kern von webtrees auf einen neuen Versionsstand gebracht werden soll, stehen zwei verschiedene Wege zur Verfügung: das automatische und das manuelle Verfahren. Für die Aktualisierung eines Erweiterungsmoduls steht nur das manuelle Verfahren zur Verfügung.

Upgrade von webtrees

Hinweis auf eine neue Version

Das Vorliegen einer neuen Version wird dem Administrator in einer Hinweiszeile angezeigt. Es wird dringend empfohlen, die Installation zu aktualisieren, sobald eine neue Version von webtrees zur Verfügung steht. Selbst kleinere Upgrades enthalten in der Regel eine erhebliche Anzahl von beseitigten Fehlern sowie Verbesserungen in der Bedienoberfläche oder Programmerweiterungen. Gefundene und behobene Sicherheitslücken führen immer zu einer neuen Version, die dann schnellstmöglich eingespielt werden sollte. Falls nicht sowieso regelmäßig Datensicherungen erstellt werden, sollte vor einem Update immer eine Sicherung durchgeführt werden.

Versionen von webtrees

Die Versionsnummern von webtrees in der Form x.y.z, also etwa 2.1.3, folgen folgendem Schema

  • die erste Zahl "x" kennzeichnet eine Hauptversion, die nicht miteinander kompatible Versionen unterscheidet.

Die Datenbankstruktur von webtrees in der Version 1 und die internen Schnittstellen der Module passen nicht zur Version 2. Erweiterungsmodule für webtrees 1 funktionieren also nicht mit der Version 2 und umgekehrt. Ein Upgrade bei einem Wechsel der Hauptversion ist nur manuell möglich. Hierzu gibt es eine spezielle Anleitung und es müssen umfangreiche Vorbereitungen für das Upgrade getroffen werden.

  • die zweite Zahl "y" kennzeichnet eine neue Version, die grundsätzlich neue Funktionen und geänderte interne Schnittstellen mit sich bringt.

Erweiterungsmodule können kompatibel sein, sind es aber wahrscheinlich eher nicht. Vor dem Einspielen eines Updates sollte also geprüft werden, ob alle im Einsatz befindlichen Erweiterungsmodule in einer kompatiblen Version vorliegen. Der Wechsel von Version 2.0 zur Version 2.1 etwa betrifft so viele interne Schnittstellen, dass die meisten Erweiterungsmodule angepasst werden müssen. Bei einem Wechsel der webtrees-Version kann es auch vorkommen, dass andere Versionen von PHP unterstützt werden, so dass der Webmaster gleichzeitig auch einen Wechsel der PHP-Version vornehmen kann oder muss.

  • die dritte Zahl "z" kennzeichnet eine Unterversion, die etwa gefundene Fehler behebt oder kleinere Anpassungen mit sich bringt.

Im Normalfall werden die meisten Erweiterungsmodule von diesen Änderungen nicht betroffen sein und können deshalb weiter verwendet werden.

Eine Übersicht über alle bislang vorliegenden Versionen von webtrees ist im Kapitel "Allgemeine Erläuterung des Programms" aufgeführt.

Automatisches Upgrade

Protokoll des Aktualisierungsablaufs

webtrees hat die Fähigkeit, sich automatisch zu aktualisieren. Im Rhythmus von nicht weniger als 24 Stunden sucht webtrees frühestens nach einer aktualisierten Version. Sollte ein Upgrade verfügbar sein, erscheint eine Hinweiszeile mit einem Link, sofern man als Administrator angemeldet ist. Durch einen Klick auf den Link kann der Administrator den Upgrade-Assistenten für das automatische Update nutzen. In der Hinweiszeile wird auch vermerkt, wann der Upgrade-Assistent zuletzt gelaufen ist. Bei Bedarf kann man durch einen Klick auf den Link eine sofortige Prüfung auf die Verfügbarkeit einer neueren Version anstoßen.

Automatische Upgrades sind von Berechtigungen und Ressourcen auf dem Server abhängig. Die verwendeten PHP-Skripte benötigen die Berechtigung

  • Dateien vom webtrees-GitHub-Server über eine gesicherte Kommunikation auf den webtrees-Server zu kopieren.
  • Dateien auf dem Server zu überschreiben. Wenn der Webserver Skripte als anonymer Benutzer ausführt, dann wird er keine Berechtigung haben, Dateien zu aktualisieren. Wenn Sie also aufgefordert werden, die Berechtigungen des Ordners ./data auf 777 zu ändern, können Sie das automatische Upgrade nicht verwenden; sie müssen in diesem Fall dann ein manuelles Upgrade durchführen oder die Voraussetzungen für das automatische Upgrade schaffen.

Der Server muss ausreichend leistungsfähig sein, um das Upgrade abzuschließen, ohne CPU- und Speichergrenzen zu überschreiten. Der Server muss ungefähr 130 MB freien Speicherplatz haben, um die neue Version zu speichern und zu entpacken. Das Upgrade dauert normalerweise zwischen 15 und 60 Sekunden. Wenn nach fünf Minuten keine Antwort erfolgt ist, dann wurde wahrscheinlich eine CPU-Zeitbegrenzung erreicht und das Upgrade ist fehlgeschlagen.

Info
Wenn das automatische Upgrade aus irgendeinem Grund fehlschlägt, sollten Sie als Webmaster zuerst versuchen das zu Grunde liegende Problem zu lösen und alternativ ein manuelles Update durchführen. Das Verzeichnis ./data/tmp/upgrade auf dem Server sollte in diesem Fall manuell gelöscht werden.


Nuvola pen.svg Noch beschreiben: was muss der Webmaster genau tun, damit sein Server die benötigten Fähigkeiten hat Nuvola pen.svg

Der automatische Upgrade-Prozess erfolgt in den folgenden Schritten

Warnung bei installierten Erweiterungsmodulen
  1. Falls die Vesta-Erweiterungsmodule installiert sind, erfolgt ggf. eine Warnung, dass diese Erweiterungsmodule eventuell mit der neuen Version von webtrees nicht kompatibel sein könnten (siehe nebenstehende Abbildung). Hier sollte man also den Prozess ggf. abbrechen, wenn man erst die Kompatibilität prüfen möchte. Andernfalls werden die Vesta-Module nach dem Upgrade automatisch deaktiviert. Andere Erweiterungsmodule verwenden keine solche Benachrichtigungsfunktion. Hilfreich ist immer ein Blick ins webtrees-Forum und auf die GitHub-Seiten der installierten Erweiterungsmodule. Ein Upgrade auf einem webtrees-Testserver kann die Sicherheit bringen, dass sich die installierten Erweiterungsmodule mit der neuen webtrees-Version vertragen werden; erst danach sollte dann das Upgrade im Produktivsystem eingespielt werden.
  2. Danach wird ein Verzeichnis ./data/tmp/upgrade angelegt, in das temporär die neuen Dateien geladen werden.
  3. Nun wird geprüft, ob es noch Änderungen von Daten in den Stammbäumen gibt, die noch nicht vom Moderator freigegeben wurden (siehe Abschnitt "Freigeben von Änderungen durch einen Moderator"). Der Upgrade-Prozess bricht aber nicht ab, wenn noch solche Änderungen vorliegen, es erfolgt lediglich eine Warnmeldung.
  4. Alle Stammbäume werden automatisch exportiert, d.h. es wird für jeden Stammbaum im Verzeichnis ./data eine aktuelle GEDCOM-Datei angelegt (der Dateiname enthält das Datum des Exports).
  5. Vom webtrees-GitHub-Server wird die neue webtrees-Version als zip-Datei in das im Schritt 2 angelegte Verzeichnis kopiert.
  6. Dateien in den Verzeichnissen ./app, ./resources und ./vendor, die nicht mehr benötigt werden, werden gelöscht.
  7. Die zip-Datei wird in das temporäre Verzeichnis entpackt und die entpackten Dateien werden dann an das Zielverzeichnis kopiert.
  8. Zum Abschluss öffnet sich das Verwaltungsmenü. Hier kann vom Administrator kontrolliert werden, ob die neue Version korrekt angezeigt wird.

Manuelles Upgrade

Beim manuellen Upgrade[34] lädt der Webmaster eine neue, freigegebene Version von webtrees auf einen lokalen Rechner herunter und entpackt diese Version dort. Falls Erweiterungsmodule installiert sind, sollte überprüft werden, ob diese mit der neuen Version von webtrees kompatibel sind. Eventuell stehen für diese Module auch Upgrades zur Verfügung.

Während neue Dateien hochgeladen werden, würde ein Besucher der Website auf eine Mischung aus alten und neuen Dateien stoßen. Dies würde ein unvorhersehbares Verhalten oder Fehler verursachen. Um dies zu verhindern, muss vor dem Kopieren die Datei /data/offline.txt angelegt werden. Solange diese Datei existiert, werden die Besucher der Website eine Meldung sehen wie "Die Webseite befindet sich im Wartungsmodus. Sie sollten es in einigen Minuten erneut versuchen.". Wenn die Datei "offline.txt" leer ist, wird diese Standardnachricht angezeigt; alternativ kann man eine besondere Nachricht in diese Datei schreiben, so dass die Besucher ersatzweise diese Meldung sehen. Man sollte als nächstes die Verzeichnisse /app, /resources und /vendor löschen, damit alte Dateien entfernt werden. Dann werden alle Ordner und Dateien mit einem ftp-Programm in das webtrees-Verzeichnis auf dem Webserver kopiert. Nach dem Kopieren der Dateien auf den Server muss die Datei /data/offline.txt wieder entfernt werden. Auch wenn der Administrator in der Systemsteuerung ein anderes Verzeichnis für den Datenordner gewählt haben sollte, der Speicherort für diese Datei ist immer im Verzeichnis /data.

Beim Wechsel von einer Unterversion zu einer anderen, kann man üblicherweise den Inhalt der Dateien auf dem Server einfach überschreiben. Beim Wechsel zu einer neuen Version oder gar einer Hauptversion empfiehlt es sich alle Dateien im webtrees-Verzeichnis auf dem Server zuvor zu löschen. Davon ausgenommen ist die Datei .htaccess im Stammverzeichnis von webtrees und die Dateien im Unterverzeichnis /data.

Info
Wenn im Zuge eines Upgrades auch Datenbank-Upgrades erforderlich sind, dann werden diese automatisch durchgeführt, sobald ein Nutzer die Website das nächste Mal besucht. Aus diesem Grund kann es dann länger dauern, bis die erste Seite angezeigt wird.


Upgrade in Abhängigkeit von der Ausgangsversion

Wenn Sie derzeit eine der unten aufgeführten älteren Versionen von webtrees verwenden, gibt es beim Upgrade auf eine neuere Version zusätzliche Dinge zu beachten. Da die Hinweise, die bei einem solchen Versionswechsel zu beachten sind, teilweise recht umfangreich sind und den Umfang dieses Abschnittes sprengen würden, sind diese teilweise auf Unterseiten ausgelagert

oder es wird auf die englischsprachigen Originalseiten verwiesen. Im folgenden finden Sie eine Liste der Ausgangsversionen mit den Hinweisen, was zu beachten ist, wenn Sie von einer solchen Version auf eine neuere Version wechseln wollen.

  • 2.1.8 und 2.1.9: Diese Versionen enthalten einen Fehler im Auto-Upgrade-Code. Das automatische Upgrade scheint erfolgreich ausgeführt zu werden, es werden jedoch keine Dateien installiert. Daher wurden diese Versionen bei GitHub schnell ersetzt, aber einige Benutzer hatten sie bereits installiert. Um den automatischen Upgrade-Assistenten wieder verwenden zu können, muss eine Datei ersetzt werden: app/Http/RequestHandlers/UpgradeWizardStep.php. Die aktualisierte Version dieser Datei kann hier heruntergeladen werden.
  • bis 2.0.26: beim Update auf die Version 2.1 ändern sich in Vorbereitung auf den GEDCOM-Standard 7.0 einige Datenfelder
  • 2.0.8: Diese Version enthält einen Fehler im Auto-Upgrade-Code, daher wurde die Version bei GitHub schnell ersetzt, aber einige Benutzer hatten sie bereits installiert. Um den automatischen Upgrade-Assistenten wieder verwenden zu können, müssen zwei Dateien bearbeitet werden
    • Bearbeiten Sie zunächst /app/Factories/FilesystemFactory.php und ändern Sie Zeile 40 von /../../.. in /../…. Dies behebt den Fehler.
    • Bearbeiten Sie zweitens /app/Webtrees.php und ändern Sie Zeile 101 von „2.0.8“ in „2.0.7“. Dadurch wird das automatische Upgrade wieder aktiviert.
  • 1.7.10 – 1.7.20: Es sind vor einem manuellen Upgrade auf die Version 2 diverse Änderungen an den Einstellungen, der Serverkonfiguration und eventuell auch Anpassungen in den genealogischen Daten notwendig. Daher sollten Sie unbedingt diese Anleitung vor dem Upgrade beachten.
  • 1.4.0 – 1.7.9: Es muss vor einem Umstieg auf die Version 2 erst ein Upgrade auf die Version 1.7.20 erfolgen.
  • 1.0.0 – 1.3.2: Vor einem Upgrade muss zuerst die „Medien-Firewall“ deaktiviert werden (siehe Anleitung in englischer Sprache); dann muss ein manuelles Upgrade auf die Version 1.7.20 durchgeführt werden.
  • phpGedView: In webtrees 1.7.20 ist ein spezieller Migrationsassistent für das Vorgänger-Programm phpGedView integriert. Sie sollten daher diese Version als neue Instanz neben phpGedView installieren und dann den Migrationsassistenten nutzen. Beachten Sie, dass Sie keine funktionierende phpGedView-Installation benötigen. Sie benötigen nur die Datenbank und den Ordner "index". Nähere Hinweise finden Sie in der englischsprachigen Dokumentation.
Info
Alle hier eventuell benötigten älteren Versionen von webtrees findet man auf der webtrees-Download-Übersichtsseite.


Upgrade eines Erweiterungsmoduls

Wenn eines der Erweiterungsmodule in einer neuen Version vorliegt, erhält der Administrator beim Aufruf der Verwaltungsseite eine entsprechende Nachricht.

Nuvola pen.svg Noch beschreiben:
wie findet man heraus welches Erweiterungsmodul die Meldung erzeugt hat und wo man die aktuellere Version findet
Nuvola pen.svg

Dann lädt man als Webmaster das neue Release des Erweiterungsmoduls auf den lokalen Rechner herunter und entpackt den Inhalt. Eventuell muss man den gefundenen Ordnernamen noch entsprechend der Anleitung zu diesem Modul umbenennen, etwa von einer angehängten Versionsnummer befreien. Danach lädt man den Ordner mit einem ftp-Programm ins Verzeichnis modules_v4 der webtrees-Installation und überschreibt den dortigen Inhalt (man kann auch den alten Ordner mit dem Erweiterungsmodul auf dem Server zuvor löschen).

Zum Abschluss muss im Browser das Fenster mit webtrees erneut geladen, d.h. aufgefrischt werden, damit die Änderung sichtbar wird.

Warnung
Laden Sie für den Einsatz in einem Produktivsystem immer nur freigegebene Versionen von Erweiterungsmodulen herunter (Releases), nie Zwischenstände im Entwicklungszustand!



Pretty-URLs

Internet-Adressen, wie https://musterfamilie.de, werden für Unterseiten durch weitere Bestandteile ergänzt. Für webtrees gibt es dabei zwei mögliche Varianten, wie diese Adressen aussehen können. In ihrer Funktion sind sie identisch. Die URL-Varianten sind[35]

  • Standard-URL:
    https://musterfamilie.de/webtrees/index.php?route=/tree/demo
  • Pretty-URL[36]:
    https://musterfamilie.de/webtrees/tree/demo

Die zweite Variante hat den Vorteil, dass sie keinen Rückschluss darüber zulässt, welche Technik hinter der Website steckt (bei der ersten Variante erkennt man sofort, dass PHP verwendet wird). Daher ist die zweite Variante aus Sicherheitsgründen zu bevorzugen. Und diese Variante ist auch für Menschen einfacher zu lesen. Um Pretty-URLs ("hübsche URLs") zu aktivieren, benötigen Sie zwei Dinge

  1. Sie müssen den Webserver so konfigurieren, dass er "Pretty-URLs" akzeptiert und diese an webtrees weiterleitet. Die genaue Konfiguration ist bei jedem Webserver anders (Apache[37], NGINX[38], IIS[39], ...).
    Die Grundkonfiguration ist wie folgt
    • Statische Dateien werden in /public aufbewahrt. Diese können direkt ausgeliefert werden, wobei lange expires-Header verwendet werden.
    • Dynamische Seiten werden von index.php generiert. Alle nicht-statischen URLs sollten auf /index.php abgebildet werden.
    • Andere Dateien und Ordner sind privat und sollten nicht zugänglich sein, z. B. /app, /data, /modules_v4, /resources, /vendor.
  2. Sie müssen webtrees anweisen, Pretty-URLs zu erzeugen. Dazu müssen in der Datei data/config.ini.php zwei Zeilen hinzugefügt oder geändert werden:
base_url="https://musterfamilie.de/webtrees"
rewrite_urls="1"

Nachdem Sie Pretty-URLs aktiviert haben, erkennt webtrees weiterhin die Standard-URLs. Alle bereits vorhandenen Lesezeichen und Suchmaschinenverweise funktionieren also weiterhin.

Beispiel-Konfiguration für NGINX

Hier ein Beispiel für eine NGINX-Konfiguration für webtrees, die in einem Unterordner /webtrees/ installiert ist.

# Static files have versions in their URLs, and can be cached indefinitely.
location /webtrees/public {
    expires 365d;
    access_log off;
}

# GIT config files can contain credentials or other sensitive data.
location /webtrees/.git {
    deny all;
}

# User data is stored here by default.
location /webtrees/data {
    deny all;
}

# Nothing sensitive here, but there is no need to publish it.
location /webtrees/app {
    deny all;
}
location /webtrees/modules {
    deny all;
}
location /webtrees/resources {
    deny all;
}
location /webtrees/vendor {
    deny all;
}

# Rewrite all other requests onto the webtrees front-controller.
location /webtrees/ {
    rewrite ^ /webtrees/index.php last;
}

# webtrees runs from this one script.
location = /webtrees/index.php {
    include fastcgi.conf;
    fastcgi_pass unix:/run/php/php7.3-fpm.sock;
}


Beispiel-Konfiguration für Apache

Unterstützt der Server .htaccess-Dateien? Um dies zu testen, versuchen Sie, die webtrees-Konfigurationsdatei im Browser anzuzeigen (z. B. https://musterfamilie.de/data/config.ini.php). Wenn .htaccess-Dateien unterstützt werden, erhalten Sie den Fehler "403/Access-denied"[40]. Wenn nicht, dann sehen Sie eine Seite, die nur ein Semikolon enthält.

Speichern Sie die folgende .htaccess-Datei im Root-Ordner /webtrees:

### .htaccess file for webtrees

<IfModule mod_rewrite.c>
  RewriteEngine On
  RewriteBase /webtrees/
  
  # GIT config files can contain credentials or other sensitive data.
  RewriteRule \.git - [F]

  # User data is stored here by default.
  RewriteRule ^data(/|$) - [F]

  # Nothing sensitive here, but there is no need to publish it.
  RewriteRule ^app(/|$) - [F]
  RewriteRule ^modules - [F]
  RewriteRule ^resources(/|$) - [F]
  RewriteRule ^vendor(/|$) - [F]

  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteRule ^ index.php [L]
</IfModule>

Ändern Sie den Eintrag für RewriteBase so, dass er mit dem Pfadteil der webtrees-URL übereinstimmt; wenn webtrees in einer Subdomäne installiert wurde, etwa https://webtrees.musterfamilie.de, dann lautet dieser Eintrag RewriteBase /.

Datensicherheit und Datenschutz

Sichere Kommunikationsverbindung

https ...

Logfile-Überwachung

Zugriffsschutz

Dateirechte

.htaccess

.htaccess[41] (englisch hypertext access „Hypertext-Zugriff“) ist eine Konfigurationsdatei auf einem Webservern wie Apache[42]. In dieser Datei können verzeichnisbezogene Regeln aufgestellt werden.

Wenn man einen Apache-Webserver nutzt, kann eine .htaccess-Datei mit einem Texteditor erstellt und in das Root-Verzeichnis von webtrees kopiert werden. Ein Beispiel dazu, das Pretty-URLs erlaubt, ist im Abschnitt "Pretty-URLs" in diesem Kapitel beschrieben.

Beispielsweise kann man mit den Festlegungen in der .htaccess-Datei ein Verzeichnis oder einzelne Dateien durch HTTP-Authentifizierung vor unberechtigten Zugriffen schützen. Auch Fehlerseiten (wie die Seite "404"[43]) oder Weiterleitungen innerhalb des Servers lassen sich darin festlegen, ohne dass der Webserver neu gestartet werden muss; Änderungen in der .htaccess-Datei treten sofort in Kraft, weil die Datei bei jeder Anfrage an den Webserver ausgewertet wird. Festlegungen in .htaccess gelten für das Verzeichnis, in dem die Datei gespeichert ist, und in allen Unterverzeichnissen; diese Festlegungen können aber in den Unterverzeichnissen überschrieben werden.

Um etwa im webtrees-Ordner /data den Zugriff auf die dort liegende Mediendateien und ggf. auch .ged-Dateien von außen einzuschränken, kann man dort eine .htaccess-Datei mit dem folgenden Inhalt hinterlegen:

order allow,deny
deny from all

Mit der ersten Zeile wird festgelegt, dass zuerst alle "allow"-Regeln bearbeitet werden und dann alle "deny"-Regeln[44]. Die Ablehnung von Zugriffen ist damit der Standard. Mit der zweiten Zeile wird der Zugriff für alle externen Rechner gesperrt[45]. Diese .htaccess-Datei im Ordner /data ist die einzige, die in der webtrees-Installation bei der Auslieferung enthalten ist.

Um Weiterleitungsregeln in der .htaccess-Datei zu testen, kann man die Webseite htaccess.madewithlove.com verwenden.

Unerwünschte Zugriffe auf die Website blockieren

Um unerwünschte Zugriffe auf die webtrees-Website zu blockieren, gibt es einige standardmäßig aktive Funktionen in webtrees. Im Bedarfsfall können diese noch angepasst werden. Zugriffsversuche werden im webtrees-Logfile dokumentiert und können dort analysiert werden.

Kategorien von Besuchern

Die Besucher Ihrer Website können ganz generell als gut oder schlecht eingestuft werden.

Zu den guten Besuchern gehören

  • Menschen
  • Suchmaschinen, die es Menschen ermöglichen, Ihre Website zu finden; zum Beispiel Google, Bing, DuckDuckGo, usw.
  • Werkzeuge zur Überwachung der Verfügbarkeit der Website, Website-Qualitätstestprogramme usw.

Zu den schlechten Besuchern gehören

  • Robots (Webcrawler), die Daten über Ihre Website sammeln, um sie an andere zu verkaufen. Zum Beispiel Werbetreibende, Abmahnanwälte, Suchmaschinenoptimierer.
  • Robots, die nach Schwachstellen auf Ihrer Website suchen.
  • Schlecht geschriebene Robots, die den Server stark belasten und ihn so für die guten Besucher verlangsamen.

Das Ziel ist es nun, die schlechten Nutzer in effizienter Art und Weise am Zugriff zu hindern ohne die guten Nutzer auszusperren.

robots.txt für seriöse Robots

Nach der Übereinkunft des Robots-Exclusion-Standard-Protokolls[46] liest ein Robot beim Auffinden einer Webseite zuerst die Datei robots.txt im Stammverzeichnis („root“) einer Domain. In dieser Datei kann festgelegt werden, ob und wie die Webseite von einem Webcrawler besucht werden darf. Der Webmaster hat so die Möglichkeit, ausgesuchte Bereiche der Website für (bestimmte) Suchmaschinen zu sperren. Das Protokoll ist rein hinweisend und ist auf die Mitarbeit des Robots angewiesen.

Nuvola pen.svg Beschreiben wie robots.txt funktioniert und dass es ggf. von webtrees automatisch erzeugt wird. Nuvola pen.svg

Standardmäßig blockierte Robots

webtrees enthält eine "Bad Bot Blocker"-Komponente. Diese filtert jede Anfrage an ihre Website.

Die folgenden Robots werden standardmäßig blockiert

  • Robots mit einem User-Agent-String, der sie als Datensammler für Werbetreibende oder Suchmaschinenoptimierer usw. ausweist.
  • Robots, die ihren User-Agent-String fälschen. Zum Beispiel Robots, die behaupten, von Google zu sein, aber nicht von einer Google-IP-Adresse aus operieren[47].

Wenn ein Robot blockiert wurde, wird im Webprotokoll ein Statuscode 406 angezeigt.

Blockieren ganzer Netze oder Organisationen

Der "Bad Bot Blocker"[48] von webtrees kann auch ganze IP-Netzwerke blockieren.[49]

Das Internet besteht aus vielen kleineren, miteinander verbundenen Netzwerken. Jedes dieser Netze hat eine Kennung, die so genannte "AS-Nummer"[50].

Sie können die AS-Nummer für eine konkrete IP-Adresse mit einer WHOIS[51]-Suche herausfinden.

Um diese Abwehrfunktion zu aktivieren, erstellen Sie einen Eintrag für block_asn in der Datei data/config.ini.php. Dies ist ein freies Textformat - webtrees sucht nach den Zeichenfolgen ASnnnnn an beliebiger Stelle in diesem Eintrag. Zum Beispiel:

block_asn="Bad company=AS123456, Evil organisation=AS654321"

Normalerweise werden Sie dies verwenden, um Server-Hosting-Unternehmen zu blockieren, die in dem Ruf stehen, ihren Kunden jede Art von Diensten (Spamming, Scanning, Hacking usw.) zu erlauben, ohne Fragen zu stellen. Dies wird oft als "kugelsicheres Hosting"[52] bezeichnet.

Dieses Feature wurde über die Konfigurationsdatei implementiert, um auf diese Weise leicht Hunderte von Anfragen pro Sekunde blockieren zu können. Müsste erst eine "teure" Verbindung zur Datenbank aufgebaut werden, könnte ein Angreifer den Server leicht überlasten, indem er zu viele Datenbankanfragen stellt.[53]

Blockieren von IP-Adressbereichen

Einzelne IP-Adressen oder ganze IP-Adressbereiche können auch über eine Funktion des Apache-Webservers für den Zugriff gesperrt werden, sofern ein solcher im Einsatz ist. Dazu erfolgt ein Eintrag in der .htaccess-Datei, der beispielsweise so aussehen kann, um zwei konkrete IP-V4-Adressen auszuschließen:

Order Allow,Deny
Allow from all
Deny from 5.188.62.21 5.188.62.26

Neben der Sperrung von einzelnen IP-V4 oder -V6-Adressen, können die Zugriffe auch für ganze Subnetze gesperrt werden.[54]

Schutz vor zu hoher Rate von Nutzereingaben

Wenn in einem kurzen Zeitraum zu viele Anfragen desselben Typs beim webtrees-Server eingehen (z. B. Passwort-Reset, Registrierung eines neuen Benutzers usw.), blockiert webtrees diese Anfragen mit einer Fehlermeldung: „HTTP 429 – zu viele Anfragen – versuchen Sie es später noch einmal“. Dies liegt daran, dass solche Anfragen dazu führen, dass E-Mails gesendet werden. Ein böswilliger Benutzer könnte Tausende dieser Anfragen auslösen, die dann dazu führen würden, dass Tausende von E-Mails an den Administrator gesendet werden. Daher werden solche Anfragen in ihrer Frequenz überwacht, sodass diese blockiert werden können, wenn „zu viele in zu kurzer Zeit“ eingegangen sind.

Spam-Schutz

webtrees verfügt über einen relativ einfachen eingebauten Spam-Schutz auf den Kontakt-Formular- und Registrierungsseiten, der ohne den Einsatz von Captchas[55] auskommt:[56][57]

  • Es wird auf der entsprechenden Webseite JavaScript ausgeführt, welches ein verstecktes Formularfeld setzt.
  • Der Benutzer muss die Seite mehr als 3 Sekunden lang betrachten, bevor er das Formular abschickt.

Falls eine dieser beiden Aktionen zu einem Fehler führt, wird die entsprechende Nutzereingabe verworfen.

Cookies

webtrees verwendet ein First-Party-Session-Cookie namens "__Secure-WT-ID". Es ist technisch erforderlich und bedarf daher nicht der Zustimmung des Nutzers.

Nuvola pen.svg Hinweis auf weitere Cookies, etwa von GVExport oder von Drittdiensten Nuvola pen.svg

Drittdienste

Nuvola pen.svg beschreiben, dass die Statistikgrafiken derzeit auf Google-Technik basieren und daher IP-Adressen an Google transferiert werden Nuvola pen.svg

Die html-Blöcke auf der Startseite eines Stammbaums und auf der "Meine Seite" unterstützen auch die Einbindung von externen Webseiten (etwa um externe Grafiken oder externen Code dort einzubinden). Damit gelangen auch Informationen über die Nutzer der Website an Drittdienste, so dass diese Funktionen in einer individuell erstellten Datenschutzerklärung dokumentiert werden müssen.

Nachverfolgungs- und Analyse-Dienste

Nuvola pen.svg Die einzelnen Dienste noch genauer beschreiben Nuvola pen.svg

Der Administrator kann in webtrees verschiedene Nachverfolgungs- und Analyse-Module aktivieren.

Diese Module erfassen und speichern Nutzungsinformationen und bereiten diese in Statistiken auf. Sobald diese Module aktiviert werden, werden die Hinweise in der automatisch erzeugten Datenschutzerklärung entsprechend ergänzt.

Datenschutzerklärung und Impressum

Nuvola pen.svg Die Standard-Erklärung beschreiben; Erweiterungsmodul anpassen als Alternativlösung beschreiben. Situation in AT und CH berüksichtigen. Nuvola pen.svg

Suchmaschinenoptimierung

Die Auffindbarkeit von webtrees-Seiten durch Suchmaschinen kann erwünscht oder unerwünscht sein.

Wenn man nicht möchte, dass die Seiten gefunden werden, muss man die im Abschnitt "robots.txt" beschriebene Funktion nutzen und die Einstellungen in der webtrees-Verwaltung wie im Abschnitt "Datenschutz" verwenden, um Informationen für Besucher unsichtbar zu machen. Suchmaschinen greifen mit den selben Rechten auf webtrees-Seiten zu wie Besucher.

Auf der anderen Seite kann es sinnvoll sein, dass einige der Informationen, die man in den Stammbäumen hinterlegt hat, durch Suchmaschinen indiziert werden. So können andere Familien- oder Ahnenforscher oder entfernte Familienmitglieder auf diese Informationen aufmerksam werden, wenn sie etwa nach einem Familiennamen im Internet suchen. Dadurch kann man dann mit diesen in Kontakt kommen und so die eigene Forschung entsprechend erweitern.

Nuvola pen.svg
Noch beschreiben
Was beeinflusst die Rangfolge bei den Suchtreffern? Wie unterstützt webtrees dies?
Nuvola pen.svg

sitemap.xml

Nuvola pen.svg
Die Funktion und der Aufbau von sitemap.xml muss noch beschrieben werden ...
Nuvola pen.svg
Nuvola pen.svg
Ergänzen von Hinweisen zu den Seiten von Suchmaschinen wo man die sitemap.xml einreichen kann
Nuvola pen.svg

Backup der genealogischen Daten und der Datenbank

Da ein jedes IT-System durch technische Probleme, durch Fehlkonfigurationen, Anwenderfehler oder durch Cyber-Attacken gestört werden kann, ist es unbedingt erforderlich ein Backup-Konzept zu erstellen. Die webtrees-Anwendung selbst kann jederzeit wieder frisch installiert werden, aber die genealogischen Daten und die in der Datenbank hinterlegten Einstellungen müssen regelmäßig gesichert werden.

Eventuell legt der Hosting-Anbieter bereits automatisch regelmäßige Backups an. Wenn dies nicht der Fall sein sollte, muss der Webmaster sich selbst darum kümmern.

Backup der genealogischen Daten

Um die genealogischen Daten zu sichern, sollten alle in webtrees angelegten Stammbäume regelmäßig durch den Webmaster als GEDCOM-Datei exportiert werden. Diese GEDCOM-Dateien sollten mit einem Datum im Dateinamen versehen werden und nicht nur auf dem Server gespeichert werden, sondern auch auf einem anderen sicheren Datenträger archiviert werden. Dieser Datenträger sollte nicht online sein, d.h. er sollte nicht permanent aus dem Internet zugänglich sein.

Auch die Ortseinträge im Verwaltungsmenü ganz unten sollten regelmäßig als separate Datei exportiert werden.

Die Mediendateien, die etwa im webtrees-Verzeichnis /data/media gespeichert sind, müssen ebenfalls regelmäßig mit Hilfe eines ftp-Programms gesichert werden. Die Vorschaubilder (thumbnails) müssen nicht gesichert werden, da sie von webtrees automatisch wieder neu erzeugt werden.

Auch die Einstellungen in /data/config.ini.php müssen gesichert werden.

Info
Alternative
webtrees bietet alternativ auch die Möglichkeit, dass der Verwalter oder der Administrator anstelle des Webmasters die Datensicherung übernehmen können. Dazu muss der Verwalter für seinen Stammbaum oder der Administrator für alle Stammbäume das Verwaltungsmenü aufrufen und dort einen Export der GEDCOM-Daten und der zugehörigen Mediendateien, in einer ZIP-Datei verpackt, anstoßen.


Backup der webtrees-Datenbank

Laut der Installationsstatistik wird produktiv im wesentlichen das DBMS MySQL[21]/MariaDB[22] eingesetzt. Daher beschränken sich die Beschreibungen in diesem Abschnitt der Einfachheit halber nur darauf.

Ein gebräuchliches webbasiertes Werkzeug ist "phpMyAdmin"[58], worüber Hosting-Anbieter zumeist auch den Zugang zu der von webtrees genutzten Datenbank ermöglichen.

Wählen Sie für die Datensicherung im Hauptfenster von phpMyAdmin im oberen Menü "Exportieren" für die gewünschte Datenbank aus. In der Regel sollte die Exportmethode "schnell" bereits die notwendigen Optionen gesetzt haben. Wichtig ist, dass als Ausgabeformat SQL genutzt wird. Nach Klicken auf die Schaltfläche "Exportieren" bzw. OK muss nach einigen Sekunden lediglich der Speicherort benannt werden, um die Sicherung auf Ihren Computer herunterzuladen.

Für die Wiederherstellung bzw. Installation einer gesicherten Datenbank wechseln Sie in phpMyAdmin zur gewünschten Ziel-Datenbank oder erstellen eine neue. Sofern die Datenbank noch Tabellen enthält, sollten diese in Abhängigkeit von den Exporteinstellungen der Datensicherung/der SQL-Datei ggf. vor dem Import gelöscht werden.[59] Wählen Sie im Hauptfenster im oberen Menü „Importieren“ aus. Im darauf folgenden Formular sollte es ausreichend sein lediglich die Quell-Datei anzugeben und den Vorgang mit den gegebenen Voreinstellungen über Klicken auf die Schaltfläche "Importieren" bzw. OK zu starten. phpMyAdmin gibt Auskunft über das Ergebnis der Wiederherstellung.


Für das Vorgehen per Kommandozeile nachfolgend Beispiel-Kommandos in 2 Varianten (mit [1] komprimierter und [2] unkomprimierter Datei) für die Eingabe in einer Linux-Shell. Das gewünschte Beispiel-Kommando ohne Zeilennummer kopieren und die in eckigen Klammern gesetzten Platzhalter entsprechend durch die eigenen Angaben ersetzen. Eine Adaptierung auf andere Betriebssysteme sollte zumindest in der unkomprimierten Form unproblematisch sein.

Sicherung:

mysqldump --single-transaction --quick -u [Datenbankbenutzer] -p [Datenbankname] | gzip > ~/datenbankexport.sql.gz
mysqldump --single-transaction --quick -u [Datenbankbenutzer] -p [Datenbankname] > ~/datenbankexport.sql

Der Datenbank-Benutzer sollte dabei über PROCESS-Privilegien[60] verfügen oder es muss zusätzlich die Option --no-tablespaces übergeben werden.[61]

Für die Automatisierung von zeitgesteuerten Backups könnte das Kommando folgendermaßen aussehen:

mysqldump --defaults-extra-file=[Konfigurationsdatei] --single-transaction --quick --no-tablespaces [Datenbankname] | gzip > ~/datenbankexport.sql.gz
mysqldump --defaults-extra-file=[Konfigurationsdatei] --single-transaction --quick --no-tablespaces [Datenbankname] > ~/datenbankexport.sql

Die genannte Konfigurationsdatei muss zuvor mit nachfolgendem Inhalt erstellt werden:

[client]
user=[Datenbankbenutzer]
password=[Datenbankbenutzer-Passwort]

Wiederherstellung:

gunzip -c ~/datenbankexport.sql.gz | mysql -u [Datenbankbenutzer] -p [Datenbankname]
mysql -u [Datenbankbenutzer] -p [Datenbankname] < ~/datenbankexport.sql

Neuinstallation von webtrees-Dateien

Löschen Sie alle Ordner im webtrees-Verzeichnis bis auf den Ordner /data. Löschen Sie im Hauptverzeichnis alle Dateien bis auf die Datei .htaccess. Nun laden Sie wie bei der Erstinstallation die aktuellste Version von webtrees auf ihren lokalen PC und dann mit einem ftp-Programm auf ihren Server ins Verzeichnis webtrees.

Umzug von webtrees auf einen neuen Server

Wenn Sie eine Installation von webtrees, die bereits auf einem Server läuft, zu einem anderen Server umziehen möchten, müssen Sie für den neuen Server zuerst die Voraussetzungen prüfen. Dazu gehört dann etwa die Bereitstellung der richtigen Version von PHP.

Mit der im Folgenden vorgeschlagenen Vorgehensweise werden alle Einstellungen in die neue Umgebung übernommen. Alternativ wäre es auch möglich auf dem neuen Server webtrees frisch zu installieren und nur die zuvor exportierten GEDCOM-Dateien neu einzuspielen. Dann müssen aber alle Einstellungen neu vorgenommen werden; alle Nutzer müssen neu angelegt werden und alle Informationen wie Geschichten, gestaltete html-Blöcke, etc sind dann erst einmal nicht mehr vorhanden.

Aktivitäten auf dem alten Server

  1. Am besten erfolgt noch ein Upgrade von webtrees und allen Erweiterungsmodulen auf die jeweils aktuellste Version.
  2. Überprüfen des Eintrags ‚Datenverzeichnis‘ unter Meine Seiten / Verwaltung / Webseite / Einstellungen Webseite. Der dort aufgeführte Ordner wird von webtrees verwendet, um Mediendateien, GEDCOM-Dateien, temporäre Dateien, etc. zu speichern. Wenn das Datenverzeichnis des Ordners nicht auf …/data/ eingestellt ist, muss später auf dem neuen Server dieser Eintrag entsprechend angepasst werden.
  3. Erstellen einer Kopie dieses Datenverzeichnisses mit Ausnahme der Dateien config.ini.php, index.php und .htaccess. Die Cache-Dateien müssen nicht unbedingt gesichert werden.
  4. Erstellen eines Abzugs der von webtrees verwendeten Datenbank, z.B. durch einen Export aller Tabellen mit der Anwendung phpMyAdmin.

Aktivitäten auf dem neuen Server

  1. Einrichten einer neuen Datenbank auf dem neuen Server.
  2. Installation von webtrees auf dem neuen Server mit der selben Hauptversion (etwa 2.0 oder 2.1) wie auf dem alten Server.
  3. Installation aller bisher verwendeten Erweiterungsmodule (in der dazu passenden Version).
  4. Abmelden vom neuen Server.
  5. Import des zuvor auf dem alten Server erstellten Datenbankabzugs in die neue Datenbank etwa mit der Anwendung phpMyAdmin.
  6. Kopie des zuvor auf dem alten Server gesicherten Inhalts des Ordners /data/ in das passende webtrees-Verzeichnis auf dem neuen Server.
  7. Anpassungen im Verzeichnis /data: Überprüfung ob die URL und die übrigen Einstellungen in der Datei config.ini.php zur neuen Umgebung passen; eventuell Anpassung der .htaccess-Datei an die neue Umgebung.
  8. Überprüfung ob der Inhalts der Datei robots.txt im Stammverzeichnis von webtrees zu der neuen Umgebung passt.
  9. Eventuell Umzug des bisherigen Domänennamens zur neuen Umgebung.
  10. Aufruf von webtrees auf dem neuen Server.
  11. Anpassung des Eintrags ‚Datenverzeichnis‘ unter Meine Seiten / Verwaltung / Webseite / Einstellungen Webseite, sofern dies erforderlich ist (siehe oben).
  12. Test der wichtigsten Funktionen, etwa zum Versand von E-Mails.
  13. Information an die Nutzer über die erfolgte Umstellung.

Erweiterungsmodule

webtrees ist so konzipiert, dass es durch Module erweitert und modifiziert werden kann. Erweiterungsmodule sind entweder funktionale Erweiterungen des webtrees-Kerns oder zusätzliche Themen (Gestaltung der Bedienoberfläche), welche von Mitgliedern der webtrees-Gemeinschaft erstellt und der Allgemeinheit zur Verfügung gestellt wurden. Erweiterungsmodule sind nicht Bestandteil der Erstinstallation von webtrees oder von Upgrades und müssen daher separat installiert und aktualisiert werden.

Auf einer eigenen Unterseite werden alle bekannten Erweiterungsmodule aufgeführt, welche entweder auf der webtrees-Seite "Download - Modules and themes" oder in GitHub veröffentlicht wurden.

Info
Downgrade

Im allgemeinen ist ein Downgrade, also der Übergang auf eine frühere Version von webtrees, nicht möglich. Die Ursache liegt darin, dass Upgrades eventuell Änderungen an der Datenbankstruktur (oft als „Schema“ bezeichnet) vornehmen. Der Code einer früheren Version funktioniert dann nicht mit der neuen Datenbankstruktur. Daher können Sie nur auf eine Version downgraden, die die gleiche Datenbankstruktur verwendet.

Um das zu verifizieren, müssen Sie in der Datei app/Webtrees.php nach einer Zeile suchen, die so ähnlich aussieht:

define('WT_SCHEMA_VERSION', 34);. Wenn beide Versionen von webtrees dieselbe Schemaversion haben, können Sie ein Downgrade durchführen. Befolgen Sie für ein Downgrade dasselbe Verfahren wie für ein manuelles Upgrade.


Einzelnachweise

  1. 1,0 1,1 1,2 1,3 1,4 Artikel PHP. In: Wikipedia, Die freie Enzyklopädie.
  2. siehe auch Artikel Liste_von_Linux-Distributionen. In: Wikipedia, Die freie Enzyklopädie.
  3. siehe Artikel Debian. In: Wikipedia, Die freie Enzyklopädie.
  4. siehe Artikel Ubuntu. In: Wikipedia, Die freie Enzyklopädie.
  5. siehe Artikel Raspberry Pi OS. In: Wikipedia, Die freie Enzyklopädie.
  6. siehe Artikel openSUSE. In: Wikipedia, Die freie Enzyklopädie.
  7. siehe Artikel Network_Attached_Storage. In: Wikipedia, Die freie Enzyklopädie.
  8. siehe Artikel Docker_(Software). In: Wikipedia, Die freie Enzyklopädie.
  9. siehe Artikel Raspberry_Pi. In: Wikipedia, Die freie Enzyklopädie.
  10. Artikel File_Transfer_Protocol. In: Wikipedia, Die freie Enzyklopädie.
  11. Artikel Secure_Shell. In: Wikipedia, Die freie Enzyklopädie.
  12. Artikel Remote_Desktop_Protocol. In: Wikipedia, Die freie Enzyklopädie.
  13. Artikel Cron. In: Wikipedia, Die freie Enzyklopädie.
  14. Der Speicherplatzbedarf verteilt sich auf die Unterverzeichnisse 18 MB ./resources, 82 MB ./vendor, 9 MB ./app und 8 MB ./public.
  15. Zu den erforderlichen Erweiterungsbibliotheken vgl.:
  16. Artikel Polyfill. In: Wikipedia, Die freie Enzyklopädie.
  17. siehe Artikel "Uberspace webhosting" im webtrees-Forum
  18. Artikel DBMS. In: Wikipedia, Die freie Enzyklopädie.
  19. Für das gewünschte DBMS ist dann ggf. die Installation/Aktivierung weiterer php-extensions erforderlich.
  20. Übersetzung des Abschnitts "Database Requirements" von https://webtrees.net/install/requirements/ wurde hier eingearbeitet.
  21. 21,0 21,1 21,2 Artikel MySQL. In: Wikipedia, Die freie Enzyklopädie.
  22. 22,0 22,1 22,2 Artikel MariaDB. In: Wikipedia, Die freie Enzyklopädie.
  23. 23,0 23,1 Artikel SQLite. In: Wikipedia, Die freie Enzyklopädie.
  24. 24,0 24,1 Artikel Microsoft_SQL_Server. In: Wikipedia, Die freie Enzyklopädie.
  25. 25,0 25,1 Artikel PostgreSQL. In: Wikipedia, Die freie Enzyklopädie.
  26. Beispielsweise sind die Ausfälle durch Wartungen nur auf eine Anwendung berenzt und Backup & Restore sind ohne Seiteneffekte umsetzbar.
  27. Vgl. auch: https://github.com/fisharebest/webtrees/issues/2950.
  28. Artikel Symbolische_Verknüpfung. In: Wikipedia, Die freie Enzyklopädie.
  29. Vgl. "Differences in 2.0" (https://webtrees.net/upgrade/2.0/) und "Error if Data on the web server contains a 'symbolic link' and the user clicks 'Clean up data folder' #2984" (https://github.com/fisharebest/webtrees/issues/2984).
  30. Anpassungen für den bereitgestellten Arbeitsspeicher und die Ausführungszeit müssen in der Konfiguration von PHP über die php.ini-Direktiven memory_limit und max_execution_time vorgenommen werden.
  31. Artikel Initialisierungsdatei. In: Wikipedia, Die freie Enzyklopädie.
  32. Artikel UTF-8. In: Wikipedia, Die freie Enzyklopädie.
  33. Vgl. auch: https://webtrees.net/faq/config-ini-php/.
  34. Vgl. auch https://webtrees.net/upgrade/manual/
  35. Übersetzung der Seite https://webtrees.net/faq/urls/.
  36. Artikel Clean URL. In: Wikipedia, Die freie Enzyklopädie.
  37. Artikel Apache_HTTP_Server. In: Wikipedia, Die freie Enzyklopädie.
  38. Artikel Nginx. In: Wikipedia, Die freie Enzyklopädie.
  39. Artikel Microsoft_Internet_Information_Services. In: Wikipedia, Die freie Enzyklopädie.
  40. Artikel HTTP-Statuscode. In: Wikipedia, Die freie Enzyklopädie.
  41. Artikel .htaccess. In: Wikipedia, Die freie Enzyklopädie.
  42. Artikel Apache_HTTP_Server. In: Wikipedia, Die freie Enzyklopädie.
  43. Artikel HTTP-Statuscode. In: Wikipedia, Die freie Enzyklopädie.
  44. siehe Dokumentation der Order Directive
  45. siehe Dokumentation der Deny Directive
  46. Vgl. RFC9309 Robots Exclusion Protocol.
  47. Daher muss bei der Konfiguration von Webserver und Proxy darauf geachtet werden, dass die zugreifende IP-Adresse an webtrees durchgereicht wird.
  48. Vgl. Commit https://github.com/fisharebest/webtrees/commit/617057d4ae09fbcd822ba635c6ed70514af7603a.
  49. Übersetzung des Abschnitte "Blocking entire networks/organisations" auf der Seite https://webtrees.net/admin/block/.
  50. Artikel Autonomes_System. In: Wikipedia, Die freie Enzyklopädie.
  51. Artikel Whois. In: Wikipedia, Die freie Enzyklopädie.
  52. Vgl. https://en.wikipedia.org/wiki/Bulletproof_hosting.
  53. Vgl. Forumsbeitrag "Help for version 2.1 > any plans to block certain IP-adresses from trying to login": https://www.webtrees.net/index.php/en/forum/help-for-release-2-1-x/37854-any-plans-to-block-certain-ip-adresses-from-trying-to-login
  54. siehe https://htaccessbook.com/block-ip-address/
  55. Artikel Captcha. In: Wikipedia, Die freie Enzyklopädie.
  56. Vgl. Forumsbeitrag "Open discussion > protect against spam": https://www.webtrees.net/index.php/en/forum/2-open-discussion/38244-protect-against-spam
  57. Vgl. Issue #2901 Deter SPAM registrations and messages: https://github.com/fisharebest/webtrees/issues/2901.
  58. Artikel PhpMyAdmin. In: Wikipedia, Die freie Enzyklopädie.
  59. Ein Blick in den SQL-Quelltext gibt Aufschluss, ob die Datenbank vorbereitet werden muss: Sind dort Angaben wie DROP TABLE IF EXISTS [TABELLENNAME]; CREATE TABLE [TABELLENNAME] ... ersichtlich, ist nichts zu tun.
  60. Vgl. https://dev.mysql.com/doc/refman/5.7/en/privileges-provided.html#priv_process
  61. Vgl. https://dba.stackexchange.com/questions/271981/access-denied-you-need-at-least-one-of-the-process-privileges-for-this-ope