Jump to content

[gelöst] 500 Server Error beim Abschluss des Kaufvorgangs


Recommended Posts

Hallo,

 

ich habe den Prestashop neu eingerichtet und es hat auch alles prima funktioniert, aber beim Test des Kaufvorgangs kommt am Ende immer der Fehler "500 Server Error".

 

Als Zahlungsart habe ich Vorkasse und Scheck gewählt. Bei beiden Arten kommt der gleiche Fehler. Und zwar im Schritt 05 "Zahlungsart", wenn nach Auswahl der gewünschten Zahlungsart eine neue Seite mit Erläuterung zur Zahlungsart erscheint und auf den "Kaufen"-Button geklickt wird.

 

Was kann ich machen um den Fehler zu beheben?

 

Gruß

Andreas

Link to comment
Share on other sites

Hallo Bomberg,

 

Error 500 ist ein allgemeiner Server-Fehler, du solltest "error reporting" einschalten um "vernünftige" Fehlermeldungen zu bekommen:

 

Über FTP die Datei

config/defines.inc.php

Quote

Quote

/* Debug only */
define('_PS_MODE_DEV_', false);

ändern in:

Quote

Quote

/* Debug only */
define('_PS_MODE_DEV_', true);

Es sollten jetzt Fehlermeldungen erscheinen, die hoffentlich Klarheit bringen.

 

Grüsse

Whiley

Link to comment
Share on other sites

Hallo Whiley,

 

mit dem Debugging erhalte ich folgende Meldung:

 

Warning: tempnam() [function.tempnam]: open_basedir restriction in effect. File(/tmp) is not within the allowed path(s): (/home/www/web1) in /srv/www/htdocs/web1/html/classes/PrestaShopAutoload.php on line 151

[PrestaShopException]

Can't load Order status
at line 34 in file override/classes/PaymentModule.php

28. 		if (Configuration::get('PS_TAX_ADDRESS_TYPE') == 'id_address_delivery')29. 			$context_country = $this->context->country;30. 31. 		$order_status = new OrderState((int)$id_order_state, (int)$this->context->language->id);32. 		if (!Validate::isLoadedObject($order_status))33. 			throw new PrestaShopException('Can\'t load Order status');34. 35. 		if (!$this->active)36. 			die(Tools::displayError());37. 		// Does order already exists ?38. 		if (Validate::isLoadedObject($this->context->cart) && $this->context->cart->OrderExists() == false)

 

Hilft das bei der Suche nach dem Fehler weiter?

 

Gruß

Bomberg

Link to comment
Share on other sites

 

Hilft das bei der Suche nach dem Fehler weiter?

naja. sieht nach einem "Server-Fehler" aus.

Falls du root-Rechte hast, schau dir mal die http.conf an und suche den Eintag von open_basedir und setze ihn auf none.

(also php_admin_value open_basedir none)

 

Grüsse

Whiley

Link to comment
Share on other sites

Ich glaube nicht, Whiley.

 

Die entscheidende Meldung scheint mir die hier zu sein:

Warning: tempnam() [function.tempnam]: open_basedir restriction in effect. File(/tmp) is not within the allowed path(s):

Das deutet darauf hin, dass die class_index.php nicht oder unvollständig generiert wurde und daher die Pfade nicht korrekt gesetzt sind. Schuld daran ist wahrscheinlich ein Fehler beim Installieren, den die PrestaShopAutoLoad-Klasse verursacht. In diesem Fall reicht es, den folgenden Fix einzuspielen: https://github.com/PrestaShop/PrestaShop/blob/8288a6fffa0eb7a42b280298f798ff9292dd7be3/classes/PrestaShopAutoload.php

 

Dieser ersetzt in Zeile 64 die Bezeichnung für das Root-Verzeichnis:

 

Statt $file = $this->root_dir.PrestaShopAutoload::INDEX_FILE;

+ $file = _PS_ROOT_DIR_.PrestaShopAutoload::INDEX_FILE;

 

