mybb-20-forum-frontend

MyBB 2.0 Test-Installation gelungen – via Kommandozeile mit PHP 7.0, MySQL 5.7, Laravel

Hallo lieber Leser! Per puren Zufall war ich heute im Entwicklungsrepository von MyBB 2.0 auf Github, denn es interessierte mich heute auf einmal. MyBB 2.0 ist noch eine etwas mit ein paar Bugs gefüllte Pre-Alpha-Version.

Es basiert auf Laravel Framework und kann dennoch auf Shared Webhosting installiert werden. Mir liegen diese Systemvoraussetzungen vor:

  • PHP 7.0
  • MySQL 5.7
  • Managed Server
  • Shared Webhosting
  • Ubuntu 16.x

Damit arbeite ich im Portfolio und MyBB 2.0 habe ich komplett mittels der Kommandozeile aufgesetzt. Im Folgenden verrate ich es dir, vor welchen Schwierigkeiten ich dabei stand und worauf du auch achten solltest.

Herunterladen des offiziellen MyBB 2.0 Repos

Das bekommst du auf Github unter https://github.com/mybb/mybb2. Das Paket downloaden, lokal entpacken und per FTP wieder hochladen.

Danach muss man dem Verzeichnis /storage CHMOD-Rechte von 777 vergeben. Das geht bequem via SSH und diesen Befehl.

chmod -R 777 storage/

Als Nächstes installierst du den Composer derart. Das führst du immer von dem Verzeichnis aus, wo sich die composer.json befindet.

php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php -r "if (hash_file('SHA384', 'composer-setup.php') === '669656bab3166a7aff8a7506b8cb2d1c292f042046c5a994c43155c0be6190fa0355160742ab2e1c88d40d5be660b410') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
php composer-setup.php
php -r "unlink('composer-setup.php');"

Auch kannst du diesen SSH-Befehl mal ausführen, damit der Composer wieder uptodate ist.

php composer.phar self-update

Da du es von Null an installierst, wird er in der Version 1.5.1 oder so etwas sein. Das sollte reichen. In der composer.json-Datei sind alle Abhängigkeiten und Bibliotheken vorhanden, damit wir installieren können. Führe bitte mittels Konsole das aus.

php composer.phar install

Composer wird installiert, es entsteht im Rootverzeichnis das Verzeichnis /vendor und alle Bibliotheken nehmen darin dauerhaften Platz ein.

Normalerweise musst du dann die Datei .env im Rootverzeichnis erstellen. Sie gibt es aber schon als Beispiel und wir kopieren sie nun dermassen.

cp .env.example .env

vim .env

VIM ist ein SSH-Editor, mit welchem du super Files bearbeiten und mit Inhalt füllen kannst. Du kannst so jede Datei im FTP-Account oder in Linux und bei anderen OS mittels Konsole öffnen.

„vim .env“ öffnet diese Datei und darin sind Datenbankdaten enthalten. Erstelle bitte nun eine MySQL-Datenbank und per PHPMyAdmin unter „Operationen“ setze die Datenbank auf Multibyte und UTF8mb4 Zeichensatz.

Datei /config/database.php anpassen

Das musst du auch in der Datei /config/database.php machen. Das zeige ich dir hier.

'connections' => [

'sqlite' => [
 'driver' => 'sqlite',
 'database' => storage_path() . '/database.sqlite',
 'prefix' => '',
 ],
 'mysql' => [
 'driver' => 'mysql',
 'host' => env('DB_HOST', 'localhost'),
 'database' => env('DB_DATABASE', 'forge'),
 'username' => env('DB_USERNAME', 'forge'),
 'password' => env('DB_PASSWORD', ''),
 'charset' => 'utf8mb4',
 'collation' => 'utf8mb4_unicode_ci',
 'prefix' => '',
 'strict' => false,
 'engine' => 'InnoDB ROW_FORMAT=DYNAMIC',
 ],

 

So sollte es aussehen, damit wir den APP-Key, welcher normalerweise auf 1000 Bytes begrenzt ist, generieren können. Mit reinem UTF8 Zeichensatz klappt es nicht und so habe ich die Lösung für diese Problem heute ergoogelt.

Wenn das gemacht ist, generierst du mit diesem Befehl den App-Key.

php artisan key:generate

Den Schlüssel, der dir in der Konsole angezeigt wird, musst du in die Datei .env eintragen. Öffne sie so:

vim .env

Trage Datenbankdaten und den Schlüssel ein.

Danach führst du diese SSH-Befehle aus.

php artisan config:clear
 php artisan config:cache
 php artisan key:generate

Jetzt können die Datenbank-Tabellen erstellt werden, wofür du diesen SSH-Befehl brauchst.

Ach ja, noch den öffentlichen Zugang bei Packages ermöglichen mit diesem Befehl.

php artisan vendor:publish

Danach die Tabellen erstellen.

 php artisan migrate:install
 php artisan migrate

Zudem migrierst du die Datenbank-Tabellen. Warte bitte bei der Migration, denn es vergeht eine Minute oder so etwas. Da musst du dich etwas gedulden.

Zum Schluss diesen SSH-Befehl ausführen.

 php artisan db:seed

Ab nun sollte dein Forum online sein, du kannst dir ein Konto zulegen, bist dann sofort online.

Etliche Bugs in der Software sind noch

Jetzt haben wir aber etliche Bugs, die der Github-Entwickler nächste Woche fixen wird. Zum Einen kann man nicht zum User-Konto gehen, zum anderen muss ich noch herausfinden, wie ich in der Datenbank den erstellten User Admin mir zuweise bzw. wie ich meinen User-Namen mit Admin-Rechten versehen kann. Andernfalls komme ich nicht ins ACP.

Der Admin ist ja von Haus aus erstellt mit der Mail-Adresse von mybb.com. Das bringt mir aber gar nichts oder…und ich muss nun mehr wissen.

Der Fehler, der beim Ansurfen der User-Kontos angezeigt wird, ist folgender.

FatalErrorException in ProfileFieldPresenter.php line 19:Declaration of MyBB\Core\Presenters\ProfileFieldPresenter::getValidationRules(): array must be compatible with MyBB\Core\Form\RenderableInterface::getValidationRules(): string

Da läuft noch einiges schief.

Das wird bald gefixt und ich hoffe, dass ich dann mein Profil ausfüllen kann. Zudem muss ich an den Admin-Account heran und das ACP interessiert mich brennend.

Bedenke, dass MyBB 2.0 noch eine sehr frühe Alpha-Version ist und keinesfalls für die Produktion geeignet. Auf Gibhub im Repo-Wiki gibt es eine Anleitung, die ich abgearbeitet habe. So konnte ich auch installieren.

Screenshots, die mir zur Verfügung stehen

mybb-20-forum-frontend
MyBB 2.0 im Forum-Frontend

 

mybb-20-thread-ansicht
MyBB 2.0 – Thread-Ansicht

 

mybb-20-forum-frontend
MyBB 2.0 Forum-Ansicht

 

mybb-20-nutzer-account
MyBB 2.0 Nutzer-Account

 

So schaut es jeweils aus bei dieser Alpha-Version. Ganz sicherlich wird alles noch für die Produktion parat gemacht, wenn die Zeit gekommen ist. Aktuell wird daran rege entwickelt und ich denke, dass in 2 Jahren oder vielleicht schon früher aus dem Projekt etwas werden kann.

Falls du Fragen haben solltest zu diesem Tutorial, feedbacke darunter. Eventuell weiss ich schon was.

by Alexander Liebrecht

Kommentar hinterlassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert