Oxid eShop 4.6 mit xampp lokal zur verfügung stellen

Hallo liebes Forum, liebe Mitglieder und Moderatoren,

ich bin seit einer geschlagenen Woche mit dem Versuch beschäftigt meinen Online Shop mit xampp lokal zu speichern.

Ich möchte den Shop updaten auf 4.9.5 und einige Anpassungen vornehmen aber ich bekomme den Shop nicht mit xampp zum laufen. :mad:

Nach ewigem lesen und probieren muss ich einfach um Hilfe bitten. Ich hoffe man verzeiht mir den mir schon peinlichen thread.

ok ich versuche mal mein bisheriges Vorgehen zu schildern:

windows 10
Oxid eShop CE 4.6
xampp version: 5.6.12
filezilla 3.14.0
sublime text 2

Ich habe mir die oxid eshop Version 4.6 geladen und installiert. Unter “localhost/demo” konnte ich den ohne demodaten installierten shop ansehen. Auch der admin Bereich war erreichbar.

Dann wollte ich natürlich meinen Online Shop lokal spiegel, mit dem Ziel Veränderungen offline testen zu können. Gerade für das in der Zukunft liegende Update auf 4.9.5 könnte dies sehr nützlich sein.

Als erstes habe ich MySqlDumper integriert und die Datenbank meines Shops lokal gespeichert (laut Anleitung auf der HP von MySqlDumper). Dann per FileZilla den Ordner “shop46” (darin liegen auf meinem Server die Shopdaten) lokal gespeichert und den Inhalt in das Verzeichnis “C:\Program Files (x86)\xampp\htdocs\demo” kopiert (.htaccess und config.inc.php habe ich nicht überschrieben und angepasst). mit phpmyadmin einen neuen Benutzer mit allen Rechten angelegt und eine neue utf8_general_ci Datenbank “demo” angelegt.

Nun wollte ich die Datenbank wieder für den lokalen Shop importieren. Da kam der erste Fehler:

“Fatal error: Maximum execution time of 300 seconds exceeded in C:\Program Files (x86)\xampp\phpMyAdmin\libraries\dbi\DBIMysqli.class.php on line 258”

Daraufhin habe ich die my.ini unter /xampp/mysql/bin/ sowie die php.ini unter xampp/php/ angepasst. Leider ohne Erfolg.

Und jetzt wird es für mich zu konfus.

Der lokale Shop ist unter localhost/demo erreichbar. Der Import der Datenbank scheint auch trotz des Fehlers erfolgreich gewesen zu sein. Oder nicht? Oder nur teilweise?

Sobald ich aber ein Produkt anklicke, werde ich zum Onlineshop auf:
https://online shop/index.php?force_sid=58ckjjsjiacv9vhksp4m30evq5&

weitergeleitet.

Kann mir das jemand erklären und mich auch meine Fehler hinweisen?

vielen Dank schon mal

Den Import der Datenbank solltest du am besten per cmd > mysql.exe durchführen, da dieser dann nicht zeitlich begrenzt ist.
Anleitung: http://stackoverflow.com/a/6300857

Bzgl. der Weiterleitung musst du mal in deiner config.inc.php schauen, was in sShopURL eingetragen ist.
Bitte auch sicherstellen, dass in der .htaccess keine Weiterleitungen eingetragen sind.

Danach dann einmal das TMP-Verzeichnis leeren und ggf. Views neu über den Admin generieren.

Danke für deine Antwort Kai.

Der Import hat funktioniert, nur leider komm ich mit den Änderungen in der config.inc.php und .htaccess nicht zurecht. Wie erkenne ich dort eine Weiterleitung?

In case you want to add a .htpasswd authentification

you’ll have to add the host of the shop as an allowed entity,

so that calls from the host skip the authentification

Example:

Order Deny,Allow

Deny from All

AuthType Basic

AuthName “Access not allowed”

AuthUserFile path_to_htpasswd_file/.htpasswd

Require valid-user

Allow from localhost

Satisfy Any

<IfModule mod_rewrite.c>
Options +FollowSymLinks
RewriteEngine On
RewriteBase /demo

RewriteCond %{REQUEST_METHOD} ^(TRACE|TRACK)
RewriteRule .* - [F]