Beim Neustart wird die fehlende Datei dann generiert.

 

Gruß

eleazar

Edited by eleazar (see edit history)
Link to comment
Share on other sites

Hallo eleazar,

 

verstehe ich unter "Fix einspielen" richtig, dass ich im Verzeichnis "classes" die vorhandene PrestaShopAutoload.php durch die verlinkte Version ersetzen soll? Oder wie funktioniert das?

 

Wie erzeuge ich dann einen Neustart? Muss dazu mein Provider den Server rebooten?

 

 

Falls du root-Rechte hast, schau dir mal die http.conf an und suche den Eintag von open_basedir und setze ihn auf none.

(also php_admin_value open_basedir none)

 

In den Verzeichnissen, zu denen ich Zugriff habe, finde ich keine http.conf.

 

Ich bin hier absoluter Neuling, daher entschuldigt bitte die vielen (vielleicht zu einfachen) Fragen.

 

Gruß

bomberg

Link to comment
Share on other sites

Hallo Bomberg,

 

 

verstehe ich unter "Fix einspielen" richtig, dass ich im Verzeichnis "classes" die vorhandene PrestaShopAutoload.php durch die verlinkte Version ersetzen soll? Oder wie funktioniert das?

 

Exakt! Und anschließend löscht du bitte - falls vorhanden - die Datei /cache/class_index.php.

 

 

Wie erzeuge ich dann einen Neustart? Muss dazu mein Provider den Server rebooten?

 

Deinen Shop schließen, ggf. Cache löschen und wiederaufrufen. :)

 

 

In den Verzeichnissen, zu denen ich Zugriff habe, finde ich keine http.conf.

 

Weil du aller Wahrscheinlichkeit nach auch keinen Dedicated Server (VPS) hast. Zur Info: Das ist deutlich teurer und bei Anfängern unüblich.

 

 

Ich bin hier absoluter Neuling, daher entschuldigt bitte die vielen (vielleicht zu einfachen) Fragen.

 

Besser "dumme Fragen" stellen als Dummheiten machen. Da brauchst du dich wirklich nicht zu entschuldigen, das ist völlig ok so.

 

Gruß

eleazar

Link to comment
Share on other sites

Hallo eleazar,

 

ich habe die Datei PrestaShopAutoload.php ersetzt und die Datei /cache/class_index.php gelöscht. Beim Aufruf der Shopseite kommt nun das gleiche Bild als wenn ich den o.a. Link direkt im Browser aufrufe.

 

Leider kann ich das Bild hier nicht einfügen.

 

Das war offenbar nicht der richtige Weg, oder hab ich was falsch gemacht?

Die hochgeladene PrestaShopAutoload.php ist auch viel größer als die Originaldatei.

 

Gruß

bomberg

Link to comment
Share on other sites

Hallo,

 

erstmal Danke allen, die mir hier geholfen haben. Um sicher zu gehen, dass bei der Installation nichts falsch gelaufen ist, werde ich noch einmal von vorne beginnen und den Shop neu installieren. Vielleicht geht's dann ja ohne Fehler ;)

 

Gruß

bomberg

Link to comment
Share on other sites

Hallo eleazar,

 

ich habe die Datei PrestaShopAutoload.php ersetzt und die Datei /cache/class_index.php gelöscht. Beim Aufruf der Shopseite kommt nun das gleiche Bild als wenn ich den o.a. Link direkt im Browser aufrufe.

 

Die hochgeladene PrestaShopAutoload.php ist auch viel größer als die Originaldatei.

 

Gruß

bomberg

 

Hallo Bomberg,

 

das deutet allerdings darauf hin, dass bei der Installation nicht alle Dateien vollständig übertragen worden sind. Was hier passiert ist, kann also auch an anderer Stelle der Fall sein. Eine komplette Neuinstalltion scheint mir da auch der richtig Weg zu sein.

Du solltest aber zuvor die aktuelle Version von Prestashop laden. Da wird alle paar Tage noch gebastelt.

 

Gruß

eleazar

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...