gelöst Nach Server-Neuinstallation Probleme im Backend

Thema wurde von Tobi (Sun-side-store), 20. Juli 2024 erstellt.

  1. Tobi (Sun-side-store)

    Tobi (Sun-side-store) Aktives Mitglied

    Registriert seit:
    27. Februar 2015
    Beiträge:
    29
    Danke erhalten:
    2
    Danke vergeben:
    14
    Hallo an alle.
    Nachdem wir seitens unseres Hosters den V-Server neu Installieren mussten (alte Hardware wird nicht länger unterstützt) haben wir bei einem von 3 Onlineshops Probleme im Backend. Bevor ich ein Ticket aufmachen würde ich gern versuchen den Fehler selbst zu finden und zu fixen. Wir hatten alle Daten und die Datenbank gesichert und neu eingespielt. Datenbank neu aufgesetzt und anschließend den Cache gelöscht. Soweit lief dann auch alles. Jedoch konnten wir uns anfangs nicht als Admin einloggen. Es kam immer ein white screen mit Fehlermeldungen (folgen weiter unten). Anmeldung über Login_admin.php funktionierte nach austauschen den config.php in admin/includes gegen eine neuere config datei (unsere war von 2014!) und löschen des Caches aus dem Admin heraus. Danach hat dann auch der normale login funktioniert. Jedoch erscheinen die Fehlermeldungen jetzt im Admin oben als "Dauermeldung".
    Die Warnungen sind wie folgt:
    Warning: Constant DB_SERVER_USERNAME already defined in /var/www/vhosts/sun-side-store.de/sun-side-store/admin/includes/configure.php on line 106
    Warning: Constant DB_SERVER_PASSWORD already defined in /var/www/vhosts/sun-side-store.de/sun-side-store/admin/includes/configure.php on line 107
    Warning: Constant DB_DATABASE already defined in /var/www/vhosts/sun-side-store.de/sun-side-store/admin/includes/configure.php on line 113
    Warning: Constant USE_PCONNECT already defined in /var/www/vhosts/sun-side-store.de/sun-side-store/admin/includes/configure.php on line 115
    Die admin/includes/config.php hab ich schon intensiv durchgeschaut konnte aber keine Fehler entdecken. Der Servername selbst sowie die Verzeichnisstruktur sind gleich geblieben. Hauptproblem ist das unsere Kunden im Backend nicht mehr angezeigt werden. Die Bestellungen jedoch sind sichtbar. In der Datenbank sind die customer jedoch noch vorhanden. Anscheinend kann der Shop also nur auf bestimmte Teile der Datenbank nicht zugreifen. Eine Testbestellung als Neukunde ist durchgelaufen und ist im Backend auch sichtbar. Jedoch der "neue" Kunde nicht.
    Vom Umzug betroffen waren unsere beiden anderen Shops sowie zwei Worppress Installationen. Die laufen mittlerweilen ohne Probleme.
    Hat jemand eine Idee? Aus den Admin-logs und den Logs unseres Servers werde ich auch nicht schlauer.

    Für Denkanstöße oder Ideen wäre ich sehr dankbar.

    Tobi

     
  2. barbara

    barbara G-WARD 2014-2020

    Registriert seit:
    14. August 2011
    Beiträge:
    35.448
    Danke erhalten:
    11.248
    Danke vergeben:
    1.606
    Mein erster Gedanke sind die Lese / Schreibrechte auf der admin/includes/configure.php
    sind die wieder auf 444?
     
  3. Tobi (Sun-side-store)

    Tobi (Sun-side-store) Aktives Mitglied

    Registriert seit:
    27. Februar 2015
    Beiträge:
    29
    Danke erhalten:
    2
    Danke vergeben:
    14
    Hallo Barbara,
    die Schreibrechte sind auf 444. Ich hab auch schon alles mögliche mit unseren beiden Shops verglichen die ich parallel mit umgezogen habe. Leider konnte ich auch hier keine Unterschiede feststellen. Im Shop der Probleme macht haben wir das Ladezeitmodul von Dominik Späte laufen. Da haben wir aber schon die caches geleert und das macht für mich auch wenig Sinn das es daran liegen könnte. Sonst sind lediglich ein paar kleinere CSS Änderungen gemacht die ja aber auch keine Auswirkungen auf das Backend haben.
     
  4. Dennis (MotivMonster.de)

    Dennis (MotivMonster.de) G-WARD 2013/14/15/16

    Registriert seit:
    22. September 2011
    Beiträge:
    31.071
    Danke erhalten:
    6.132
    Danke vergeben:
    1.085
    Beruf:
    Mann für alles :)
    Ort:
    Weilburg
    Was steht den in den angegebenen Zeilen? evtl. irgendwo dreher, leerzeichen oder so

    bzw. da steht ja das es schon existent ist, hast die Zeilen evtl. doppelt?
     
  5. Christian Mueller

    Christian Mueller Beta-Held

    Registriert seit:
    4. Juli 2011
    Beiträge:
    3.767
    Danke erhalten:
    934
    Danke vergeben:
    302
    Sind die installierten PHP-Module überall gleich?
     
  6. Tobi (Sun-side-store)

    Tobi (Sun-side-store) Aktives Mitglied

    Registriert seit:
    27. Februar 2015
    Beiträge:
    29
    Danke erhalten:
    2
    Danke vergeben:
    14
    Hallo Christian und Dennis,
    ich hab die config.php schon mit der aus unserem anderen Shop verglichen (über notepad mit dem compare plugin) und in dem Bereich ist alles identisch.
    Ich hab die betreffenden Zeilen 106, 107, 113 und 115 unten im Code mal rot markiert. Aber wie gesagt, im zweiten Shop läuft alles ohne Probleme.
    Ok, gerade gesehen das rote Schrift im Code nicht funktioniert. Es sind hier im Code die Zeilen 11, 12
    define('DB_SERVER_USERNAME', $user);
    define('DB_SERVER_PASSWORD', $pwd);
    und Zeilen 18 und 20
    define('DB_DATABASE', $db);
    }
    define('USE_PCONNECT', $p_connect); // use persistent connections? deprecated and not

    Code:
    // define our database connection
      define('DB_SERVER', 'localhost'); // eg, localhost - should not be empty for productive servers
      define('DB_SERVER_USERNAME', '*****');
      define('DB_SERVER_PASSWORD', '*****');
      define('DB_DATABASE', '*****');
      define('USE_PCONNECT', 'false'); // use persisstent connections?
    
    if(!function_exists('define_database')) {
        function define_database($host, $user, $pwd, $db, $p_connect) {
            define('DB_SERVER', $host); // eg, localhost - should not be empty for productive servers
            define('DB_SERVER_USERNAME', $user);
            define('DB_SERVER_PASSWORD', $pwd);
            if (isset($_SERVER['HTTP_X_GXDB'])
                && file_exists(DIR_FS_CATALOG . '.dev-environment')
            ) {
                define('DB_DATABASE', $_SERVER['HTTP_X_GXDB']);
            } else {
                define('DB_DATABASE', $db);
            }
            define('USE_PCONNECT', $p_connect); // use persistent connections? deprecated and not supported anymore since GX 4.5
        }
    }
    define_database('localhost', // eg, localhost - should not be empty for productive servers
                    '*****',
                    '*****',
                    '*****',
                    'false'); // use persistent connections? deprecated and not supported anymore since GX 4.5
    
    unset($t_document_root); 
    unset($t_dir_fs_backend); 
    unset($t_dir_fs_frontend); 
    unset($t_dir_ws_catalog); 
    
    Die PHP Version ist die 8.3.9. Die läuft auf allen 3 Shops. Wenn ich mich recht entsinne hatten wir vorher auch schon die 8.3.x am laufen. Auch den Wechsel auf die 8.2. hatte ich schon versucht aber ohne das es etwas gebracht hätte. Was ich halt absolut nicht nachvollziehen kann ist das der Shop einen Teil der Datenbank nicht auslesen kann. Bestellungen kommen rein, die sehen wir ganz normal. Aber keine neuen Kundenkonten zur Bestellung. Wenn ich in der Übersicht der Bestellungen auf den Kundennamen klicke öffnet sich das Fenster mit
    Kunde nicht gefunden
    Der Kunde mit der ID: #71*** existiert nicht.
    (Die * kommen von mir, hier steht die richtige Kundennummer drin)
     
  7. Kai Stejuhn

    Kai Stejuhn Beta-Held

    Registriert seit:
    26. September 2014
    Beiträge:
    1.417
    Danke erhalten:
    715
    Danke vergeben:
    92
    Du musst die ersten Zeilen mit den Defines auskommentieren. Durch die nachfolgende Funktion ergibt sich der Fehler mit den doppelten Defines.

    Hier mal der korrigierte Code:

    PHP:
    // define our database connection
    //  define('DB_SERVER', 'localhost'); // eg, localhost - should not be empty for productive servers
    //  define('DB_SERVER_USERNAME', '*****');
    //  define('DB_SERVER_PASSWORD', '*****');
    //  define('DB_DATABASE', '*****');
    //  define('USE_PCONNECT', 'false'); // use persisstent connections?

    if(!function_exists('define_database')) {
        function 
    define_database($host$user$pwd$db$p_connect) {
            
    define('DB_SERVER'$host); // eg, localhost - should not be empty for productive servers
            
    define('DB_SERVER_USERNAME'$user);
            
    define('DB_SERVER_PASSWORD'$pwd);
            if (isset(
    $_SERVER['HTTP_X_GXDB'])
                && 
    file_exists(DIR_FS_CATALOG '.dev-environment')
            ) {
                
    define('DB_DATABASE'$_SERVER['HTTP_X_GXDB']);
            } else {
                
    define('DB_DATABASE'$db);
            }
            
    define('USE_PCONNECT'$p_connect); // use persistent connections? deprecated and not supported anymore since GX 4.5
        
    }
    }
    define_database('localhost'// eg, localhost - should not be empty for productive servers
                    
    '*****',
                    
    '*****',
                    
    '*****',
                    
    'false'); // use persistent connections? deprecated and not supported anymore since GX 4.5

    unset($t_document_root);
    unset(
    $t_dir_fs_backend);
    unset(
    $t_dir_fs_frontend);
    unset(
    $t_dir_ws_catalog); 
     
  8. Tobi (Sun-side-store)

    Tobi (Sun-side-store) Aktives Mitglied

    Registriert seit:
    27. Februar 2015
    Beiträge:
    29
    Danke erhalten:
    2
    Danke vergeben:
    14
    HEUREKA!
    Kai, vielen lieben Dank, das wars! Auch auf unsere Kundendaten komm ich jetzt wieder drauf. Was ich nur nicht verstehe warum das ganze in unserem anderen Shop mit exakt dem Code (mit anderen Zugangsdaten) funktioniert.

    Großen Dank an euch alle!
     
  9. Walter Lenk

    Walter Lenk Erfahrener Benutzer

    Registriert seit:
    28. September 2011
    Beiträge:
    528
    Danke erhalten:
    220
    Danke vergeben:
    86
    Guten Morgen Tobi,

    das könnte entweder an einer anderen PHP-Version liegen (was ich nicht glaube weil mehrfach definierte Konstanten eigentlich schon immer eine Warnung erzeugt haben) oder weil das Error-Reporting evtl. anders definiert war. Vielleicht wurden Warnungen am vorherigen Webspace für die Ausgabe unterdrückt!?

    Grüße
    Walter
     
  10. Christian Mueller

    Christian Mueller Beta-Held

    Registriert seit:
    4. Juli 2011
    Beiträge:
    3.767
    Danke erhalten:
    934
    Danke vergeben:
    302
  11. Tobi (Sun-side-store)

    Tobi (Sun-side-store) Aktives Mitglied

    Registriert seit:
    27. Februar 2015
    Beiträge:
    29
    Danke erhalten:
    2
    Danke vergeben:
    14
    Danke für den Hinweis Christian. Dann werde ich hier nochmal zurück wechseln auf PHP 8.2.

    @Walter Lenk: Ich könnte das alles nachvollziehen. Mich wundert nur das wir 3 Shops auf dem Webspace laufen haben, Alles identisch. PHP Version, gleiche Shopversion etc.Aber nur der eine Shop schmeißt die Feherlmeldung raus. Aber ich muss nicht alles verstehen. :-D Bin happy das alles wieder funkitionert!