Magento is een van de populairste CMS voor e-commerce. Het kan zowel grote als kleine webwinkels aan, mits wat optimalisering. Dit artikel zal je helpen om jouw CMS voor te bereiden zodat het grote hoeveelheden verkeer aankan zonder aan snelheid in te boeten.
Het eerste deel van dit artikel zal je de standaard optimaliseringstechnieken tonen, die voor elke hosting geschikt zijn, zelfs wanneer je geen gebruik maakt van de caching opties.
Pas Nadat je de algemenen optimalisering afgerond hebt, kan je overgaan naar het tweede deel van het artikel. Daarin wordt getoond hoe jouw CMS kan profiteren van de Performance hosting tools.
Inhoudsopgave:
Algemene optimalisering
Dit artikel schetst de gebruikelijke optimalisaties die in Magento gedaan kunnen worden.
Sommige optimaliseringen zijn gratis, sommige zijn voorlopig niet te betalen, sommigen vereisen een upgrade.
Activering van APC
Stap 1: Activeer APC in het controlepaneel
APC is verkrijgbaar voor PHP 5.4 en lager
- Log in op het controlepaneel
- Ga naar Mijn Producten >> Web hosting details
- In het linkerpaneel ga je naar PHP instellingen
- Je bent nu in het Overzicht. Controleer de PHP versie.
- Zet APC op Aan.
- Wijzigingen in PHP vragen wat tijd. Om te controleren of jouw wijziging doorgevoerd werd, ga je naar het tabblad PHP. Kijk of je een onderdeel APC vindt. Als het daar is, heb je met succes APC geactiveerd.
Stap 2: Nu moet je ook de user cache configureren.
- Maak een SSH account aan in het hosting pakket.
- Voor het gemak, voeg SSH keys toe.
- Open een terminal of commandoprompt en leg de verbinding. Voeg deze lijnen toe aan het local.xml (/app/etc/local.xml) bestand onder de
<global>
tag:<cache> <backend>apc</backend> <prefix>someprefix</prefix> </cache>
Stap 3: Controleer of de caching werkt! Je hebt het apc.php bestand nodig. Hiervoor moet je de laatste installatie van APC downloaden.
- Upload apc.php naar jouw Magento map.
- Open het apc.php bestand in jouw browser. De pagina zal je informatie geven over de file caching.
- In jouw terminal of commandoprompt, open je nu jouw apc.php bestand en wijzig je de ADMINUSERNAME en ADMINPASSWORD. Opslaan.
- Open het apc.php bestand opnieuw in jouw browser. Ga naar het User Cache Entries tabblad.
- Login met de gebruikersnaam en het wachtwoord dat je zopas ingesteld hebt.
- Je ziet nu de user cache entries.
Gzip en verstrijken van de cache
Om nog meer te optimaliseren kan je Gzip gebruiken en het verstrijken van de cache. Kopieer en plak de volgende code onderaan het .htaccess bestand:
# BEGIN moddeflate # Insert output filter by type AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css text/javascript AddOutputFilterByType DEFLATE application/xml application/xhtml+xml application/rss+xml AddOutputFilterByType DEFLATE application/javascript application/x-javascript AddOutputFilterByType DEFLATE application/x-httpd-php AddOutputFilterByType DEFLATE application/cgi-php5 AddOutputFilterByType DEFLATE application/cgi-php53 AddOutputFilterByType DEFLATE application/cgi-php54 # Don't compress images, compressed files, docs nor movies SetEnvIfNoCase RequestURI .(?:gif|jpe?g|png)$ no-gzip dont-vary SetEnvIfNoCase RequestURI .(?:exe|t?gz|zip|bz2|sit|rar)$ no-gzip dont-vary SetEnvIfNoCase RequestURI .(?:pdf|doc)$ no-gzip dont-vary SetEnvIfNoCase RequestURI .(?:avi|mov|mp3|mp4|rm)$ no-gzip dont-vary # END moddeflate # BEGIN expires # Turn on Expires and set default to 0 ExpiresActive On ExpiresDefault A0 # Set up caching on media files for 1 year <filesMatch "\.(flv|ico|pdf|avi|mov|ppt|doc|mp3|wmv|wav)$"> ExpiresDefault A29030400 Header append Cache-Control "public" # Set up caching on media files for 1 week <filesMatch "\.(gif|jpg|jpeg|png|swf)$"> ExpiresDefault A604800 Header append Cache-Control "public" # Set up 2 Hour caching on commonly updated files <filesMatch "\.(xml|txt|html|js|css)$"> ExpiresDefault A7200 Header append Cache-Control "proxy-revalidate" # Force no caching for dynamic files <filesMatch "\.(php|cgi|pl|htm)$"> ExpiresActive Off Header set Cache-Control "private, no-cache, no-store, proxy-revalidate, no-transform" Header set Pragma "no-cache" # END expires
Activeren en instellen van indexer
Je moet eerst APC stoppen vooraleer je deze stap uitvoert; nadien moet je APC weer herstarten.
Reindexing of het herindexeren herschikt de indexen van de producten – van de indexen opgeslagen in verschillende tabellen, tot een enkele tabelstructuur. Database queries worden hierdoor eenvoudiger en sneller.
- Open een terminal of een commandoprompt en leg verbinding.
- Blader in jouw bestanden naar de Shell map in jouw installatie map: [Magentofolder]/shell
- Voer het volgende commando uit:
php indexer.php
- Je krijgt nu de opties te zien. Voer de volgende commando’s uit:
- Om alle indexen opnieuw te bouwen:
php indexer.php --reindexall
- De indexen worden opnieuw opgebouwd indien er relevante wijzigingen bewaard worden via de back-end:
php indexer.php --mode-realtime
- Om alle indexen opnieuw te bouwen:
Cron scheduling via cronjobs
Een cronjob plannen (schedule) voor cron.php om elke vijf min geopend te worden via het controlepaneel.
Cron.php is een standaard bestand dat gevonden wordt in de root map van de Magento webshop installatie. Het beheert de regelmatige automatische uitvoering van essentiële taken.
Activering flat catalogs
Wanneer Flat catalogs geactiveerd zijn, dan worden nieuwe cataloogtabellen met enkele rij gaandeweg aangemaakt die regelmatig geüpdatet kunnen worden via de Magento cron.
- Log in op jouw Magento back-end om flat catalogs te activeren
- Ga naar Systeem >> Configuratie.
- Kies het eerste onderwerp: Frontend.
- Nu moet je “Use flat catalog category” en “Use flat catalog” aanzetten. (Tip: wanneer dit in het lichtgrijs staat, moet je herindexeren via Systeem >> Index management/ Beheer)
Optimalisering van het .htaccess bestand
Kopieer en plak de volgende code onderaan jouw .htaccess bestand
#Leverage Browser Caching ## EXPIRES CACHING ## ExpiresActive On ExpiresByType image/jpg "access plus 1 year" ExpiresByType image/jpeg "access plus 1 year" ExpiresByType image/gif "access plus 1 year" ExpiresByType image/png "access plus 1 year" ExpiresByType text/css "access plus 1 month" ExpiresByType application/pdf "access plus 1 month" ExpiresByType text/x-javascript "access plus 1 month" ExpiresByType application/x-shockwave-flash "access plus 1 month" ExpiresByType image/x-icon "access plus 1 year" ExpiresDefault "access plus 2 days" ## EXPIRES CACHING ##