Update von 3.1.8 funktioniert nicht

Topics from older beta tests.
Offe
Beiträge: 568
Registriert: 30. Aug 2007, 17:42

Update von 3.1.8 funktioniert nicht

Beitrag von Offe »

Ich habe gerade versucht, meine Testumgebung auf 3.2.0 Beta 1 upzudaten. Dies schlägt nach der Eingabe von Benutzername + Passwort komplett fehl
Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.

Please contact the server administrator to inform of the time the error occurred and of anything you might have done that may have caused the error.

More information about this error may be available in the server error log.
Im Error-Log ist folgender Fehler verzeichnet:
[Sun Nov 06 12:54:47 2016] [warn] [client Meine-IP] mod_fcgid: read data timeout in 60 seconds, referer: http://server/adm_program/installation/update.php
[Sun Nov 06 12:54:47 2016] [error] [client Meine-IP] Premature end of script headers: update.php, referer: http://server/adm_program/installation/update.php
Gruß Offe
magnet
Beiträge: 222
Registriert: 14. Feb 2012, 15:40

Re: Update von 3.1.8 funktioniert nicht

Beitrag von magnet »

Moin,

ich klinke mich hier mal ein. Ich habe versucht, von der 3.1.9 auf die 3.2.0-Beta1 bzw. den aktuellen 3.2 Checkout zu gehen. Wie im anderen Posting beschrieben, habe ich die index.php, die Ordner adm_program,adm_themes und adm_plugins (komplett, mit login_form) durch die neuen Dateien ersetzt.

Rufe ich nun Admidio auf, erscheint nur die Login-Maske ohne jegliches drumherum. Nach Absenden der Benutzerdaten passiert nichts, im PHP Errorlog sieht man:

Code: Alles auswählen

[Thu Nov 10 13:56:40.624080 2016] [:error] [pid 9661] [client XX:54328] PHP Fatal error:  Call to a member function fetchColumn() on boolean in /srv/www/domain.de/htdocs/demo/adm_plugins/login_form/login_form.php on line 241
Manuelle Neuinstallation klappt ohne Probleme, ich würde aber gern die Datenübernahme testen.

Viele Grüße,
magnet
XimeX
Developer
Beiträge: 1148
Registriert: 12. Jul 2015, 13:21
Wohnort: Austria

Re: Update von 3.1.8 funktioniert nicht

Beitrag von XimeX »

Hallo Magnet,

Kannst du dir mal das zusammengestellte SQL in Zeile 230 in der login_form.php anschauen und direkt in der DB ausführen? Kann es sein das du hier kein Ergebnis bekommst?

Bzw mir kommt diese Zeile (235) falsch vor:

Code: Alles auswählen

AND rol_name LIKE \''.$gL10n->get('SYS_ADMINISTRATOR').'\'
Diese vll mal rausnehmen probieren.
magnet
Beiträge: 222
Registriert: 14. Feb 2012, 15:40

Re: Update von 3.1.8 funktioniert nicht

Beitrag von magnet »

XimeX hat geschrieben:Hallo Magnet,

Kannst du dir mal das zusammengestellte SQL in Zeile 230 in der login_form.php anschauen und direkt in der DB ausführen? Kann es sein das du hier kein Ergebnis bekommst?

Bzw mir kommt diese Zeile (235) falsch vor:

Code: Alles auswählen

AND rol_name LIKE \''.$gL10n->get('SYS_ADMINISTRATOR').'\'
Diese vll mal rausnehmen probieren.
Hallo XimeX,

Vielen Dank für die Hilfe. Die Abfrage lautetete bei mir:

Code: Alles auswählen

SELECT rol_id FROM adm_roles INNER JOIN adm_categories ON cat_id = rol_cat_id WHERE rol_administrator = 1 AND rol_name LIKE 'Administrator' AND ( cat_org_id = 1 OR cat_org_id IS NULL )
Da bei mir die Spalte rol_administrator bei mir in adm_roles nicht existiert, gabs bei mir "ERROR 1054 (42S22): Unknown column 'rol_administrator' in 'where clause'". Ich habe bei mir die Abfrage testweise in "rol_webmaster = 1", geändert, nun kommt die bekannte und erwartete Meldung, dass ein Upgrade ansteht.

Starte ich nun das Datenbank-Upgrade, rödelt sich die Kiste bis zum Timeout tot und nichts passiert mehr. Ich vermute mal stark, dass es daran liegt, dass die neue Tabellenstruktur mit dem rol_administrator und ggf. weiteres noch nicht existiert? Sollten nicht eigentlich schon vorher die Scripte aus /adm_program/installation/db_scripts/update_3_2.xml ausgeführt werden?

Viele Grüße,
magnet
XimeX
Developer
Beiträge: 1148
Registriert: 12. Jul 2015, 13:21
Wohnort: Austria

Re: Update von 3.1.8 funktioniert nicht

