Magento 2 Troubleshooten

Met alle functies en mogelijkheden van Magento komt het wel eens voor dat een plugin, commando of iets dergelijks niet helemaal werkt zoals verwacht. Of dat er een foutmelding verschijnt bij een actie die kort geleden nog probleemloos uitgevoerd kon worden.

In veel gevallen lijken de problemen onverklaarbaar, maar gelukkig legt Magento standaard een aantal van deze foutmeldingen vast die meer duidelijkheid bieden over deze problemen.

Waar je de informatie kan vinden is afhankelijk van het onderdeel van de shop waar het probleem ontstaat. De verschillende locaties om meer informatie te vinden over de issues zijn als volgt:

  • public_html/error_log: als er iets mis gaat tussen Magento en de onderliggende server, wordt dat hier weggeschreven. Dit kan bijvoorbeeld een probleem in de PHP- of MySQL-configuratie zijn.
  • public_html/var/log/system.log: deze log wordt gebruikt om gebeurtenissen binnen Magento vast te leggen. Vaak informatief, maar ook problemen worden hier vastgelegd.
  • public_html/var/log/exception.log: deze log wordt gebruikt om de zogenaamde exceptions (abnormale gebeurtenissen) vast te leggen. Vaak zijn dit grote problemen waarbij onderdelen van Magento niet meer reageren / functioneren.
  • public_html/var/report: Magento schrijft automatisch rapportages naar deze map weg, op het moment dat er problemen optreden.
  • De browser console: de console, onderdeel van de ontwikkellaars tools in de browser kunnen ook worden gebruikt om problemen in jouw webwinkel te traceren, zoals afbeeldingen of scripts die niet geladen worden.

De bovenstaande bestanden zijn via FTP te bekijken. Soms is het echter makkelijker om deze bestanden via SSH te bekijken omdat deze bestanden soms enkele honderden megabytes of enkele gigabytes groot worden.

Inloggen op SSH kan op drie manieren. Voor alle drie de manieren hebben wij een handleiding geschreven: SSH verbinden met Windows, SSH verbinden met Mac OS X of SSH verbinden met Linux.

Onderstaand hebben we nog een aantal commando’s opgesomd die we nodig gaan hebben:

  • cd : om de actieve map te wijzigen.
  • cat : toont de volledige inhoud van het opgegeven bestand op het scherm.
  • tail -100 : toont de laatste 100 regels van een bestand op het scherm. Het getal kan gewijzigd worden naar het gewenste aantal regels.
  • tail -f : toont de laatste 10 regels + alle regels die worden toegevoegd op het scherm.

Voorbeelden van problemen die op kunnen treden

Om je een idee te geven van de problemen die kunnen optreden, hebben we hieronder een aantal voorbeelden van problemen die kunnen optreden en hoe je de oorzaak kan achterhalen, opgesomd.

Let op: dit zijn voorbeelden. De oorzaak is per definitie niet altijd gelijk aan de problemen die bij jouw shop kunnen spelen.

1. Magento specifieke melding

Allereerst gaan we kijken naar de minder Magento 2-specifieke meldingen, zoals de 503 error en 500 error:

Deze worden vaak veroorzaakt door een conflict in de configuratie van de server en Magento, denk bijvoorbeeld aan verkeerde rechten op bestand of mappen, een probleem in de PHP-configuratie of incorrecte database-gegevens.

Informatie over de exacte oorzaak is vaak terug te vinden in de public_html/error_log. Mocht dit niet het geval zijn, dan kan het zijn dat er in de map van het script een apart bestand is aangemaakt. Met het eerder genoemde tail-commando’s kan je deze logs bekijken om te zien welke fout zich exact voordoet. Met onderstaand commando kun je bijvoorbeeld de laatste 50 regels bekijken:

cd public_html
tail -50 error_log

2. There has been an error processing your request

Soms kan het voorkomen dat je een foutmelding krijgt, in het standaard-thema van Magento, met de volgende tekst:

Het ‘error log record number’ is iedere keer anders, en staat voor een report. Het report kan je terugvinden in de map public_html/var/reports, en kan je openen met cat:

cd public_html/var/report
cat b387ce2beb4f4d423e5dff4f098fc99cee7b858252b44453c01e04fed22d0739

Daar staat exact omgeschreven wat er mis gaat. Dit ziet er als volgt uit:

Het hele bestand is 14.000 regels lang, maar in de eerste paar regels geeft Magento aan wat de fout is gegaan. Er wordt door de SessionHandler van Magento geprobeerd om de map /home/fbmage2/public_html/var/sessions te openen, maar dit lukt niet. Door te proberen de inhoud van de map te bekijken, zien we dat de map niet bestaat: is/home//public_html/var/sessions

Het probleem van dit voorbeeld is op te lossen door in de env.php het pad te corrigeren, de map aan te maken of de rechten goed te zetten.

3. An error had happened during application run

Een andere, vrij onduidelijke melding die je kan krijgen is als volgt:

An error has happened during application run. See exception log for details.

Dit betekent dat er een probleem is opgeschreven, maar dat de details uit veiligheidsoverwegingen zijn weggeschreven naar het bestand var/log/exception.log. Dit log kan vaak erg groot zijn, maar als het goed is hebben we aan de laatste 50 regels genoeg.

1. Log via de eerder genoemde handleidingen in op SSH.

2. Voer vervolgens het volgende commando uit:

cd public_html
tail -50 var/log/exception.log

