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.
Inhaltsverzeichnis
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:
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
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