Beitrag von XimeX »

Hallo Magnet,
Rufe ich nun Admidio auf, erscheint nur die Login-Maske ohne jegliches drumherum.
Rufst du die Hauptseite von Admidio auf? Also "adm_program/index.php"?

Das ist klar dass das nicht gehen kann. Du musst die update Seite aufrufen und das update durchführen. "adm_program/installation/update.php"
magnet
Beiträge: 222
Registriert: 14. Feb 2012, 15:40

Re: Update von 3.1.8 funktioniert nicht

Beitrag von magnet »

XimeX hat geschrieben:Hallo Magnet,
Rufe ich nun Admidio auf, erscheint nur die Login-Maske ohne jegliches drumherum.
Rufst du die Hauptseite von Admidio auf? Also "adm_program/index.php"?

Das ist klar dass das nicht gehen kann. Du musst die update Seite aufrufen und das update durchführen. "adm_program/installation/update.php"
Moin,

also ehrlich gesagt, so klar ist das scheinbar nicht. Bisher habe ich bei einem anstehenden Update das Script noch nie direkt aufgerufen, sondern das System (in diesem Fall über die index.php) hat nach dem Einfügen der neuen Dateien und aufrufen von Admidio automatisch erkannt, dass eine Differenz zwischen neuen Dateien und der Datenbank besteht. Und so steht es ja auch unter https://www.admidio.org/dokuwiki/doku.p ... 2.0:update beschrieben.

Wie auch immer, rufe ich jetzt die adm_program/index.php ODER aber direkt die adm_program/installation/update.php auf, erscheint bei mir wie erwartet:

Code: Alles auswählen

Die Datenbankversion 3.1.9 ist niedriger als die Version der Admidio-Scripte 3.2.0 Beta 1.
Führe bitte das Datenbankupdate auf die Version durch.
Nun lande ich auf der https://domain.de/adm_program/installation/update.php und starte nach Eingabe der Benutzerdaten das Update. Nach längerer Zeit erscheint eine komplett weiße Seite "https://domain.de/adm_program/installat ... php?mode=2 und es passiert nichts mehr. Rufe ich danach die index oder das update auf, geht das Spielchen von vorne los.

Grüße,
magnet
XimeX
Developer
Beiträge: 1148
Registriert: 12. Jul 2015, 13:21
Wohnort: Austria

Re: Update von 3.1.8 funktioniert nicht

Beitrag von XimeX »

Ok hab mir das nochmal genauer angeschaut. Es müsste auch eine Hinweis/Weiterleitung kommen wenn du die root index.php aufrufst. (NICHT die adm_program/index.php)

Den Fehler bezüglich weißer Seite schau ich mir an

Edit:
Versucht mal den Wert hier auf 600 hochzusetzen:
Zeile 340 in update.php (bei der Beta 1 wirds paar Zeilen vorher sein)
@set_time_limit(300);

WIe viele Datensätze habt ihr denn? Also so grobe angabe. Wenig, Mittel, Viel, ... Je mehr Daten umso länger dauert das updaten. Und die 300 heißen das nach 5min (5*60sec) abgebrochen wird.
magnet
Beiträge: 222
Registriert: 14. Feb 2012, 15:40

Re: Update von 3.1.8 funktioniert nicht

Beitrag von magnet »

XimeX hat geschrieben: Ok hab mir das nochmal genauer angeschaut. Es müsste auch eine Hinweis/Weiterleitung kommen wenn du die root index.php aufrufst. (NICHT die adm_program/index.php)
Exakt.
XimeX hat geschrieben: Versucht mal den Wert hier auf 600 hochzusetzen:
Zeile 340 in update.php (bei der Beta 1 wirds paar Zeilen vorher sein)
@set_time_limit(300);

WIe viele Datensätze habt ihr denn? Also so grobe angabe. Wenig, Mittel, Viel, ... Je mehr Daten umso länger dauert das updaten. Und die 300 heißen das nach 5min (5*60sec) abgebrochen wird.
Habe den Wert testweise auf 600 hochgesetzt, ohne Erfolg. Die Testinstallation ist recht klein, so ca. 200 Benutzer. Bisher war ein Upgrade aber nie ein Problem, ist in wenigen Sekunden durchgelaufen.

Ich denke aber der Log hilft weiter?

Code: Alles auswählen

 PHP Fatal error:  Maximum execution time of 600 seconds exceeded in /srv/www/domain.de/htdocs/demo/adm_program/system/classes/passwordhashing.php on line 76, referer: https://domain.de/demo/adm_program/installation/update.php
Grüße,
magnet
XimeX
Developer
Beiträge: 1148
Registriert: 12. Jul 2015, 13:21
Wohnort: Austria

Re: Update von 3.1.8 funktioniert nicht

Beitrag von XimeX »

