Magento multistore configureren
Wat is een multistore en hoe configureer je een multistore bij Hipex
Wat is een multistore?
Magento biedt je de mogelijkheid om een zogenoemde Multistore op te zetten. Dit houdt in dat je meerdere domeinen aan een losse Magento installatie kan koppelen. Ieder domein kan hierbij over een eigen āstoreviewā beschikken. Storeviews worden doorgaans gebruikt voor het representeren van een shop in meerdere talen, hoewel storeviews ook kunnen worden representatie van bijvoorbeeld meerdere verschillende shops binnen Ć©Ć©n installatie.
Hoe configureer ik een multistore bij Hipex?
Bij Hipex bieden we je de mogelijkheid om een multistore eenvoudig te configureren. Om ervoor te zorgen dat iedere domeinnaam op de juiste storeview landt kunnen we dit instellen aan de hand van Nginx configuraties. Je kan dit op twee manieren doen:
- Configureren op basis van het āmagento-storecodeā configuratie bestand
- Configureren op basis van de Nginx āmapā module Onderstaand lichten we de twee opties verder toe.
Storecodes in kaart brengen
Allereerst lichten we graag toe hoe je verschillende storeviews configureert middels de standaard geplaatste magento-storecode nginx configuratiebestanden. Hiervoor kan je de volgende stappen volgen:
Log in op de omgeving
Log via SSH in op de betreffende omgeving.
Navigeer naar de codebase
Om de aanwezige storecodes in kaart te brengen dienen we eerst naar de codebase van de magento installatie te navigeren. Doorgaans zal dit een van de standaard locaties zijn:
- Magento1:
/home/<gebruikersnaam>/domains/<domeinnaam>/public_html/
- Magento2:
/home/<gebruikersnaam>/domains/<domeinnaam>/application/
Aanwezige storecodes in kaart brengen
Om de aanwezige storecodes op te vragen kan gebruik worden gemaakt van Magerun. Voor de verschillende magento versies betreft het de volgende commandoās:
- Magento 1 :
magerun sys:store:list
- Magento 2 :
magerun2 sys:store:list
Uitvoeren van het magerun commando leidt tot een lijstje met storecodes:
+----+--------------+
| id | code |
+----+--------------+
| 1 | nl |
| 2 | de |
+----+--------------+
Configuratie aan de hand van magento-storecode bestand
Nu we de storecodes in kaart hebben gebracht kunnen we de gewenste store configureren. Navigeer hiervoor naar de volgende locatie:
/home/<gebruikersnaam>/domains/<domeinnaam>/var/etc/domeinnaam.de/
Op deze locatie zal je een bestand vinden met de naam āmagento-storecode.nginx.confā.
Open dit bestand vervolgens. We kunnen hier de gewenste storecode als waarde invullen bij
set $mage_run_code 'default';
Stel wij willen dat de domeinnaam de Duitse store laat zien, vervangen we ādefaultā door ādeā. Vervolgens verwijderen we wederom het hekje (#) voor de betreffende regels. De uiteindelijke configuratie zal er als volgt uit zien:
# Magento store code example configuration file
# To set domain run type to store and code to default uncomment following lines
set $mage_run_type 'store';
set $mage_run_code 'de';
Tot slot dienen we uiteraard weer de Nginx configuratie te herladen met het commando nginx-reload
.
Configuratie aan de hand van de map module
Naast de hierboven beschreven methode kunnen we ook de Nginx map module gebruiken voor het configureren van storecodes.
Navigeer hiervoor naar de volgende locatie:
/home/<gebruikersnaam>/domains/<domeinnaam>/var/etc/scope-http/
Op deze locatie kunnen we een bestand aanmaken met de naam āmap.nginx.confā. In dit bestand kunnen we de gewenste configuratie plaatsen. In ons voorbeeld gaan we zorgen dat ādomeinnaam.deā landt op de storeview met de storecode ādeā.
map $host$request_uri $mapped_mage_run_code {
domeinnaam.de de;
*.domeinnaam.de de;
}
De variabele '$mappedmagerun_code' wordt nu gevuld met de betreffende storecode.
We kennen vervolgens de gevulde variabele '$mappedmagerun_code' toe aan '$mageruncode, gezien deze variabele gebruikt wordt in Magento.
Hiervoor kunnen we de volgende regel aan het bestand /home/<gebruikersnaam>/domains/<domeinnaam>/var/etc/magento.nginx.conf
toevoegen:
set $mage_run_code $mapped_mage_run_code;
Na het toevoegen herladen we de Nginx configuratie met het commando nginx-reload
, nu zal domeinaam.de landen op de duitse storeview.