De laatste 50 regels verschijnen op je scherm. Deze verschillen per probleem, maar geven vaak wel een duidelijk beeld van de mogelijke oorzaak:

In dit voorbeeld zien we dat er een probleem is met de rechten van de database. Na verder onderzoek is gebleken dat er een fout was gemaakt bij het invullen van de database gegevens, welke hersteld zijn.

4. Service Temporarily Unavailable

Vaak zien we onderstaande foutmelding verschijnen nadat er een update of andere werkzaamheden zijn uitgevoerd die niet helemaal goed zijn gegaan:

503 Service Temporarily Unavailable

Na het uitvoeren van werkzaamheden aan de webshop wil Magento in uiterst specifieke gevallen wel eens in de maintenance mode blijven hangen. Dit is terug te vinden in het bestand var/log/system.log. Hiervoor kun je onderstaand commando gebruiken:

cd ~/public_html/
tail -f var/log/system.log

Zoals het log in de afbeelding aangeeft is Magento in de maintenance mode blijven hangen. Dit is op te lossen met het volgende commando:

php bin/magento maintenance:disable

Het probleem moet na het uitvoeren van het commando zijn opgelost.

5. Trage Magento 2 frontend en backend

Naast de Magento 2-foutmeldingen, zijn er nog een aantal andere problemen die voor kunnen komen. Zo kan het bijvoorbeeld zijn dat Magento erg traag is op zowel front- als back-end, en commando’s via SSH worden afgebroken.

Hiervoor zijn meerdere mogelijke oorzaken, zo kan bijvoorbeeld de cache uitstaan. Dit is vrij makkelijk te controleren met het commando:

cd ~/public_html
php bin/magento cache:status

Magento cache

Als hier een 0 staat, staat de cache inderdaad uit. De cache kan je weer inschakelen met het volgende commando:

php bin/magento cache:enable

Een andere reden kan zijn dat Magento nog in de development-mode draait. Je kunt met onderstaand commando controleren of Magento in development-mode draait:

php bin/magento deploy:mode:show

Wanneer je shop live draait, dan kun je het beste de website in producten-mode hebben draaien. Met het volgende commando kun je de production-mode voor je webshop activeren:

php bin/magento deploy:mode:set production

Overleg dit wel even met je ontwikkelaar, dit heeft namelijk impact op de werking van je webshop! Zoek je nog een Magento 2 ontwikkelaar? Daar kunnen wij je bij helpen.

 6. De browser console

Het is eerder al benoemd: naast de bestanden op de server kun je ook de functies van jouw browser gebruiken op bepaalde problemen van Magento 2 te troubleshooten. Hierbij kan je denken aan afbeeldingen, scripts of nadere bestanden die niet getoond worden op de website.

Hoe je het console opent, verschilt per browser. Meestal werkt het door op de rechtermuisknop te klikken, en vervolgens op inspecteren.

Vervolgens kun je bovenaan het nieuwe geopende deelvenster op het tabblad console klikken.

Als alternatief kan je de volgende knoppencombinaties gebruiken:

Chrome: Ctrl+Shift+J
Chrome alternatief: Druk op F15 om de developer tools te openen. En klik vervolgens op Show console.

Firefox: Ctrl+Shirt+K
Firefox op Mac: Command+Shift+K

Safari: Ctrl+Alt+I
Safari op Mac: Commando+Alt+I

Qua functionaliteit werken de browsers hetzelfde.

Stel je hebt een aantal afbeeldingen die niet laden, dan kan dit er als volgt uitzien:

Ongeladen afbeelding

In de browser-console toont zich dit als een foutmelding:

Failed to load resource

In dit geval kan de afbeelding niet gevonden worden. Wanneer we dit in SSH bekijken zien we dat de map met media verdwenen is waardoor de inhoud niet meer gevonden / getoond kan worden.

Magento public html

Andere foutmeldingen die je hier kan aantreffen zijn bijvoorbeeld een 503 of 500-melding. Dit kan betekenen dat een externe server over een probleem beschikt. Ook kan er een 401 (unauthorized) melding getoond worden, welke veroorzaakt kan worden door problemen met de sessie (een probleem met de cookies, een verlopen sessie), of een 403 (toegang geweigerd) voorkomen (door bijvoorbeeld een probleem met de rechten of een .htaccess-bestand).

Browser 403 error

We hebben zojuist de meest voorkomende en onverklaarbare Magento 2-foutmeldingen doorgenomen. Echter zijn er nog tal van andere problemen die je tegen kunt komen tijdens het ontwikkelen van je webshop. Mits je zelf niet de kennis in huis hebt om de problemen van je Magento 2 shop te troubleshooten, dan adviseren we altijd om een ontwikkelaar te raadplegen.

Zoek je een Magento 2 ontwikkelaar?

Ben je op zoek naar een ontwikkelaar? We beschikken over een partnernetwerk die met zorg is geselecteerd. Gebruik onze partner locator om een ontwikkelaar bij jou in de buurt te vinden. Zo kun je bijvoorbeeld filteren op afstand, provincie en specialisme zodat je snel een partij vindt die aansluit bij jouw wensen.

Contact met ons opnemen

Wil je meer weten over Magento, wat Magento hosting kost en/of wat het voor jouw business kan betekenen? Onze Magento experts kunnen je persoonlijk adviseren over de juiste oplossing voor jouw situatie. Of bekijk direct onze Magento hosting pakketten.

in Magento 2
Was dit artikel behulpzaam?