Vor Update den Webshop in lokale Testumgebung installieren?

Das Oxid-CE-Online-“Handbuch” empfiehlt: Update in einer Testumgebung ausführen:

“Wir empfehlen Ihnen, die Updates erst auf einer Testinstallation Ihres eShops durchzuführen, bevor Sie ihren Live-eShop updaten. Installieren Sie dazu eine Kopie Ihres eShops auf ihrem Computer und führen Sie das Update zunächst in dieser Testumgebung durch. Wenn keine Probleme auftreten, dann führen Sie das Update auf Ihrem Live-eShop durch.”

Das mit der Testinstallation ist eine feine Idee – leider nicht gerade selbsterklärend. Unter http://wiki.oxidforge.org/Downloads/VMware wird eine fertige Testumgebung für den Oxidshop zum Download angeboten. Da ich mich mit XAMPP schon minimal auskenne, versuche ich, den Shop dort zum Laufen zu bringen. Ich erkläre mal ausführlich, was passiert, dann gibt’s von hoffentlich vorhandenen helfenden Geistern weniger Rückfragen.

Ich lade den „shop“-Ordner meiner funktionierenden Oxid-Installation mit ftp aus Netz herunter und kopiere ihn ins Verzeichnis „htdocs“ im XAMPP-Ordner. Der Aufruf von http://localhost/shop oder http://localhost/shop/admin/ funktioniert noch nicht. Also sehe ich mir die config.inc.php (im Verzeichnis „shop“ unter XAMPP) an und verändere einige Zeilen:
Neu:
$this->sShopURL = ‘http://localhost/shop’;
$this->sShopDir = ‘htdocs/shop’;
$this->sCompileDir = ‘htdocs//shop/tmp’;

Eine Datenbank habe ich im XAMPP-phpmyadmin angelegt und den Namen auch in der config.inc.php eingetragen. Im XAMPP-phpmyadmin (3.1.3.1) finde ich keine Möglichkeit, so wie z.B. auf dem Parallels Plesk Panel einen Datenbanknutzer einzutragen, also trage ich in der config.inc.php einfach einen der XAMPP-phpmyadmin-Benutzer mit Passwort für die Variablen dbUser und dbPassword ein.
Wenn ich jetzt http://localhost/shop/ aufrufe, passiert wenigstens was. Statt wie vorhin „shop offline“ erscheint jetzt Folgendes, was mich allerdings entmutigt:

Warning: Invalid argument supplied for foreach() in C:\xampp\htdocs\shop\core\oxbase.php on line 1016

Warning: Invalid argument supplied for foreach() in C:\xampp\htdocs\shop\core\oxbase.php on line 1016

Warning: Invalid argument supplied for foreach() in C:\xampp\htdocs\shop\core\oxbase.php on line 1016

Warning: array_keys() [function.array-keys]: The first argument should be an array in C:\xampp\htdocs\shop\core\oxlang.php on line 365

Warning: array_keys() [function.array-keys]: The first argument should be an array in C:\xampp\htdocs\shop\core\oxlang.php on line 365

Warning: array_keys() [function.array-keys]: The first argument should be an array in C:\xampp\htdocs\shop\core\oxlang.php on line 365

Warning: array_keys() [function.array-keys]: The first argument should be an array in C:\xampp\htdocs\shop\core\oxlang.php on line 365

Warning: array_keys() [function.array-keys]: The first argument should be an array in C:\xampp\htdocs\shop\core\oxlang.php on line 365

Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\shop\core\oxbase.php:1016) in C:\xampp\htdocs\shop\core\exception\oxexceptionhandler.php on line 178

Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\shop\core\oxbase.php:1016) in C:\xampp\htdocs\shop\core\exception\oxexceptionhandler.php on line 179

Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\shop\core\oxbase.php:1016) in C:\xampp\htdocs\shop\core\exception\oxexceptionhandler.php on line 180

Vielleicht war das doch naiv, den im Web funktionierenden Shop einfach mal eben in eine lokale Umgebung zu ziehen? Aber genau das schlägt das die Oxid-Dokumentation doch vor!

Das ganze ist normalerweise wirklich recht einfach.

