Merge branch 'develop' of https://github.com/friendica/friendica into develop
[friendica.git/.git] / doc / de / Install.md
1 Friendica Installation
2 ==========
3
4 * [Zur Startseite der Hilfe](help)
5
6 Wir haben hart daran gearbeitet, um Friendica auf vorgefertigten Hosting-Plattformen zum Laufen zu bringen - solche, auf denen auch Wordpress Blogs und Drupal-Installationen laufen.
7 Wir bieten eine manuelle und eine automatische Installation an.
8 Aber bedenke, dass Friendica mehr als eine einfache Webanwendung ist.
9 Es handelt sich um ein komplexes Kommunikationssystem, das eher an einen Email-Server erinnert als an einen Webserver.
10 Um die Verfügbarkeit und Performance zu gewährleisten, werden Nachrichten im Hintergrund verschickt und gespeichert, um sie später zu verschicken, wenn eine Webseite gerade nicht erreichbar ist.
11 Diese Funktionalität benötigt ein wenig mehr als die normalen Blogs.
12 Nicht jeder PHP/MySQL-Hosting-Anbieter kann Friendica unterstützen.
13 Viele hingegen können es. Aber **bitte** prüfe die Voraussetzungen deines Servers vor der Installation.
14
15 Wenn dir Fehler während der Installation auffallen, sag uns bitte über [Helper](http://forum.friendi.ca/profile/helpers) oder die [Entwickler Gruppe](https://forum.friendi.ca/profile/developers) Bescheid oder [erstelle ein Issue](https://github.com/friendica/friendica/issues).
16 Gib uns bitte so viele Infos zu deinem System, wie du kannst, und beschreibe den Fehler mit allen Details und Fehlermeldungen, so dass wir den Fehler zukünftig verhindern können.
17 Aufgrund der großen Anzahl an verschiedenen Betriebssystemen und PHP-Plattformen haben wir nur geringe Kapazitäten, um deine PHP-Installation zu debuggen oder fehlende Module zu ersetzen, aber wir tun unser Bestes, um allgemeine Code-Fehler zu beheben.
18
19 Bevor du anfängst: suche dir einen Domain- oder Subdomainnamen für deinen Server.
20 Dinge verändern sich und einige deiner Freunde haben möglicherweise Probleme, mit dir zu kommunizieren.
21 Wir planen, diese Einschränkung in einer zukünftigen Version zu beheben.
22
23
24 Requirements
25 ---
26
27 * Apache mit einer aktiverten mod-rewrite-Funktion und dem Eintrag "Options All", so dass du die lokale .htaccess-Datei nutzen kannst
28 * PHP  7.4+
29   * PHP *Kommandozeilen*-Zugang mit register_argc_argv auf "true" gesetzt in der php.ini-Datei
30   * Curl, GD, GMP, PDO, mbstrings, MySQLi, hash, xml, zip, IntlChar, IDN und OpenSSL-Erweiterung
31   * Das POSIX Modul muss aktiviert sein ([CentOS, RHEL](http://www.bigsoft.co.uk/blog/index.php/2014/12/08/posix-php-commands-not-working-under-centos-7http://www.bigsoft.co.uk/blog/index.php/2014/12/08/posix-php-commands-not-working-under-centos-7) haben dies z.B. deaktiviert)
32   * Einen E-Mail Server, so dass PHP `mail()` funktioniert.
33     Wenn kein eigener E-Mail Server zur Verfügung steht, kann alternativ das [phpmailer](https://github.com/friendica/friendica-addons/tree/develop/phpmailer) Addon mit einem externen SMTP Account verwendet werden.
34 * Mysql Server mit Unterstützung vom InnoDB und Barracuda (wir empfehlen MariaDB da die Entwicklung mit solchen Server erfolgt, aber Alternativen wie MySQL, Percona Server etc. sollten auch funktionieren)
35 * die Möglichkeit, wiederkehrende Aufgaben mit cron (Linux/Mac) oder "Scheduled Tasks" einzustellen (Windows) [Beachte: andere Optionen sind in Abschnitt 7 dieser Dokumentation zu finden]
36 * Installation in einer Top-Level-Domain oder Subdomain (ohne eine Verzeichnis/Pfad-Komponente in der URL) wird bevorzugt. Verzeichnispfade sind für diesen Zweck nicht so günstig und wurden auch nicht ausführlich getestet.
37
38 Installation
39 ---
40
41 ### Alternative Wege um Friendica zu Installieren
42
43 Diese Anleitung wird dir Schritt-für-Schritt zeigen wie du Friendica auf deinem Server installieren kannst.
44 Falls du an automatischen Möglichkeiten interesse hast, wirf doch einen Blick auf
45
46 * das [Docker image für Friendica](https://github.com/friendica/docker) oder
47 * die [Installation von Friendica auf YunoHost](https://github.com/YunoHost-Apps/friendica_ynh).
48
49 ### Friendica
50
51 Entpacke die Friendica-Daten in das Quellverzeichnis (root) des Dokumentenbereichs deines Webservers.
52 Wenn du die Möglichkeit hierzu hast, empfehlen wir dir "git" zu nutzen, um die Daten direkt von der Quelle zu klonen, statt die gepackte .tar- oder .zip-Datei zu nutzen.
53 Das macht die Aktualisierung wesentlich einfacher.
54 Der Linux-Code, mit dem man die Dateien direkt in ein Verzeichnis wie "meinewebseite" kopiert, ist
55
56     git clone https://github.com/friendica/friendica.git -b stable mywebsite
57     cd mywebsite
58     bin/composer.phar install
59
60 Stelle sicher, dass der Ordner *view/smarty3* existiert and von dem Webserver-Benutzer beschreibbar ist
61
62     mkdir view/smarty3
63     chmod 775 view/smarty3
64
65 Falls Addons installiert werden sollen: Gehe in den Friendica-Ordner
66
67     cd mywebsite
68
69 Und die Addon Repository klonst:
70
71     git clone https://github.com/friendica/friendica-addons.git -b stable addon
72
73 Um das Addon-Verzeichnis aktuell zu halten, solltest du in diesem Pfad ein "git pull"-Befehl eintragen
74
75     cd meinewebseite/addon
76     git pull
77
78 Wenn du den Verzeichnispfad auf deinen Webserver kopierst, dann stelle sicher, dass du auch die .htaccess kopierst, da "Punkt"-Dateien oft versteckt sind und normalerweise nicht direkt kopiert werden.
79
80 Wenn du die Entwickler Version von Friendica verwenden möchtest kannst du auf den develop Branch im git Repository wechseln.
81 Dies tust du mit den folgenden Befehlen
82
83     git checkout develop
84     bin/composer.phar install
85     cd addon
86     git checkout develop
87
88 Die Entwickler Version kann nach einem fehlerhaften Commit vorübergehend Probleme haben oder gar nicht mehr funktionieren.
89 Sollte dir so etwas passieren, lass es uns bitte wissen, damit der Fehler behoben werden kann.
90
91 ### Erstelle eine Datenbank
92
93 Erstelle eine leere Datenbank und notiere alle Zugangsdaten (Adresse der Datenbank, Nutzername, Passwort, Datenbankname).
94
95 Friendica benötigt die Berechtigungen um neue Felder in dieser Datenbank zu ertellen (create) und zu löschen (delete).
96
97 Mit neueren Versionen von MySQL (5.7.17+) musst du den `sql_mode` zu `''` (blank) setzen.
98 Benutze diese Einstellung, wenn der Installer nicht in der Lage ist, die Tabellen aufgrund eines Timestamp-Format Problems zu erstellen.
99 Falls dem so ist, finde den `[mysqld]` Bereich in deiner `my.conf` Datei und füge diese Zeile hinzu:
100
101     sql_mode = ''
102
103 Starte MySQL dann neu und es sollte klappen.
104
105 ### Option A: Der manuelle Installer
106
107 Besuche deine Webseite mit deinem Browser und befolge die Anleitung.
108 Bevor du dies tust, kopiere die Datei `.htaccess-dist` nach `.htaccess`, wenn du den Apache Webserver verwendest.
109 Bitte beachte jeden Fehler und korrigiere diese, bevor du fortfährst.
110
111 Falls du einen Port für die Datenbankverbindung angeben musst, kannst du diesen in der Host-Eingabe Zeile angeben.
112
113 *Wenn* die manuelle Installation aus irgendeinem Grund fehlschlägt, dann prüfe das Folgende:
114 * "config/local.config.php" existiert ... wenn nicht, bearbeite die „config/local-sample.config.php“ und ändere die Systemeinstellungen. Benenne sie um in „config/local.config.php".
115 * die Datenbank beinhaltet Daten. ... wenn nicht, importiere den Inhalt der Datei "database.sql" mit phpmyadmin oder per mysql-Kommandozeile.
116
117 Besuche deine Seite an diesem Punkt wieder und registriere deinen persönlichen Account.
118 Alle Registrierungsprobleme sollten automatisch behebbar sein.
119 Wenn du irgendwelche **kritischen** Fehler zu diesen Zeitpunkt erhalten solltest, deutet das darauf hin, dass die Datenbank nicht korrekt installiert wurde.
120 Du kannst bei Bedarf die Datei config/local.config.php verschieben/umbenennen und die Datenbank leeren (als „Dropping“ bezeichnet), so dass du mit einem sauberen System neu starten kannst.
121
122 ### Option B: Starte das automatische Installationsscript
123
124 Es existieren folgende Varianten zur automatischen Installation von Friendica:
125 -       Eine vorgefertigte Konfigurationsdatei erstellen (z.B. `prepared.config.php`)
126 -       Verwendung von Umgebungsvariablen (z.B. `MYSQL_HOST`)
127 -       Verwendung von Optionen (z.B. `--dbhost <host>`)
128
129 Umgebungsvariablen und Optionen können auch kombiniert werden.
130 Dabei ist jedoch darauf zu achten, dass etwaige Optionen immer die zugehörigen Umgebungsvariablen überschreiben.
131
132 Für mehr Informationen kannst du diese Option verwenden:
133
134     bin/console autoinstall -v
135
136 Falls du alle optionalen Checks ausfürehn lassen möchtest, benutze diese Option:
137
138     bin/console autoinstall -a
139
140 *Wenn* die automatisierte Installation aus irgendeinem Grund fehlschlägt, dann prüfe das Folgende:
141 *       Existiert die `config/local.config.php`? Falls ja, wird die automatisierte Installation nicht gestartet.
142 *       Sind Einstellungen in der `config/local.config.php` korrekt? Falls nicht, bitte bearbeite diese Datei erneut.
143 *       Ist die leere MySQL-Datenbank erstellt? Falls nicht, erstelle diese.
144
145 #### B.1: Konfigurationsdatei
146
147 Für diese Variante muss ein Konfigurationsdatei bereits vor der Installation fertig definiert sein (z.B. [local-sample.config.php](config/local-sample.config.php).
148
149 Gehe im Anschluss in den Friendica-Hauptordner und führe den Kommandozeilen Befehl aus:
150
151     bin/console autoinstall -f <prepared.config.php>
152
153 #### B.2: Umgebungsvariablen
154
155 Es existieren Zwei Arten von Umgebungsvariablen in Friendica:
156 -       Jene, die auch im normalen Betrieb verwendet werden können (derzeit ausschließlich **Datenbank Einstellungen**)
157 -       Jene, die nur während der Installation verwedent werden können (im normalen Betrieb werden sie ignoriert)
158
159 Umgebungsvariablen können auch durch adäquate Optionen (z.B. `--dbhost <hostname>`)übersteuert werden.
160
161 **Datenbank Einstellungen**
162
163 Nur wenn die Option `--savedb` gesetzt ist, werden diese Umgebungsvariablen auch in `config/local.config.php` gespeichert!
164
165 -       `MYSQL_HOST` Der Host der MySQL/MariaDB Datenbank
166 -       `MYSQL_PORT` Der Port der MySQL/MariaDB Datenbank
167 -       `MYSQL_USERNAME` Der Benutzername des MySQL Datenbanklogins (MySql - Variante)
168 -       `MYSQL_USER` Der Benutzername des MariaDB Datenbanklogins (MariaDB-Variante)
169 -       `MYSQL_PASSWORD` Das Passwort der MySQL/MariaDB Datenbanklogins
170 -       `MYSQL_DATABASE` Der Name der MySQL/MariaDB Datenbank
171
172 **Friendica Einstellungen**
173
174 Diese Umgebungsvariablen können nicht während des normalen Friendica Betriebs verwendet werden.
175 Sie werden stattdessen direkt in `config/local.config.php` gespeichert.
176
177 -       `FRIENDICA_PHP_PATH` Der Pfad zur PHP-Datei
178 -       `FRIENDICA_ADMIN_MAIL` Die Admin E-Mail Adresse dieses Friendica Knotens (wird auch für den Admin-Zugang benötigt)
179 -       `FRIENDICA_TZ` Die Zeitzone von Friendica
180 -       `FRIENDICA_LANG` Die Sprache von Friendica
181
182 Gehe im Anschluss in den Friendica-Hauptordner und führe den Kommandozeilen Befehl aus:
183
184     bin/console autoinstall [--savedb]
185
186 #### B.3: Optionen
187
188 Alle Optionen werden in `config/local.config.php` gespeichert und überschreiben etwaige, zugehörige Umgebungsvariablen.
189
190 -       `-H|--dbhost <host>` Der Host der MySQL/MariaDB Datenbank (env `MYSQL_HOST`)
191 -       `-p|--dbport <port>` Der Port der MySQL/MariaDB Datenbank (env `MYSQL_PORT`)
192 -       `-U|--dbuser <username>` Der Benutzername des MySQL/MariaDB Datenbanklogins (env `MYSQL_USER` or `MYSQL_USERNAME`)
193 -       `-P|--dbpass <password>` Das Passwort der MySQL/MariaDB Datenbanklogins (env `MYSQL_PASSWORD`)
194 -       `-d|--dbdata <database>` Der Name der MySQL/MariaDB Datenbank (env `MYSQL_DATABASE`)
195 -       `-b|--phppath <path>` Der Pfad zur PHP-Datei (env `FRIENDICA_PHP_PATH`)
196 -       `-A|--admin <mail>` Die Admin E-Mail Adresse dieses Friendica Knotens (env `FRIENDICA_ADMIN_MAIL`)
197 -       `-T|--tz <timezone>` Die Zeitzone von Friendica (env `FRIENDICA_TZ`)
198 -       `-L|--lang <language>` Die Sprache von Friendica (env `FRIENDICA_LANG`)
199
200 Gehe in den Friendica-Hauptordner und führe den Kommandozeilen Befehl aus:
201
202     bin/console autoinstall [options]
203
204 ### Einen Worker einrichten
205
206 Erstelle einen Cron job oder einen regelmäßigen Task, um den Poller alle 5-10 Minuten im Hintergrund ablaufen zu lassen.
207 Beispiel:
208
209     cd /base/directory; /path/to/php bin/worker.php
210
211 Ändere "/base/directory" und "/path/to/php" auf deine Systemvorgaben.
212
213 Wenn du einen Linux-Server nutzt, benutze den Befehl "crontab -e" und ergänze eine Zeile wie die Folgende; angepasst an dein System
214
215 `*/10 * * * * cd /home/myname/mywebsite; /usr/bin/php bin/worker.php`
216
217 Du kannst den PHP-Pfad finden, indem du den Befehl „which php“ ausführst.
218 Wenn du Schwierigkeiten mit diesem Schritt hast, kannst du deinen Hosting-Anbieter kontaktieren.
219 Friendica wird nicht korrekt laufen, wenn dieser Schritt nicht erfolgreich abgeschlossen werden kann.
220
221 Falls das Einrichten des cron nicht möglich ist, kannst Du alternativ den "frontend worker" vom Administrationsinterface aus aktivieren.
222
223 ### Erstelle einen Backup Plan
224
225 Es werden schlimme Dinge geschehen.
226 Sei es nun ein Hardwareversagen oder eine kaputte Datenbank.
227 Deshalb solltest du dir, nachdem die Installation deines Friendica Knotens abgeschlossen ist, einen Backup Plan erstellen.
228
229 Die wichtigste Datei ist die `config/local.config.php` im Stammverzeichnis deiner Friendica Installation.
230 Und da alle Daten in der Datenbank gespeichert werden, solltest du einen nicht all zu alten Dump der Friendica Datenbank zur Hand haben, solltest du deinen Knoten wieder herstellen müssen.