RewriteCond %{REQUEST_URI} oxseo.php$
RewriteCond %{QUERY_STRING} mod_rewrite_module_is=off
RewriteRule oxseo.php$ oxseo.php?mod_rewrite_module_is=on [L]

RewriteCond %{REQUEST_URI} !(/admin/|/core/|/export/|/modules/|/out/|/setup/|/tmp/|/views/)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule !(.html|/|.jpg|.css|.pdf|.doc|.gif|.png|.js|.htc)$ %{REQUEST_URI}/ [R=301,L]

RewriteCond %{REQUEST_URI} !(/admin/|/core/|/export/|/modules/|/out/|/setup/|/tmp/|/views/)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (.html|/)$ oxseo.php

RewriteCond %{REQUEST_URI} (/out/pictures/)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (.jpe?g|.gif|.png)$ core/utils/getimg.php

</IfModule>

disabling log file access from outside

<FilesMatch “(EXCEPTION_LOG.txt|.log$|.tpl$|pkg.rev)”>
order allow,deny
deny from all
</FilesMatch>

Options -Indexes
DirectoryIndex index.php index.html

und

$this-&gt;dbHost = 'localhost'; // database host name
    $this-&gt;dbName = 'demo'; // database name
    $this-&gt;dbUser = '[B]user[/B]'; // database user name
    $this-&gt;dbPwd = '[B]password[/B]'; // database user password
    $this-&gt;dbType = 'mysql';
    $this-&gt;sShopURL = 'http://localhost/demo'; // eShop base url, required
    $this-&gt;sSSLShopURL  = null;            // eShop SSL url, optional
    $this-&gt;sAdminSSLURL = null;            // eShop Admin SSL url, optional
    $this-&gt;sShopDir = 'C:/Program Files (x86)/xampp/htdocs/demo';
    $this-&gt;sCompileDir = 'C:/Program Files (x86)/xampp/htdocs/demo/tmp';

Es scheint Probleme mit der SSL Verschlüsselung zu geben, sehe ich das richtig?

Freut mich, dass der Import geklappt hat.
Sowohl deine .htaccess, als auch die config.inc.php sieht richtig aus.
Mich wundert es jedoch, dass deine Produkte auf https verlinkt sind, obwohl die SSL-URLs in der config.inc.php nicht gefüllt sind.

Wirst du wirklich exakt auf “https://online shop/index.php?force_sid=58ckjjsjiacv9vhksp4m30evq5&” weitergeleitet?

Genau das wundert mich auch sehr!
Wenn ich “localhost/demo” anwähle, funktioniert das auch.
Wähle ich dann irgendeinen link aus, werde ich weitergeleitet auf:
https://www.onlineshop./index.php?force_sid=f5875k8bkk407nfn82b08vvem5&

Vielleicht sollte ich das Ganze noch einmal komplett neu aufsetzten.

Ich habe nun noch einmal Unmengen gelesen und probiert aber irgendwie will es nicht klappen.

Erst einmal hat der Datenbank Import wie folgt super funktioniert.

http://www.die-blog.de/737/grosse-dateiendatenbanken-in-phpmyadmin-importieren/

Des Weiteren muss man folgende Dateien anpassen:

unter “…xampp\phpMyAdmin\libraries” die config.default.php

Zeile: 699

alt --> $cfg[‘ExecTimeLimit’] = 300;
neu --> $cfg[‘ExecTimeLimit’] = 0;

dann die php.ini unter “…xampp\php” anpassen

max_execution_time= legt fest, wie lang eine Anfrage maximal bearbeitet werden darf (in Sekunden)
memory_limit= legt fest, wie viel Speicher einem Skript zur Verfügung gestellt wird
post_max_size= legt fest, bis zu welcher Größe HTTP POST Anfragen akzeptiert werden
upload_max_filesize= gibt an, bis zu welcher Dateigröße Uploads akzeptiert werden
max_allowed_packet= gibt an, bis zu welcher Größe MySQL Anfragen bearbeitet werden

habe übertrieben hohe Werte eingetragen. soweit so gut.

Der Shop ist über “localhost/shop” erreichbar. (Produkte aus der Datenbank sind auch zu sehen)

Das Backend über “localhost/shop/admin” ist ebenfalls erreichbar. Komischerweise nur mit den Login Daten des Online Shops. Warum kann ich mir nicht erklären.