Bitte schau mal nach welcher Wert in der Datenbank steht:
Tabelle: adm_preferences
Spalte: prf_name = "system_hashing_cost"
Welcher prf_value Wert eingetragen ist.
magnet
Beiträge: 222
Registriert: 14. Feb 2012, 15:40

Re: Update von 3.1.8 funktioniert nicht

Beitrag von magnet »

XimeX hat geschrieben:Bitte schau mal nach welcher Wert in der Datenbank steht:
Tabelle: adm_preferences
Spalte: prf_name = "system_hashing_cost"
Welcher prf_value Wert eingetragen ist.
Dort ist "31" eingetragen.

Grüße,
magnet
XimeX
Developer
Beiträge: 1148
Registriert: 12. Jul 2015, 13:21
Wohnort: Austria

Re: Update von 3.1.8 funktioniert nicht

Beitrag von XimeX »

Änder mal in der update.php folgende Zeilen um und versuchs nochmal.
Zeile ca 360

Code: Alles auswählen

    // calculate the best cost value for your server performance
    $cost = 10;
    if (isset($gPreferences) && array_key_exists('system_hashing_cost', $gPreferences))
    {
        $cost = (int) $gPreferences['system_hashing_cost'];
    }
    $benchmarkResults = PasswordHashing::costBenchmark(0.35, 'password', $gPasswordHashAlgorithm, array('cost' => $cost));

Code: Alles auswählen

    // calculate the best cost value for your server performance
    $benchmarkResults = PasswordHashing::costBenchmark(0.35, 'password', $gPasswordHashAlgorithm, array('cost' => 10));
magnet
Beiträge: 222
Registriert: 14. Feb 2012, 15:40

Re: Update von 3.1.8 funktioniert nicht

Beitrag von magnet »

Hey, das war es :)

Code: Alles auswählen

Die Aktualisierung war erfolgreich
Die Admidio-Datenbank ist jetzt auf die Version 3.2.0 Beta 1 aktualisiert worden.
Du kannst nun wieder mit Admidio arbeiten.
Einloggen geht auch wieder, jetzt besteht nur noch das Problem, dass ich unangemeldet auf der index.php nur das unhübsche Login-Fenster sehe und nicht wie früher, die Übersichtsseite. Ich habe mal ein Bildchen angehängt, der Rest der Seite ist weiß.

Nochmal zusammenfassend was ich bisher geändert habe:

1. Die SQL-Anfrage in der login_form.php von rol_administrator auf rol_webmaster
2. Das Ersetzen mit $benchmarkResults = PasswordHashing::costBenchmark(0.35, 'password', $gPasswordHashAlgorithm, array('cost' => 10)); in der update.php.

Viele Grüße,
magnet
Dateianhänge
startseite.png
startseite.png (4.55 KiB) 10373 mal betrachtet
XimeX
Developer
Beiträge: 1148
Registriert: 12. Jul 2015, 13:21
Wohnort: Austria

Re: Update von 3.1.8 funktioniert nicht

Beitrag von XimeX »

Code: Alles auswählen

1. Die SQL-Anfrage in der login_form.php von rol_administrator auf rol_webmaster
Das sollte nicht notwendig sein.
Versuch das jetzt rückgängig zu machen. Dann wird die Seite vermutlich wieder funktionieren

Hoffe dass das auch der fix für Offe ist: https://github.com/Admidio/admidio/comm ... eff5e5834e
magnet
Beiträge: 222
Registriert: 14. Feb 2012, 15:40

Re: Update von 3.1.8 funktioniert nicht

Beitrag von magnet »

XimeX hat geschrieben:

Code: Alles auswählen

1. Die SQL-Anfrage in der login_form.php von rol_administrator auf rol_webmaster
Das sollte nicht notwendig sein.
Versuch das jetzt rückgängig zu machen. Dann wird die Seite vermutlich wieder funktionieren

Hoffe dass das auch der fix für Offe ist: https://github.com/Admidio/admidio/comm ... eff5e5834e
Perfekt, vielen Dank für die spontane und umfangreiche Hilfe, jetzt scheints zu laufen.

Ich werde das ganze morgen nochmal resetten und mit einen aktuellen checkout wiederholen, ich bin sehr gespannt auf die Mail-to-Lists-Funktion :-)

Vielen Dank & schönen Abend!
magnet
magnet
Beiträge: 222
Registriert: 14. Feb 2012, 15:40

Re: Update von 3.1.8 funktioniert nicht

Beitrag von magnet »

Doch noch schnell eine Rückmeldung: ich bin nochmal zurück auf die 3.1.9 und habe dann ein Upgrade auf den aktuellen git checkout gemacht. In diesem Fall hat die index.php oder adm_program/index.php nicht erkannt, dass ein Upgrade vorliegt. Ich konnte mich dennoch anmelden und war in einer halbkaputten Installation. Erst als ich die update.php per Hand aufgerufen und die Datenbank aktualisiert wurde, war dann alles in Butter.

Grüße,
magnet
Antworten