mattimaier / bnote

BNote - Open Source Ensemble Management
http://www.bnote.info
GNU General Public License v3.0
23 stars 16 forks source link

Installation geht nach Datenbank-Konfiguration nicht weiter #542

Open Hannfeld opened 1 year ago

Hannfeld commented 1 year ago

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.

  1. (bnote_release-400.zip herunterladen und entpacken, php, mariadb und apache2 aus dem repo installieren)
  2. mod_rewrite aktivieren mit
    $ sudo a2enmod 
    $ sudo a2enmod 
    $ sudo systemctl reload apache2
  3. /etc/apache2/apache2.conf öffnen, die Zeile <Directory /var/www/> finden und dort AllowOverride None zu All ändern, um htaccess zu aktivieren

(MySQLnd ist nach meinem Verständnis bei aktuellen PHP-Versionen standardmäßig dabei und braucht kein weiteres Setup)

  1. 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
  2. Mit sudo rm /var/www/html/index.html und sudo cp -r {Path_to_unzipped_file}/BNote/* /var/www/html/ den Inhalt des Apache-Servers durch BNote ersetzen
  3. 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/share die entsprechenden Ordner der Webserver-Usergruppe (in meinem Fall www-data) hinzufügen
  4. In einem Webbrowser localhost:80 öffnen, auf "Weiter" klicken, das Formular mit den Chordaten ausfüllen und nochmal auf "Weiter"
  5. 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.

Hannfeld commented 1 year ago

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.

Hannfeld commented 1 year ago

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.

mattimaier commented 1 year ago

Wo müsste denn eine gute Installationsanleitung hin und was fehlt? PR ist gemerged...

Hannfeld commented 1 year ago

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 )