- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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.
- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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.
- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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.
- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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;
}
- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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
- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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:ARAM_RUN_CODE] = isset($websitecode) ? $websitecode : '';
$params[\Magento\Store\Model\StoreManager:ARAM_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.