Was passiert sein könnte:

  1. Beim Downloaden der Dateien ist etwas beschädigt worden
  2. Es sind Module vorhanden, die aufgrund unterschiedlicher Serverumgebeungen z. B. ionCubeLoader lokal nicht laufen können.
  3. Du hast einen Tippfehler etc. in deiner Config.
  4. Du hast den tmp-Ordner nicht geleert.
    etc.

Hast du denn eine “richtige Oxid-Datenbank” lokal angelegt oder eine neue leere?

Hi,

ich glaub, die Frau Wuerfel hat einfach vergessen, im bin mode zu übertragen :wink:

Gruß

Hallo, die Herren (bin selber so einer),
danke für die Posts. Zeit, sich mal wieder mit dem Problem zu beschäftigen - ich bitte um Verzeihung für die Sendepause.

War mein Vorgehen denn grundsätzlich richtig?
-„Shop“-Ordner meiner funktionierenden Oxid-Installation mit ftp IM BIN MODE herunterladen und ihn ins Verzeichnis „htdocs“ im XAMPP-Ordner kopieren.
-Datenbank im XAMPP-phpmyadmin anlegen.
-config.inc.php folgendermaßen umschreiben:
/** @name database information */
$this->dbHost = ‘localhost’; // database host name
$this->dbName = ‘oxid_eshop’; // database name Name der Datenbank im XAMPP-phpmyadmin
$this->dbUser = ‘root’; // database user name Das ist einer der mysql User, genauer gesagt, der SuperUser - ich kann in phpmyadmin keinen einfachen db user eintragen
$this->dbPwd = ‘test’; // database user password
$this->dbType = ‘mysql’;
$this->sShopURL = ‘http://localhost/shop’;
$this->sSSLShopURL = null;
$this->sAdminSSLURL = null;
$this->sShopDir = ‘htdocs/shop’;
$this->sCompileDir = ‘htdocs//shop/tmp’;

Müsste das denn hinhauen oder fehlt noch was?
Ich habe nur ein PayPal-Modul zusätzlich zum Standardshop.

Danke fürs Mitlesen…

…tmp Verzeichnis (lokal unter XAMPP) gelöscht?

Ich würde dir empfehlen einen Shop (selbe Version wie online) lokal frisch zu installieren. So siehst du nämlich schon mal ob die Systemvoraussetzungen erfüllt sind und hast eine funktionierende htacess und config.inc.php.
Dann überschreibst du die Datenbank mit der Online-Version und die Dateien mit den Online-Dateien, außer eben config.inc.php und .htacess.
Als letzten Schritt trägst du noch die manuellen Änderungen in der config.inc.php (z.B.Templateverzeichnis) nach und löschst alle Dateien im tmp-Verzeichnis.

…warte mal, jetzt hab ich Deine Beiträge mehrmals durchgelesen und Du schreibst zwar dass Du die Datenbank angelegt hast, aber nicht ob Du da auch Daten reingepackt hast.

Also nur zur Sicherheit, hast Du den Inhalt der Web-Datenbank in Deine lokale Datenbank übertragen, oder die lokale nur angelegt?

Wegen der .htaccess, das könnte aufgrund der RewriteBase Probleme geben. Insofern wäre eine frische, lokale Installation mit der gleichen (alten) Version wie auf dem Webserver wohl besser. Danach wie leofonic beschrieben hat alle Dateien ersetzen bis auf confic.inc.php und .htaccess.

Hurra! Es klappt!
Danke an Hebsacker und leofonic, eure Tipps werde ich garantiert auch nochmal brauchen, aber letztlich kam der Durchbruch anderswoher. Erstens hatte ich die gefüllte Datenbank im Netz gar nicht dort exportiert und in XAMPP wieder importiert. Und zweitens ist die Verbindung zwischen Oxid-Shop und Datenbank erst zustande gekommen, als ich einen neuen Benutzer für die Datenbank angelegt habe (diese Funktion ist in phpmyadmin gut versteckt). Mit dem Namen und Passwort des SuperUsers kam keine Verbindung zustande!

Hier die Anleitung für andere Anfänger:

