FOL9000

Magento 2-Index aktualiseren

von

Magento 2 macht einiges auch im Backend ganz anders als gewohnt. Zu den Neuerungen gehört, dass es keinen einfachen Button zur Aktualisierung der Indices mehr gibt. Mit einer weiteren Neuerung, dem Command-Line-Interface (CLI) ist das aber kein Problem. XAMPP-Nutzer müssen aber eine Kleinigkeit beachten.

Wer bei Magento 2 einen Index aktualisieren möchte, wir sich bei der Index-Anzeige wahrscheinlich in alter Gewohnheit nach dem entsprechenden Button umsehen — und nichts finden. Zur Index-Aktualisierung von Hand muss man in Magento 2 die Shell und das neue Command-Line-Interface benutzen.

Dies erscheint unnötig umständlich gegenüber der einfachen Button-Lösung der 1.x-Versionen. Aber mit einer korrekten cron-Konfiguration (die in Magento 2 zwingend ist) erledigt Magento das i.d.R. selbst.

Wer trotzdem den Index von Hand aktualisieren muss, kann dies einfach mit folgenden Kommandos erledigen. (Aber vorher weiter unten lesen, was zu beachten ist!)

Zum Ausführen der folgenden Kommandos des CLI wechselt man im Terminal ins Magento-Verzeichnis und dort ins Verzeichnis bin.

Das folgende Kommando aktualisiert alle Indices:

php magento indexer:reindex

Mit

php magento indexer:info

könnte man sich vorher noch eine Liste der Indices anzeigen lassen.

Möchte man nur einzelne Indices aktualisieren, lassen diese sich als Parameter übergeben:

php magento indexer:reindex index1,index2

Die Namen kann man der mit info ausgegebenen Liste entnehmen, sie sind mit Kommata von einander abzutrennen.

Für XAMPP-Nutzer tut sich hier aber (zumindest auf dem Mac) ein kleiner Fallstrick auf.

Der Mac kommt mit einer eigenen, von XAMPP unabhängigen php-Installation daher. Ruft man dort im Terminal einfach php auf, wir diese Installation genutzt und die ist vermutlich nicht korrekt konfiguriert!

Man muss also statt einfach php aufzurufen die php-Version von XAMPP nutzen, auf dem Mac z.B.:

/Applications/XAMPP/xamppfiles/bin/php

Nutzt man das neue Magento-CLI häufiger, wird das natürlich schnell lästig. Dann könnte man die PATH-Variable der Shell so anpassen, dass als erstes das XAMPP-php gefunden wird, für die bash z.B. so:

export PATH="/Applications/XAMPP/xamppfiles/bin":$PATH

Man könnte auch das bin/magento-Script in den Pfad legen. Dann könnte man sich den php-Aufruf vor dem magento-Kommando sparen. Sinnvoll ist dies allerdings nur, wenn man nur eine einzige Magento 2-Installation auf dem Rechner hat. Außerdem wird man im magento-Script den Pfad für den php-Aufruf in der ersten Zeile anpassen müssen.

Ich habe mehrere Magento 2-Shops auf meinem Arbeitsrechner und wechsele lieber vorher in das passende bin-Verzeichnis. Da kann ich mir dann wirklich sicher sein, wo ich gerade arbeite.

Kommentare sind geschlossen.