cancel
Showing results for 
Search instead for 
Did you mean: 

No funciona magento 2 multitienda con servidor nginx

No funciona magento 2 multitienda con servidor nginx

Hola a todos,

Por favor, Necesito ayuda.  Ya no se que hacer más y no tengo mucha experiencia en nginx y magento 2. He mirado muchos post que están en varios sitios de internet, los he seguido y el resultado es erróneo. No se que hago mal o que no hago (por cierto esto lo he puesto e ingles pero me parece a mi que no saben no contestan).

Os explico:

Hasta hace pocos días tenía un multitiendas en magento con servidor apache que funcionaba bien. He cambiado el servidor a nginx por seguridad y velocidad.

He instalado dos dominios sobre un mismo directorio.

Probé dos formas:

1ª forma

 /etc/nginx/nginx.conf:

map $http_host $MAGE_RUN_CODE {
productospeluqueria.es productospeluqueriaes;
quafurg.com base;

}

En cada dominio pongo lo siguiente:

servidor {

....

set $MAGE_MODE developer;
set $MAGE_RUN_TYPE website;
include /usr/share/nginx/html/magento/nginx.conf.sample;
}

En /usr/share/nginx/html/magento/nginx.conf.sample:

location ~ ^/(index|get|static|errors/report|errors/404|errors/503|health_check)\.php$ {

...

fastcgi_param MAGE_RUN_TYPE sitio web;
fastcgi_param MAGE_RUN_CODE $MAGE_RUN_CODE;
fastcgi_index index.php;
include fastcgi_params;

}

NO ha funcionado.

Ahora he puesto Ahora he puesto en cada dominio:

1 doman:

map $http_host $MAGE_RUN_CODE {
productospeluqueria.es productospeluqueriaes;
}
servidor {
nombre_servidor productospeluqueria.es www.productospeluqueria.es;
# Cargar los archivos de configuración para el bloque del servidor por defecto.
if ($host = productospeluqueria.es) {
return 301 https://www.$host$request_uri;
}
include /etc/nginx/default.d/*.conf;
set $MAGE_ROOT /usr/share/nginx/html/magento/;
set $MAGE_MODE developer;
set $MAGE_RUN_TYPE website;
include /usr/share/nginx/html/magento/nginx.conf.sample;

...

}

2 dominio

map $http_host $MAGE_RUN_CODE {
base quafurg.com;
}
servidor {
nombre_servidor quafurg.com www.quafurg.com;
# Cargar los archivos de configuración para el bloque del servidor por defecto.
if ($host = quafurg.com) {
return 301 https://www.$host$request_uri;
}
include /etc/nginx/default.d/*.conf;
set $MAGE_ROOT /usr/share/nginx/html/magento/;
set $MAGE_MODE developer;
set $MAGE_RUN_TYPE website;
include /usr/share/nginx/html/magento/nginx.conf.sample;

 

Tampoco funciona.

 

Puede alguien ayudarme. Por favor.

Si alguien quiere ver el error en https://www.productospeluqueria.es lo puede ver. 

La url es https://www.productospeluqueria.es pero el contenido y los enlaces son de quafurg.com el dominio default.

 

Por favor necesito ayuda. 

 

Gracias de antemano.

 

 

5 REPLIES 5

Re: No funciona magento 2 multitienda con servidor nginx

Hola danitidia, has intentado seguir la documentación oficial?

https://devdocs.magento.com/guides/v2.4/config-guide/multi-site/ms_nginx.html

 

De los datos que enviaste veo algunas cosas que no sé si son errores o un problema con traductor. Por ejemplo: fastcgi_param MAGE_RUN_TYPE sitio web;

La intención de esa linea es pasar el parametro que debiste haber seteado como website o store. y allí leo "sitio web".

 

Tampoco estoy viendo la asignación de los MAGE_RUN_CODE que deben estar asociados al codigo del website creado en el magento admin.

 

Avisame si esto te hace algo de sentido.

 

 

 

Re: No funciona magento 2 multitienda con servidor nginx

Hola, muchas gracias por ayudarme.

Si es website es que lo puse en ingles y al traducirlo salio así.

 

map $http_host $MAGE_RUN_CODE {
#hostnames;
#default base;
*.quafurg.com base;
*.productospeluqueria.es productospeluqueriaes;
*.mascarillas.org mascarillas;
}

 

map $http_host $MAGE_RUN_TYPE {
#hostnames;
#default website;
*.quafurg.com website;
*.productospeluqueria.es website;
*.mascarillas.org website;
}

Esto lo tengo después del server {...}

o sea

server {
server_name productospeluqueria.es www.productospeluqueria.es;
# Load configuration files for the default server block.
if ($host = productospeluqueria.es) {
return 301 https://www.$host$request_uri;
}
include /etc/nginx/default.d/*.conf;
set $MAGE_ROOT /usr/share/nginx/html/magento/;
set $MAGE_MODE default;
set $MAGE_RUN_TYPE website;
include /usr/share/nginx/html/quafurg/nginx.conf.sample;

}

...

y luego hago un include llamando a map.

 

Re: No funciona magento 2 multitienda con servidor nginx

He seguido el tutorial https://devdocs.magento.com/guides/v2.4/config-guide/multi-site/ms_nginx.html pero tampoco funciona.

 

Es como si el map obtuviera el valor base (www.quafurg.com) y los otros son machacados por este. O sea como si no funcionara lo siguiente (pero la url de la home si funciona):

map $http_host $MAGE_RUN_CODE {
#hostnames;
#default base;
*.quafurg.com base;
*.productospeluqueria.es productospeluqueriaes;
*.mascarillas.org mascarillas;
}

 

Re: No funciona magento 2 multitienda con servidor nginx

pudiste corregir el problema? yo tengo mis entornos funcionando con Nginx y varios proyectos multistore sin problema

 

Re: No funciona magento 2 multitienda con servidor nginx

No sigue sin funcionar. 

Sólo me funciona cambiando el código de pub/index.php

$params = $_SERVER;
$customstore = array(
'www.quafurg.com'=>'base', // Website, Store or Storeview Code
'www.mascarillas.org'=>'mascarilla' // Website, Store or Storeview Code
);
if(isset($customstore[$_SERVER['HTTP_HOST']]))
$websitecode = $customstore[$_SERVER['HTTP_HOST']];
$params[\Magento\Store\Model\StoreManager:Smiley TongueARAM_RUN_CODE] = isset($websitecode) ? $websitecode : '';
$params[\Magento\Store\Model\StoreManager:Smiley TongueARAM_RUN_TYPE] = 'website';//use website or store or view
$bootstrap = \Magento\Framework\App\Bootstrap::create(BP, $params);
//$bootstrap = Bootstrap::create(BP, $params);
$app = $bootstrap->createApplication('\Magento\Framework\App\Http');
//$app = $bootstrap->createApplication(\Magento\Framework\App\Http::class);
$bootstrap->run($app);

 

El problema es que no funcionan casi ningún tema  (excepto luma y black). Por lo que no es buena solución.

 

Cómo lo has conseguido? has hecho algún paso más? Por favor me puedes ayudar.

 

Gracias de antemano.

Dani.