bnote
bnote copied to clipboard
Installation geht nach Datenbank-Konfiguration nicht weiter
Edit zur Erklärung, warum ich das als Issue und nicht als Frage an die Entwickler poste: ich weiß nicht, wo der Fehler liegt, aber wenn es kein Bug ist, dann würde ich mir eine zugänglichere Dokumentation wünschen. Ich habe eigentlich nicht den Eindruck, dass das Setup tiefergehendes Know-How in PHP und Webentwicklung brauchen sollte.
Unser Chorleiter hat erwähnt, dass er erfolglos versucht hat, eine BNote-Instanz zu hosten, und nach etwas tüfteln komme ich nun ebenfalls nicht weiter. Ich hab's lokal sowohl auf meinem Laptop mit Ubuntu Gnome 22.04, Apache2, MariaDB 15.1 und PHP8.1 als auch auf einem Raspberry Pi mit Raspbian 11, Apache2, MariaDB 15.1 and PHP7.4 mit identischen Ergebnissen probiert. Nachfolgend der komplette Installationsprozess. Insbesondere Schritte 5.+6. habe ich auf beiden Geräten mehrfach ausgeführt und das Passwort überprüft, daher kann ich Eingabefehler ziemlich sicher ausschließen.
- (bnote_release-400.zip herunterladen und entpacken, php, mariadb und apache2 aus dem repo installieren)
- mod_rewrite aktivieren mit
$ sudo a2enmod
$ sudo a2enmod
$ sudo systemctl reload apache2
/etc/apache2/apache2.conföffnen, die Zeile<Directory /var/www/>finden und dortAllowOverride NonezuAlländern, um htaccess zu aktivieren
(MySQLnd ist nach meinem Verständnis bei aktuellen PHP-Versionen standardmäßig dabei und braucht kein weiteres Setup)
- MySQL-User und -Datenbank erstellen mit:
$ sudo mysql
MariaDB [(none)]> CREATE USER username IDENTIFIED BY 'password';
MariaDB [(none)]> CREATE DATABASE dbname;
MariaDB [(none)]> GRANT ALL PRIVILEGES ON dbname.* TO username;
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> EXIT
- Mit
sudo rm /var/www/html/index.htmlundsudo cp -r {Path_to_unzipped_file}/BNote/* /var/www/html/den Inhalt des Apache-Servers durch BNote ersetzen - Sicherstellen, dass die Ordner und Unterordner die nötigen Zugriffsrechte haben, und mit
chgrp -R www-data /var/www/html/config/ /var/www/html/data/ /var/www/html/data/members /var/www/html/data/programs /var/www/html/data/sharedie entsprechenden Ordner der Webserver-Usergruppe (in meinem Fall www-data) hinzufügen - In einem Webbrowser localhost:80 öffnen, auf "Weiter" klicken, das Formular mit den Chordaten ausfüllen und nochmal auf "Weiter"
- In der Datenbank-Konfiguration in die leeren Felder die Werte aus 3. (dbname, username und password) eintragen
Wenn ich dann auf "Weiter" klicke, zeigt Firefox nur noch eine weiße Seite, Chromium meldet dagegen einen HTTP ERROR 500. company.xml, config.xml und database.xml werden erstellt, aber wenn ich mir in MySQL/MariaDB die Tables von dbname anzeigen lasse, bekomme ich die leere Menge.
Ich hab mal mein Glück mit xdebug versucht (komplettes Neuland für mich) und bin auf folgende Fehlermeldung gestoßen:
[Sat Aug 12 02:57:59 2023] PHP Fatal error: Uncaught Error: Call to undefined function simplexml_load_file() in {Path_to_bnote_folder}/BNote/src/data/xmldata.php:16
In der Ausgabe von phpinfo() ist SimpleXML aber als Modul gelistet.
Ich hab's gelöst und muss eingestehen, dass die Lösung beschämend einfach war: ich wusste nicht (und bin auch bei meiner Recherche erst nicht darauf gestoßen), dass die XML- und SQL-Module für PHP einzeln installiert werden müssen. Anschließend musste ich den DB-User nochmal explizit für Localhost erstellen (dachte eigentlich, %/default wäre ein Catch-all). Das bestätigt aber auch meinen Eindruck, dass BNote mit einer vollständigen Anleitung sehr einfach zu installieren ist. Ich hab mal einen PR mit kleinen Ergänzungen und einem Fix für einen Fehler eingereicht. Falls eine ausführliche Anleitung auch in eurem Interesse ist, kann ich meinen Ursprungskommentar entsprechend umschreiben, gerne auch auf Englisch.
Wo müsste denn eine gute Installationsanleitung hin und was fehlt? PR ist gemerged...
Es hat sich ja jetzt herausgestellt, dass die meisten Probleme, die ich nach Installation aller Module noch hatte, durch die richtige Patchreihenfolge gelöst wurden (siehe #544 ) und das soll ja mit dem kommenden Update kein Problem mehr sein. Zur Frage, wohin die Installationsanleitung gehört: ich glaube, es ist vor allem hilfreich, wenn es eine einheitliche, vollständige Anleitung gibt und nicht 3+ verschiedene. Ich persönlich mag sie gern direkt in der Readme des Repo, aber die aktuelle .txt-Datei in der Release-zip finde ich auch praktikabel. Irgendwo gehört auch noch der Hinweis hin, dass User beim Anmelden das Geburtstagsfeld ausfüllen müssen (siehe meine Antwort auf #539 )