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.
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.
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.
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;
}
pudiste corregir el problema? yo tengo mis entornos funcionando con Nginx y varios proyectos multistore sin problema
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.