May 1May 1 Hi!Ich habe von meinem Hoster bei der Installation vom V-Server Froxlor vorinstalliert gehabt und Froxlor genutzt um mir einen Mail-Account einzurichten und danach das ganze Teil so ziemlich in Ruhe gelassen.Das hat ewig lang funktioniert und auch jetzt scheint es noch weiter zu laufen, meine E-Mails kommen immer noch auf die damals eingerichtete E-Mail Adresse an.Ich wollte nach all den Jahren dann aber doch mal wieder gucken: Was kann Froxlor eigentlich alles so und bin auf die Seite gegangen. Dort wurde ich dann nach Admin-Login gefragt um das Update das mit meinen Server-Updates wahrscheinlich ohne dass ich es bemerkt habe im Hintergrund eingespielt wurde zu vollenden. Soweit so gut.Das Update geht über 4 Minor Versionen: von 0.10.25 auf 2.3.5. Wahrscheinlich von Debian 9 auf Debian 12 wenn man alles zusammenzählt.Nun, ich klicke die Einstellungen an, die ich gerne hätte, Froxlor geht einen Schritt weiter und zeigt mir einen grünen Haken bei Database Integrity. Ich klicke aufs Dashboard und sehe das Dashboard.Anzahl E-Mails, anzahl User etc. Alles korrekt dargestellt.Nur das Update beendet sich nicht.Links in der Seite sehe ich nur weiterhin das "froxlor update" und auch nach etwas Warten falls die Cron-Tasks etwas machen, passiert nichts.Ich finde auch keine wirklich hilfreichen Logs, weder in /var/www/html/froxlor/logs, noch anderswo. Nur in den Apache2 Error Logs sehe ichTrying to access array offset on value of type null in /var/www/html/froxlor/lib/Froxlor/Ajax/Ajax.php on line 202, referer: https://<<Domain>>/froxlor/admin_settings.php?page=phpinfoWie ihr wahrscheinlich schon gelesen habt: ich bin total unerfahren was Froxlor angeht und habe keine große Ahnung wie ich weiter debuggen kann, um mein Panel wieder lauffähig zu bekommen. Bin deshalb über jede Hilfe dankbar.
May 1May 1 irgendwas lässt dein froxlor glauben, dass die Dateien neuer sind als die (froxlor) Datenbank. Mit Sicherheit ist hier bei so einem massiven Versions-Sprung irgendwo was hängengeblieben.Was genau wird denn angezeigt, wenn du links im Menü auf "froxlor update" klickst, ggfls lässt sich hier einsehen wo er aufgehört hat und wo der Updater dann ggfls crashed
May 1May 1 Author Ich komme dann nur wieder auf die Update-Seite:Ich setze die Checkmarks die ich gerne hätte, aktiviere unten dass ich die Upgrade Notes gelesen habe und klicke auf Proceed, dann komme ich auf die Database Integrity Seite wo alles gut ist:Und komme wieder aufs Dashboard das aussieht wie oben. Keine Fehlermeldungen in der Browser Netzwerkkonsole, nur die genannte ajax.php Fehlermeldung im Apache Log und keine neuen Fehlermeldungen im Froxlor Log.Eine Sache habe ich nur noch gefunden: im Froxlor Log sehe ich|CODE 42S22 |MSG SQLSTATE[42S22]: Column not found: 1054 Unknown column 'gui_access' in 'field list' |FILE /var/www/html/froxlor/lib/Froxlor/Database/Database.php |LINE 122 |TRACE #0 /var/www/html/froxlor/lib/Froxlor/Database/Database.php(122): PDOStatement->execute() #1 /var/www/html/froxlor/lib/Froxlor/Api/Commands/Admins.php(759): Froxlor\Database\Database::pexecute() #2 /var/www/html/froxlor/admin_index.php(270): Froxlor\Api\Commands\Admins->update() #3 {main}Die Log-Zeile wurde wohl beim Start von Froxlor geschrieben, zumindest passt die Uptime zusammen.
May 1May 1 ah okay, ja von 0.10.x ist aber auch wirklich...puh....also deine datenbank hat auf jedenfall noch den stand von 0.10.25 und deine dateien sind 2.3.5 - d.h. da ist noch genau kein Datenbank-Update gelaufen, weil ein 2.x featuer (gui_access) dich davon abhält.Am besten machst du nun Folgendes:1) MySQL, manuell:ALTER TABLE `panel_admins` ADD `gui_access` tinyint(1) NOT NULL default '1'; ALTER TABLE `panel_customers` ADD `gui_access` tinyint(1) NOT NULL default '1';2) Damit das Update nicht versucht, die Felder anzulegen: 2.1) Öffne ./install/updates/froxlor/update_2.2.inc.php 2.2) Lösche diese vier Zeilen (Zeile 98-101 müsste das sein): Update::showUpdateStep("Enhancing admin and user table"); Database::query("ALTER TABLE `" . TABLE_PANEL_ADMINS . "` ADD `gui_access` tinyint(1) NOT NULL default '1';"); Database::query("ALTER TABLE `" . TABLE_PANEL_CUSTOMERS . "` ADD `gui_access` tinyint(1) NOT NULL default '1';"); Update::lastStepStatus(0);Dann probier das Update noch mal
May 1May 1 Author Schon mal danke, ich habe da auch einen Fehler entdeckt: meine panel_customers Tabelle wollte nicht altered werden.Ich habe deshalb zusätzlich ALTER TABLE panel_customers ROW_FORMAT=DYNAMIC; ausgeführt, danach konnte ich dann die neue Spalte hinzufügen.Leider ist das Ergebnis soweit das selbe: keine neuen Logs im froxlor/logs Directory und auch nur der bereits erwähnte ajax.php Fehler weil $result['last_update_check'] = $uc_data['ts']; nicht ausgeführt werden konnte.
May 1May 1 Author Ich habe zusätzlich noch eine Idee gehabt:Ich habe das Profil vom Admin-User geändert und die Sprache von Englisch auf Deutsch umgestellt. Dadurch konnte ich noch einmal bestätigen, dass die Datenbankverbindung funktioniert def_language hat sich von en auf de geändert.
May 1May 1 Da sollte garkein ajax.php eine Rolle spielen wenn du noch im Update-Prozess bist.Aktivere doch mal das File-Logging:(Mysql, manuell):UPDATE `panel_settings` SET `value` = '1' WHERE `settinggroup` = 'logger' AND `varname` = 'enabled'; UPDATE `panel_settings` SET `value` = 'syslog,file' WHERE `settinggroup` = 'logger' AND `varname` = 'logtypes'; UPDATE `panel_settings` SET `value` = '2' WHERE `settinggroup` = 'logger' AND `varname` = 'severity'; UPDATE `panel_settings` SET `value` = 'froxlor.log' WHERE `settinggroup` = 'logger' AND `varname` = 'logfile';die log 'froxlor.log' sollte dann im Ordner /logs/ auftauchen
May 1May 1 Author Danke, logs tauchen auf.ich habe leider nicht viele Log-Meldungen:[2026-05-01 17:11:24] froxlor.NOTICE: viewed admin_updates {"source":"admin","action":"30","user":"admin"} [] [2026-05-01 17:11:24] froxlor.INFO: [API] checking for updates {"source":"admin","action":"30","user":"admin"} [] [2026-05-01 17:11:35] froxlor.NOTICE: viewed admin_updates {"source":"admin","action":"30","user":"admin"} [] [2026-05-01 17:11:35] froxlor.WARNING: -------------- START LOG -------------- {"source":"admin","action":"30","user":"updater"} [] [2026-05-01 17:11:35] froxlor.WARNING: Checking database integrity {"source":"admin","action":"30","user":"system"} [] [2026-05-01 17:11:35] froxlor.WARNING: Success {"source":"admin","action":"30","user":"system"} [] [2026-05-01 17:11:35] froxlor.WARNING: --------------- END LOG --------------- {"source":"admin","action":"30","user":"system"} [] [2026-05-01 17:11:35] froxlor.INFO: [API] checking for updates {"source":"admin","action":"30","user":"admin"} [] [2026-05-01 17:11:39] froxlor.NOTICE: viewed admin_index {"source":"admin","action":"30","user":"admin"} [] [2026-05-01 17:11:39] froxlor.INFO: [API] checking for updates {"source":"admin","action":"30","user":"admin"} []Und vor allem keine Fehlermeldungen. Das sind die vollständigen Logs bei einmal aufrufen der Website -> Anmelden -> Durchführen der Upgrade settings in der GUI -> Proceed
May 1May 1 Solution Ja okay, jetzt weiss ich was los is. Du hast ja nicht mal die neueste 0.10.x version, die letzte war die 0.10.38.3 und nur mit der kommst du auch in die 2er updates.Das wird jetzt etwas frickelig, aber du musst halt die "db-updates" für 0.10.25 -> 0.10.38.3 durchführen:ALTER TABLE panel_domains CHANGE `ssl_protocols` `ssl_protocols` varchar(255) NOT NULL DEFAULT ''; ALTER TABLE panel_domains CHANGE `ssl_cipher_list` `ssl_cipher_list` varchar(500) NOT NULL DEFAULT ''; ALTER TABLE panel_domains CHANGE `tlsv13_cipher_list` `tlsv13_cipher_list` varchar(500) NOT NULL DEFAULT ''; ALTER TABLE panel_domains ADD `description` varchar(255) NOT NULL DEFAULT '' AFTER `ssl_sessiontickets`; ALTER TABLE mail_virtual ADD `description` varchar(255) NOT NULL DEFAULT '' AFTER `iscatchall`; INSERT INTO `panel_settings` SET `settinggroup` = 'panel', `varname` = 'imprint_url', `value` = ''; INSERT INTO `panel_settings` SET `settinggroup` = 'panel', `varname` = 'terms_url', `value` = ''; INSERT INTO `panel_settings` SET `settinggroup` = 'panel', `varname` = 'privacy_url', `value` = ''; INSERT INTO `panel_settings` SET `settinggroup` = 'system', `varname` = 'domaindefaultalias', `value` = '0'; INSERT INTO `panel_settings` SET `settinggroup` = 'panel', `varname` = 'logo_image_header', `value` = ''; INSERT INTO `panel_settings` SET `settinggroup` = 'panel', `varname` = 'logo_image_login', `value` = ''; UPDATE `panel_settings` SET `value` = 'letsencrypt' WHERE `settinggroup` = 'system' AND `varname` = 'letsencryptca'; INSERT INTO `panel_settings` SET `settinggroup` = 'panel', `varname` = 'logo_overridetheme', `value` = '0'; INSERT INTO `panel_settings` SET `settinggroup` = 'panel', `varname` = 'logo_overridecustom', `value` = '0'; INSERT INTO `panel_settings` SET `settinggroup` = 'system', `varname` = 'createstdsubdom_default', `value` = '1'; DELETE FROM `panel_settings` WHERE `settinggroup` = 'panel' AND `varname` = 'no_robots'; INSERT INTO `panel_settings` SET `settinggroup` = 'system', `varname` = 'froxlorusergroup', `value` = ''; INSERT INTO `panel_settings` SET `settinggroup` = 'system', `varname` = 'froxlorusergroup_gid', `value` = ''; INSERT INTO `panel_settings` SET `settinggroup` = 'system', `varname` = 'powerdns_mode', `value` = 'Native'; INSERT INTO `panel_languages` SET `language` = 'Česká republika', `iso` = 'cs', `file` = 'lng/czech.lng.php'; INSERT INTO `panel_settings` SET `settinggroup` = 'system', `varname` = 'acmeshpath', `value` = '/root/.acme.sh/acme.sh'; UPDATE `panel_settings` SET `value` = '202112310' WHERE `settinggroup` = 'panel' AND `varname` = 'db_version'; UPDATE `panel_settings` SET `value` = '0.10.38.3' WHERE `settinggroup` = 'panel' AND `varname` = 'version'; (keine Garantie das ich grad auf die Schnell wirklich alles erwischt hab)
May 1May 1 Author Nochmal danke für deine Hilfe! Hier noch ein paar zusätzliche Queries die ich vorher ausführen musste:UPDATE panel_domains SET ssl_protocols = '' WHERE ssl_protocols IS NULL; UPDATE panel_domains SET ssl_cipher_list = '' WHERE ssl_cipher_list IS NULL; UPDATE panel_domains SET tlsv13_cipher_list = '' WHERE tlsv13_cipher_list IS NULL;Die neuen Columns description waren schon da.Ich weiß natürlich nicht, ob du alles mitgenommen hast.AABER! ES HAT FUNKTIONIERT! 🥳🥳🥳🥳Danke vielmals. Ich bin im Dashboard drin!
Create an account or sign in to comment