Dann hab ich die tmp geleert und die view aktualisiert.

Wenn ich nun einen link unter localhost/shop anklicke werde ich auf den Online Shop
https://[B]ONLINESHOP[/B]/index.php?force_sid=huq5fp21j5e2blf1tsrf8cj6m3&

umgeleitet.

Ich weiß nicht warum.

Wo kann ich nach eventuellen Weiterleitungen suchen?

Danke!

Natürlich erstmal in config.inc und htaccess schauen. Wenn da alles passt, schauen ob wirklich alle Links der Seite auf den Onlineshop verweisen. Könnte ja sein dass jemand im Template Links hartcodiert hat. Wenn das auch nicht der Fall ist, stehen evtl. unter Grundeinstellungen/Sprachen noch sprachspezifische urls drin.

[QUOTE=trap;163977]
Das Backend über “localhost/shop/admin” ist ebenfalls erreichbar. Komischerweise nur mit den Login Daten des Online Shops. Warum kann ich mir nicht erklären.[/QUOTE]

wenn Du die DB importierst importierst Du natürlich auch die Benutzerdaten inkl. Passwörtern.

Bei Dir sitzt irgendwo der Wurm drin. Was genau schief lief kann man nur raten. Bevor Du jetzt noch Stunden lang damit rum machst lösch alles, mach am besten einen frischen DB-Export mit mysqldumper, da spielt es keine Rolle wie groß die DB ist und zieh den Shop nach dieser Anleitung http://wiki.oxidforge.org/Tutorials/Einen_Oxid-Shop_umziehen_lassen um. Dann sollte das in 15 Minuten laufen.

Worauf Du noch achten musst, die PHP-Version der Module muss passen und wenn Du verschlüsselte Module hast benötigst Du noch Zend. Bei den alten XAMPP-Stacks war das immer dabei, bin mir aber nicht sicher wie das bei neuerten Versionen aussieht.

Du kannst auch mal den Browser-Cache leeren, vielleicht hängt da noch was drin.

Erst einmal dickes Danke an Kai, MeisterYoda und leofonic!

Lokal läuft jetzt mit xampp alles so wie es soll. 1:1 Kopie verhält sich genau so wie der live Shop.

Beim genauen Betrachten der templates bekam ich jedoch das große gruseln. Updaten wird nur mit sehr viel debuggen möglich sein, wenn überhaupt.

Ich habe nun einen komplett frischen und sauberen eshop 4.6.0 ce auf eine subdomain installieren. Datenbank importiert und folgenden Fehler erhalten:

Fehler
SQL-Befehl:

CREATE TABLE oxvouchers (

OXDATEUSED DATE DEFAULT NULL ,
OXORDERID CHAR( 32 ) CHARACTER SET latin1 COLLATE latin1_general_ci NOT NULL DEFAULT ‘’,
OXUSERID CHAR( 32 ) CHARACTER SET latin1 COLLATE latin1_general_ci NOT NULL DEFAULT ‘’,
OXRESERVED INT( 11 ) NOT NULL DEFAULT ‘0’,
OXVOUCHERNR VARCHAR( 255 ) NOT NULL DEFAULT ‘’,
OXVOUCHERSERIEID CHAR( 32 ) CHARACTER SET latin1 COLLATE latin1_general_ci NOT NULL DEFAULT ‘’,
OXDISCOUNT FLOAT( 9, 2 ) DEFAULT NULL ,
OXID CHAR( 32 ) CHARACTER SET latin1 COLLATE latin1_general_ci NOT NULL DEFAULT ‘’,
PRIMARY KEY ( OXID ) ,
KEY OXVOUCHERSERIEID ( OXVOUCHERSERIEID ) ,
KEY OXORDERID ( OXORDERID ) ,
KEY OXUSERID ( OXUSERID ) ,
KEY OXVOUCHERNR ( OXVOUCHERNR )
) ENGINE = INNODB DEFAULT CHARSET = utf8;

MySQL meldet: Dokumentation

#1050 - Table ‘oxvouchers’ already exists

Die Datenbank war jedoch leer!

Gibt es eine Möglichkeit, in einen nagelneuen Shop (gleiche Version) nur die wichtigen Daten zu importieren? Oder kann ich die Daten (es sind noch nicht so viele Produkte drin) auch einfach neu anlegen? Was muss ich für das google ranking (sprich seo und metadaten) beachten?

