Zum Inhalt

Willkommen bei XenForo 2!#

Diese Dokumentation soll dir den Einstieg in die Entwicklung von XenForo 2.0 erleichtern. Für diese Dokumentation wird vorausgesetzt, dass du u.a. mit PHP und MySQL vertraut bist. Es ist nicht unbedingt erforderlich, Erfahrung mit einer früheren Version von XenForo zu haben, aber es wäre von Vorteil.

Auf den folgenden Seiten geben wir einen kurzen Überblick über die Einrichtung eines lokalen Servers, die Vorbereitungen für die Installation, führen eine saubere Installation von XenForo 2 durch und gehen einige der Konzepte der XF2-Entwicklung durch.

Was gibt es Neues für Entwickler?#

Obwohl XenForo 2 eine Menge Verbesserungen für Foren und deren Mitglieder bietet, wurde ein erheblicher Aufwand in die Verbesserung des XenForo zugrunde liegenden Frameworks gesteckt. Weitere Informationen über diese Änderungen stehen in den folgenden Themen:

Erste Schritte#

Der Einstieg in die XF-Entwicklung ist einfach. Man muss nur die Dateien herunterladen, sie auf einen Webserver hochladen und die Installation auslösen.

Wenn du noch keinen Webserver hast, kannst du ihn auch auf deinem lokalen Rechner einrichten.

XF 2.x herunterladen#

