Archiv für die Kategorie ‘Magento | E-Commerce’
Jetzt Donnerstag: 1.Magento-Stammtisch in Münster
Hier nochmal eine kleine Erinnerung an den kommenden Magento-Stammtisch in Münster:
1. Magento-Stammtisch in Münster steht fest
Lange hat es gedauert, nun ist es endlich soweit: Der Termin für den ersten Magento-Stammtisch in Münster steht fest!
Weitere Infos unter: magento-stammtisch-muenster.de
Interesse an Magento-Stammtisch in Münster?
Liebe Münsteraner,
Ich finde es ist höchste Zeit für einen Magento-Stammtisch in Münster. In welcher Stadt sonst gibt es so schöne Kneipen?
Daher meine Frage:
Wer hätte Interesse an einem solchen Stammtisch und wer möchte vielleicht gemeinsam mit mir den ersten Magento-Stammtisch in Münster organisieren? Meldet euch!
Gruß
Christian
Magento-Schnellsuche: Suche nach Artikelnummer / SKU bleibt ohne Ergebnis
Bei einem unserer Kunden stießen wir kürzlich auf folgendes Problem: Trotz korrekter Konfiguration des SKU-Attributs bezüglich der Sichtbarkeit in der Schnellsuche wurden Artikel bei Eingabe der Artikelnummer über die Schnellsuche nicht gefunden. Diese lagen etwa in der Form “123 45 0″ vor. Zunächst vermuteten wir einen Bug in Magento. Nach zwei Stunden Code-Analyse stellte sich dann heraus, dass das Problem die MySQL-Konfiguration war:
Magento greift für die interne Suchfunktionalität auf die MySQL-Volltextsuche zurück. Per Default beträgt die minimale Wortlänge in der MySQL-Volltextsuche vier Zeichen. Leerzeichen gelten als Wortgrenze, sodass die SKUs unseres Kunden folglich in der MySQL-Default-Konfiguration unter den Tisch fallen.
Die minimale Suchwortlänge lässt sich manuell über die MySQL-Systemvariable “ft_min_word_len” anpassen. Der aktuelle Wert lässt sich per “mysql> SHOW VARIABLES;” ermitteln, sofern dieser von der Default-Einstellung abweicht. Dabei ist zu beachten, dass der Neuaufbau des (Volltextsuch)-Index der entsprechenden Tabelle (hier: catalogsearch_fulltext) manuell angestoßen werden muss.
Magento: Integrity constraint violation nach Update auf Magento 1.5.1.0
Magento-Updates sind doch immer wieder spannend…:
Dieses Mal hatten wir nach dem Update Probleme mit dem Neuaufbau des Index. Die Neuindexierung brach stets mit folgender Fehlermeldung ab: “There was a problem with reindexing process”.
Bei der genaueren Analyse stellte sich heraus, dass einige SQL-Constraints (Integritätsbedingungen) nicht erfüllt werden konnten: “Integrity constraint violation: 1452 Cannot add or update a child row: a foreign key constraint fails [...]“.
Bei der Überprüfung der Tabellendefinitionen stellte sich dann heraus, dass bei einigen Tabellen die Integritätsbedingungen nach dem Update schlicht fehlten respektive nicht gesetzt waren. Noch seltsamer ist die Tatsache, dass dies nur auf dem Produktivsystem auftrat, nicht aber auf dem Entwicklungssystem, auf dem wir das Update zuvor geprüft hatten.
Dass beim Update des Produktivsystems keine Fehlermeldungen ausgegeben wurden und auch die Log-Dateien auf keine Fehlfunktion während des Update-Vorgangs schließend lassen, hinterlässt viele offene Fragen.
Hätten wir den Fehler nicht auch manuell fixen können, wäre im nächsten Schritt das Magento “Database Repair Tool” das Mittel der Wahl gewesen. Vielleicht ja beim nächsten Update…-
[UPDATE] Wir konnten die Ursache des Problems inzwischen ausfindig machen: Wir hatten die Datenbank vor einiger Zeit einmalig mittels phpMyAdmin zurückgespielt. Dabei kam es zu einem Constraint-Error (weil phpMyAdmin die Tabellen der Reihe nach zurückspielt, ohne die Beziehungen/Abhängigkeiten der Tabellen zu beachten). In der Folge wurden zwar trotzdem alle Datensätze korrekt importiert, aber bei allen Tabellen, die nach dem Constraint-Error zurückgespielt wurden, fehlten jegliche Constraints.
Alternative PHP Cache (APC) richtig konfigurieren
Keine Frage: APC kann komplexe PHP-Anwendungen wie beispielsweise Magento erheblich beschleunigen. Allerdings ist eine saubere APC-Konfiguration sowie eine individuelle Anpassung an das konkrete Projekt eine zwingende Voraussetzung.
Im Folgenden haben wir daher die wichtigsten Parameter sowie unsere Konfigurationsempfehlungen für APC zusammengefasst:
apc.shm_size: Dieser Parameter regelt, wieviel Arbeitsspeicher für APC maximal vom System zur Verfügung gestellt werden soll. Unseren Erfahrungen nach sind 128 MByte ein guter Startwert für übliche Magento-Installationen. Allerdings sollte dieser Wert unbedingt mittels des “apc.php”-Skript, das mit dem Quellcodepaket von APC mitgeliefert wird, überprüft werden.
apc.ttl / apc.user_ttl: Diese beiden Parameter regeln das Verhalten von APC für den Fall, dass das APC-Speicherlimit erreicht wird. Standardmäßig ist dieser Wert auf Null gesetzt, was bedeutet, dass der komplette Cache beim Erreichen des Speicherlimits geleert wird. Sinnvoller ist es allerdings, nur veraltete Cache-Einträge zu löschen. Eine Voreinstellung von “3600″ hat sich in der Praxis als tauglich erwiesen. Beim Erreichen des Speicherlimits werden so alle Einträge gelöscht, die älter als eine Stunde sind.
apc.stat: Dieser Parameter regelt, ob APC vor jedem Cache-Zugriff prüft, ob sich die jeweilige Datei geändert hat. In der Praxis (und in Hinblick auf die Performance) hat es sich als optimal erwiesen, diesen Parameter auf Produktivsystemen auf “0″ zu setzen.