Es wäre mir natürlich am liebsten, wenn ich einfach einen neuen 4.9.5 shop auf die subdomain installiere und darin komplett neu anfangen kann mit Produkte anlegen etc.

Macht das Sinn? Oder ist debuggen schlauer?
Kann ich die Original tpl einfach wieder über die bearbeiteten schreiben?

DANKE!
trap

[QUOTE=trap;164073]
Beim genauen Betrachten der templates bekam ich jedoch das große gruseln. Updaten wird nur mit sehr viel debuggen möglich sein, wenn überhaupt.[/QUOTE]

Lass mich raten, Du hast kein Child-Theme, sondern ein geändertes Azure?

Um das auf den aktuellen Stand zu heben würde ich an Deiner Stelle einen frischen, aktuellen Shop mit Demo-Daten installieren. Dann würde ich ein Child-Theme erstellen und dort das gewünschte Layout aufsetzen. Wenn das läuft würde ich den Live-Shop nach Anleitung Schritt für Schritt updaten und anschliessend das Child-Theme einspielen.

[QUOTE=MeisterYoda;164076]Lass mich raten, Du hast kein Child-Theme, sondern ein geändertes Azure?[/QUOTE]

damit has du vollkommen recht… leider
Es wurde so an fast allen Ecken und Enden was umgebastelt.
Das meiste davon erklärt sich mir nicht. :confused:

Was ich jetzt gern machen würde ist folgendes:

Die aktuelle Version 4.9.5 CE auf eine andere Domain installieren.
Ich werde die Kategorien, Produkte, Versandarten… alles neu anlegen.
Dann noch Theme anpassen und fertig.
Dann den neuen sauberen Shop wieder auf die alte Domain umziehen.

Gehen mir dabei wichtige Daten verloren? (Bestellhistorie und Kundendaten sowie die komplette Kundenabwicklung werden außerhalb vom Shop verwaltet)
Wie bewertet Google das Ganze?
Müssen für Google unbedingt bestimmte Dateien vom alten Shop erhalten bleiben?

Vielen Dank!

An den URLs wird sich ja am Ende nichts massgebliches ändern, oder?

Von daher kannst Du das so machen wie Du das geplant hast. Google wird sich daran nicht stören.

Was allerdings die Sache noch etwas verkomplizieren könnte. Wenn ins Theme Funktionalität einprogrammiert wurde, die eigentlich in Module gehört. Das würde ich dann auch erst aufräumen, sonst hast Du beim nächsten Update auch wieder Theater.

Du kannst das Theme auch mit den Demodaten machen. Wenn Du den Live-Shop dann updaten willst mach das nur nach Anleitung und stör dich nicht dran, wenn dann dein altes Theme abschmiert. Die update-App bringt deine DB dann ohne Datenverlust auf den neusten Stand und am Ende kannst Du Dein neues Theme einspielen und aktivieren.

Wenn du den Shop neu installierst und keine Daten übernimmst gehen natürlich alle Daten verloren, die wichtigen genauso wie die unwichtigen. Also wenn der Shop jetzt nicht total anders werden soll, warum sollte man dann alles neu machen? Das Update ist jetzt auch nicht so schwierig und du hast danach genauso einen “sauberen” Shop wie bei einer Neuinstallation.

MySQL meldet: Dokumentation
#1050 - Table ‘oxvouchers’ already exists
Die Datenbank war jedoch leer!

Also entweder war die DB nicht leer oder du hast oxvouchers 2x importiert.

[QUOTE=MeisterYoda;164099]
Was allerdings die Sache noch etwas verkomplizieren könnte. Wenn ins Theme Funktionalität einprogrammiert wurde, die eigentlich in Module gehört. Das würde ich dann auch erst aufräumen, sonst hast Du beim nächsten Update auch wieder Theater.[/QUOTE]
Theme und Module aus 4.6 können sowieso nicht in 4.9 verwendet werden. Also kann man auch gleich alle Module rauswerfen, das Theme auf default bringen und erst dann updaten.

nochmals ein dickes Danke an MeisterYoda und lefonic für eure kompetente Unterstützung. Der neue Shop 4.9.5 läuft ohne Probleme. Wir haben uns dann noch für das RoxIVE Theme entschieden und sind damit sehr zufrieden.