Ich lade den „shop“-Ordner meiner funktionierenden Oxid-Installation mit ftp aus dem Netz herunter (in FileZilla im Transfermodus „automatik“) und kopiere ihn ins Verzeichnis „htdocs“ im XAMPP-Ordner.
Die dazugehörige Datenbank wird im Netz exportiert, in XAMPP importiert. Das ist jeweils ganz einfach, in phpmyadmin wird die Datenbank ausgewählt (bei mir heißt sie „oxid_eshop“) und als zip-Archiv ex- und im XAMPP-phpmyadmin wieder importiert.
Dann muss eigentlich nur noch die config.inc.php-Datei im Shop-Verzeichnis von XAMPP modifiziert werden. Geändert werden müssen die rot markierten Werte:
$this->sShopURL = ‘http://localhost/shop’;
$this->sSSLShopURL = null;
$this->sAdminSSLURL = null;
$this->sShopDir = ‘C:/xampp/htdocs/shop’;
$this->sCompileDir = ‘C:/xampp/htdocs/shop/tmp’;

Wichtig ist, dass ein gültiger Datenbankbenutzer mit Passwort eingetragen wird. Es genügt nicht, den SuperUser (‘root’) einzutragen. Um einen neuen Benutzer einzutragen, wird in phpmyadmin die Datenbank ausgewählt und der Reiter „Rechte“ aufgerufen.
Dort unter „Aktion“ in der ganz rechten Spalte die Rechte eines existierenden Users ändern und auf der folgenden Seite unter „Anmelde-Information ändern / Benutzer kopieren“ einen neuen Benutzer erstellen (Als Benutzername mit „Textfeld verwenden“ neuen Namen eintragen, neues Passwort eintragen und bestätigen, dann „Erstelle einen neuen Benutzer mit identischen Rechten und … behalte den alten bei“ --> ok.
Übrigens: Es bringt nichts, den Ordner „Setup“ nochmal ins „Shop“-Verzeichnis zu schreiben und das Setup nochmal aufzurufen – Das will die existierende Datenbank überschreiben.

viele Wege führen nach Rom :smiley:

aber klar geht das nicht ohne Daten in der Datenbank!

Hab mich nun auchmal daran versucht meinen Shop local zu installieren. Habe auch die Punkte wie von Würfel beschrieben durchgeführt. Es scheitert daran das

“Zend Optimizer not installed” fehlt…

ist das normal?

Viele Grüße
Jürgen

Hi Jürgen!

Ja, den musst Du installieren, manche Module etc. benötigen den decoder von Zend.

-> http://www.zend.com/de/products/guard/downloads

Der reine CE-Shop ohne irgendwas benötigt den aber nicht, da solltest Du dann die Zend-Prüfung im Install-Script ausknipsen.

Hallo Ray,

ich habe den auf meinem Rechner XAMPP installiert und den ZEND 3.3.0

allerdings ich bekomme diese Meldung immer noch. Bei webSever habe ich Other angegeben.

Jürgen

PS.: Hoffe dir geht es gut Common Days waren wirklich sehr interessant. Unseren Shop www.shop-schoessmetall.de haben wir nun auch online.

sorry - mit ZEND auf Xampp habe ich mich noch nicht auseinandergesetzt, kann also nur raten…

Ggf. musst Du via php.ini den Zend noch aktivieren (so wie die armen Leute bei Starto oder 1+1), gibt diverse Infos dazu im Forum.

[ot]
nächstes Jahr auf ein Neues?
[/ot]

Soweit ich weiß läuft Zend Guard überhaupt nicht auf Xampp mit PHP 5.3, weil es von Zend Guard keine Version für thread safe gibt. Einzige Möglichkeit ist eine ältere Xampp-Version mit PHP 5.2 und Zend Optimizer zu nehmen.

[QUOTE=wuerfel;46130]Hurra! Es klappt!
Danke an Hebsacker und leofonic, eure Tipps werde ich garantiert auch nochmal brauchen, aber letztlich kam der Durchbruch anderswoher. Erstens hatte ich die gefüllte Datenbank im Netz gar nicht dort exportiert und in XAMPP wieder importiert. Und zweitens ist die Verbindung zwischen Oxid-Shop und Datenbank erst zustande gekommen, als ich einen neuen Benutzer für die Datenbank angelegt habe (diese Funktion ist in phpmyadmin gut versteckt). Mit dem Namen und Passwort des SuperUsers kam keine Verbindung zustande!

Hier die Anleitung für andere Anfänger:

Ich lade den „shop“-Ordner meiner funktionierenden Oxid-Installation mit ftp aus dem Netz herunter (in FileZilla im Transfermodus „automatik“) und kopiere ihn ins Verzeichnis „htdocs“ im XAMPP-Ordner.
Die dazugehörige Datenbank wird im Netz exportiert, in XAMPP importiert. Das ist jeweils ganz einfach, in phpmyadmin wird die Datenbank ausgewählt (bei mir heißt sie „oxid_eshop“) und als zip-Archiv ex- und im XAMPP-phpmyadmin wieder importiert.
Dann muss eigentlich nur noch die config.inc.php-Datei im Shop-Verzeichnis von XAMPP modifiziert werden. Geändert werden müssen die rot markierten Werte:
$this->sShopURL = ‘http://localhost/shop’;
$this->sSSLShopURL = null;
$this->sAdminSSLURL = null;
$this->sShopDir = ‘C:/xampp/htdocs/shop’;
$this->sCompileDir = ‘C:/xampp/htdocs/shop/tmp’;

Wichtig ist, dass ein gültiger Datenbankbenutzer mit Passwort eingetragen wird. Es genügt nicht, den SuperUser (‘root’) einzutragen. Um einen neuen Benutzer einzutragen, wird in phpmyadmin die Datenbank ausgewählt und der Reiter „Rechte“ aufgerufen.
Dort unter „Aktion“ in der ganz rechten Spalte die Rechte eines existierenden Users ändern und auf der folgenden Seite unter „Anmelde-Information ändern / Benutzer kopieren“ einen neuen Benutzer erstellen (Als Benutzername mit „Textfeld verwenden“ neuen Namen eintragen, neues Passwort eintragen und bestätigen, dann „Erstelle einen neuen Benutzer mit identischen Rechten und … behalte den alten bei“ --> ok.
Übrigens: Es bringt nichts, den Ordner „Setup“ nochmal ins „Shop“-Verzeichnis zu schreiben und das Setup nochmal aufzurufen – Das will die existierende Datenbank überschreiben.[/QUOTE]

Da ich weiterhin (seitdem die 4.5 raus ist) das Update nicht hinbekomme, wollte ich mal den Weg versuchen meinen derzeitigen Live-Shop lokal zu spiegeln und dort mal das Update auszuprobieren.

Ich habs exakt so gemacht wie hier beschrieben.
Wenn ich meinen Shop unter “localhost/shop” jetzt allerdings aufrufe, leitet er mich immer weiter auf den Live-Shop. Warum auch immer.

Wie gesagt … in der Config-Datei hab ich alle Änderungen wie oben beschrieben, vorgenommen, trotzdem werde ich auf den Live-Shop weitergeleitet. Dachte erst das liegt an der Rewrite-Base in der .htaccess und hab da n bisschen rumprobiert. Aber selbst als ich die .htaccess testweise mal gelöscht habe, gings immer noch gradewegs weiter in den Live-Shop.

Weiß jemand woran das noch liegen könnte?
Langsam werd ich wahnsinnig :frowning:

Wenn du den Admin aufrufen kannst, schau mal ob du unter Sprachen bei der Standardsprache unter “Basis URL” etwas eingegeben hast. Das Feld muss leer sein damit der Wert aus der config.inc benutzt wird.

Hast Du denn das /tmp - Verzeichnis mitkopiert?

Und greifen da ggf. die SEO-URLs? Schonmal versucht die lokal neu berechnen zu lassen?

Ja, in den Admin-Bereich komme ich. Da wird nichts weitergeleitet.
Das Fehld “Basis URL” in meiner Standardsprache ist aber leer.

[QUOTE=Hebsacker;68292]Hast Du denn das /tmp - Verzeichnis mitkopiert?
[/quote]
Ja, das habe ich mitkopiert, die Dateien im Ordner allerdings gelöscht.

Und greifen da ggf. die SEO-URLs? Schonmal versucht die lokal neu berechnen zu lassen?

Hab ich gemacht.
Ging trotzdem nicht.

Danach hab ichs mal mit nem anderen Browser versucht. Klappte!
Also bei meinem Standardbrowser mal Cookies usw. gelöscht … jetzt gehts! :rolleyes:

Vielen Dank Leute!