Um XF 2.x herunterzuladen, besuche einfach den [Kundenbereich] (https://xenforo.com/customers) und melde dich wie gewohnt an. Suche nach der richtige Lizenz und klicke auf den Link "XenForo herunterladen". Wähle die Version, die du herunterladen möchtest, den Pakettyp und akzeptiere die Lizenzvereinbarung. Abschließend klicke auf die Schaltfläche "Download", um die Dateien herunterzuladen.

XF 2.x Anforderungen#

Die Anforderungen für die Ausführung von XF 2.x haben sich seit XF 1.5 geändert. Die empfohlenen Anforderungen lauten wie folgt:

  • PHP: 5.4.0+
  • MySQL: 5.5+
  • PHP extensions: MySQLi, GD (with JPEG support), PCRE, SPL, SimpleXML, DOM, JSON, iconv, ctype, cURL

Skript zur Anforderungsprüfung herunterladen

Einrichten eines lokalen Servers#

Oft ist es bequemer, einen lokalen Webserver für die Entwicklung einzurichten. Hierfür gibt es im Allgemeinen zwei Ansätze:

  1. Installiere Apache (oder nginx), MySQL (oder MariaDB) und PHP selbst.
  2. Installiere eine vorgefertigte virtuelle Maschine
  3. Installiere einen vorgefertigten Stack.

Es ist zwar komplizierter, alles selbst einzurichten, aber dafür hast du in der Regel mehr Kontrolle darüber, wie alles eingerichtet wird.

Zum Glück haben wir einige Anleitungen erstellt, wie du eine lokale Entwicklungsumgebung für dein bevorzugtes Betriebssystem einrichten kannst:

Vorkonfigurierter Stack#

Es gibt viele vorgefertigte Stacks, die sich in Funktionsumfang, Leistung und Zuverlässigkeit unterscheiden können. Bitnami unterhält eine Reihe von Stacks, darunter LAMP, MAMP und WAMP für die Verwendung unter Linux, Mac und Windows. Sie alle enthalten eine vollständig konfigurierte Installation von Apache, MySQL und PHP und beinhalten PhpMyAdmin zur Verwaltung von MySQL.

Hochladen#

Um XF 2.x zu installieren, entpacke einfach die im Kundenbereich heruntergeladene ZIP-Datei und lade einige der darin enthaltenen Dateien und Verzeichnisse hoch.

Nach dem Entpacken erscheint ein Verzeichnis mit dem Namen upload. In dieses Verzeichnis musst du gehen und die Dateien und Verzeichnisse in das Web-Root des Webservers hochladen. Dies geschieht normalerweise in ein Verzeichnis namens public_html, htdocs oder www.

Erstellen von src/config.php#

Wenn du die CLI zur Installation von XF 2.x verwendest, musst du die Datei config.php manuell erstellen. Dazu wechsele in das Verzeichnis src innerhalb der XF 2.x-Dateien, die du auf deinen Server hochgeladen hast. Erstelle eine neue Datei namens config.php und gib darin den Host, den Port, den Benutzernamen, das Passwort und den Datenbanknamen für deinen MySQL-Server ein.

Hinweis

Stelle sicher, dass du die Konfigurationsdatei innerhalb des src-Verzeichnisses erstellst. Das library-Verzeichnis wird nur für Legacy-Zwecke verwendet.

Danach sollte es wie folgt aussehen:

src/config.php
<?php

$config['db']['host'] = 'localhost';
$config['db']['port'] = '3306';
$config['db']['username'] = 'root';
$config['db']['password'] = 'mypassword';
$config['db']['dbname'] = 'xf2';

Jetzt kannst du die Installation vornehmen!

Wenn du MySQL 5.5 und höher verwendest und volle Unicode-Unterstützung (für Dinge wie Emoji) wünschst, solltest du vor der Installation auch folgendes hinzufügen:

src/config.php
$config['fullUnicode'] = true;

Ein Hinweis zu Dateiberechtigungen#

XenForo muss während des Betriebs Dateien in bestimmte Speicherorte schreiben. Im Normalbetrieb ist dies auf die Verzeichnisse data und internal_data (und ihre Unterverzeichnisse) beschränkt. Diese Schreibvorgänge werden z.B. durch das Hochladen von Anhängen ausgelöst, so dass sie normalerweise durch den Benutzer PHP ausgelöst werden, der auf deinem Webserver läuft. Daher muss sichergestellt werden, dass die Berechtigungen in diesen Verzeichnissen so gesetzt sind, dass der Webserver in sie schreiben kann. Dies muss geschehen, bevor die Installation beginnen kann.

Wenn die Befehlszeilenschnittstelle (CLI) beteiligt ist, wird die Situation noch schwieriger, da nun möglicherweise zwei Benutzer in der Lage sein müssen, in die Dateien zu schreiben. Daher ist es wichtig, Maßnahmen zu ergreifen, um Probleme beim Schreiben in diese Dateien zu vermeiden. Hier sind ein paar Optionen.

  1. Verwende denselben Benutzer für die CLI und den Webserver. Dies kann in der Form geschehen, dass du zum Webserver-Benutzer wechselst, bevor du einen Installations- oder Upgrade-Befehl (oder einen anderen, der Dateien schreibt) ausführst.
  2. Falls verfügbar, solltest du ACLs auf die Verzeichnisse data und internal_data anwenden. Dieses Konzept variiert je nach Betriebssystem und Konfiguration, aber die allgemeine Idee ist hier beschrieben.
  3. Erzwinge bestimmte Berechtigungen für das, was von PHP geschrieben wird. Dies kann über die Datei src/config.php mit einer Zeile wie dieser geschehen: $config['chmodWritableValue'] = 0666; Dieser Ansatz ist für Entwicklungszwecke möglicherweise der einfachste.

Beachte, dass du, wenn du Add-ons entwickelst, möglicherweise andere Speicherorte hast, in die die CLI- und Webserver-Benutzer schreiben müssen. Dazu gehört insbesondere das Verzeichnis _output in Add-ons. In dieser Situation ist es am einfachsten, den Webserver als CLI-Benutzer laufen zu lassen. Wenn du einen anderen Weg wählst, musst du sicherstellen, dass dein Webserver auf deine gesamte XenForo-Installation schreiben kann; dies wird in der Produktion nicht empfohlen.

Installation#

Der aktuelle Weg, XF 2.x zu installieren, führt über das neue CLI-System. Viele Entwicklungsprozesse können nur über die Befehlszeilenschnittstelle (CLI) durchgeführt werden, also sollten wir sie für die Installation von XF 2.x verwenden. Um diese Befehle auszuführen, benötigst du Zugang zu einem Terminal/Shell, den php CLI-Befehl und das aktuelle Arbeitsverzeichnis sollte das Stammverzeichnis sein, in das du die XF 2.x-Dateien hochgeladen hast.

Warnung

Um Probleme mit den Dateiberechtigungen zu vermeiden, empfehlen wir, das Installationsprogramm unter demselben Benutzer auszuführen, unter dem PHP auf dem Webserver läuft. Wenn du das nicht tust, solltest du dafür sorgen, dass die Berechtigungen korrekt gesetzt sind. Weitere Einzelheiten dazu stehen im obigen Abschnitt.

Um die Installation zu starten, gib einfach den folgenden Befehl ein:

Terminal
php cmd.php xf:install

Es werden einige Fragen gestellt, z. B. nach dem anfänglichen Benutzernamen und Passwort des Administrators und dem Titel des Forums. Danach werden die XF 2.x-Datenbanktabellen und Stammdaten importiert.

XenForo 2.x ist jetzt installiert!

Neuinstallation#

Gelegentlich kann es notwendig sein, XF2 neu zu installieren. Dies gilt insbesondere während der Entwicklungsvorschau, die keine Upgrades unterstützt. Wenn du bereit bist, eine Neuinstallation durchzuführen, lade die neuen Dateien (falls zutreffend) wie im Abschnitt Herunterladen von XF 2.x oben beschrieben herunter. Im Allgemeinen sollte es möglich sein, die vorhandenen Dateien einfach zusammenzuführen und zu überschreiben. Wenn du eine komplette Neuinstallation durchführst, solltest du eine Kopie deiner config.php-Datei speichern oder sie gemäß den Anweisungen in Erstellen von src/config.php neu erstellen.

Bevor du die neuen Dateien hochlädst, solltest du den Inhalt der Verzeichnisse data und internal_data löschen.

Schließlich musst du nur noch die Installation starten, ähnlich wie oben. Du musst die Option --clear verwenden, die alle vorhandenen xf_-Tabellen löscht.

Terminal
php cmd.php xf:install --clear

Sobald die Neuinstallation abgeschlossen ist, solltest du dich wieder anmelden können.

Wenn du Add-ons entwickelt hast und dein bestehendes src/addons Verzeichnis behalten oder gesichert hast, kannst du deine Add-on Daten mit dem Befehl Entwicklungsausgabe importieren wiederherstellen.

Warnung

Sei vorsichtig, wenn du dich entscheidest, dein src/addons Verzeichnis zu sichern und wiederherzustellen. Das darin enthaltene Verzeichnis XF enthält die XF-Stammdaten und sollte nicht aus einer Sicherung wiederhergestellt werden, um sicherzustellen, dass immer die aktuellste Version der Dateien vorliegt.

Eine Neuinstallation auf diese Weise ist ein destruktiver Vorgang, bei dem alle von dir erstellten Daten gelöscht werden. Denke außerdem daran, dass nur Tabellen mit dem Präfix xf_ gelöscht werden. Dies ist ein wichtiger Grund für die Empfehlung, dass alle Tabellen, auch die für Add-Ons, mit dem Präfix xf_ versehen werden sollten.

Überprüfen der Dateiintegrität#

Bei der Installation von XF2 wird eine Prüfung der Dateiintegrität durchgeführt. Falls erforderlich und die Prüfung nicht über die Seite in der Admin CP durchgeführt werden kann, lässt sich diese Prüfung mit dem CLI-Befehl durchführen.

Terminal
php cmd.php xf:file-check [addon_id]

Wenn du eine Überprüfung aller Dateien, einschließlich XF selbst, durchführen willst, lass das Argument [addon_id] einfach weg. Nur für XF verwende einfach XF anstelle des Arguments, oder für ein bestimmtes Add-on gib einfach die Add-on ID an, die du überprüfen möchtest.

Befehle zur Verwaltung von Add-ons#

Zusätzlich zu den oben genannten Befehlen für die Installation von XF2 gibt es auch mehrere Befehle für die Verwaltung von Add-ons.

Install#

Installiert das angegebene Add-on, sofern es verfügbar ist und die Funktionsprüfung der Datei bestanden hat. Wenn die Entwicklungsausgabe verfügbar ist, wird man gefragt, ob man diese für die Installation anstelle der exportierten Daten-XML-Dateien verwenden möchte.

Terminal
php cmd.php xf:addon-install [addon_id]

Upgrade#

Aktualisiert das angegebene Add-on, sofern es aktualisierbar ist und die Überprüfung des Dateizustands besteht. Kann optional einen Import aus der Entwicklungsausgabe durchführen.

Terminal
php cmd.php xf:addon-upgrade [addon_id]

Rebuild#

Baut die Stammdaten für das angegebene Add-on neu auf, sofern sie neu aufgebaut werden können und die Prüfung des Dateizustands bestehen. Dadurch werden die Daten des Add-ons neu importiert. Kann optional einen Import aus der Entwicklungsausgabe durchführen.

Terminal
php cmd.php xf:addon-rebuild [addon_id]

Uninstall#

Deinstalliert das angegebene Add-on, sofern es deinstallierbar ist.

Terminal
php cmd.php xf:addon-uninstall [addon_id]