Potete per favore fornire la fonte / le procedure per creare un multi sito Web in Magento 2. Ne ho un google riguardo a questo, ma nessuna della fonte / procedura non ha fornito il percorso per creare multi sito web / negozio.
Potete per favore fornire la fonte / le procedure per creare un multi sito Web in Magento 2. Ne ho un google riguardo a questo, ma nessuna della fonte / procedura non ha fornito il percorso per creare multi sito web / negozio.
Risposte:
Creato multi sito Web in magento, i passaggi per creare un multistore nel pannello di amministrazione sono gli stessi di magento1.x. Non dimenticare di modificare l'URL di base e l'URL sicuro per il nuovo sito Web / negozio. Una volta apportate le modifiche nel pannello di amministrazione, seguire i passaggi seguenti,
1) Crea una nuova cartella in magento root e copia i file index.php
e .htaccess
da magento root in una nuova cartella.
2) Modifica il index.php
quale si trova nella nuova cartella
Sostituire:
$bootstrap = \Magento\Framework\App\Bootstrap::create(BP, $_SERVER);
/** @var \Magento\Framework\App\Http $app */
$app = $bootstrap->createApplication('Magento\Framework\App\Http');
$bootstrap->run($app);
Con:
$params = $_SERVER;
$params[\Magento\Store\Model\StoreManager::PARAM_RUN_CODE] = 'newstore'; //Webite code as same in admin panel
$params[\Magento\Store\Model\StoreManager::PARAM_RUN_TYPE] = 'website';
$bootstrap = \Magento\Framework\App\Bootstrap::create(BP, $params);
/** @var \Magento\Framework\App\Http $app */
$app = $bootstrap->createApplication('Magento\Framework\App\Http');
$bootstrap->run($app);
E anche aggiornare bootstrap.php include il percorso come di seguito,
Sostituire:
require __DIR__ . '/app/bootstrap.php';
Con:
require __DIR__ . '/../app/bootstrap.php';
3) Crea un simlink all'interno della nuova cartella
ln -s /home/example/example.com/html/app/ app
ln -s /home/example/example.com/html/lib/ lib
ln -s /home/example/example.com/html/pub/ pub
ln -s /home/example/example.com/html/var/ var
Fare riferimento questo
Cancella i var/generation,var/cache and pub/static
file ed esegui la distribuzione del contenuto statico.
.htaccess
anche (insieme index.php
) dalla radice alla nuova cartella.
grazie a questa risorsa
nel backend Magento, vai su Negozi> Tutti i negozi Crea qui la tua architettura con diversi siti Web / negozio / vista negozio Nota attentamente i codici dei siti Web, ad esempio,
nel tuo file di configurazione di Nginx (molto probabilmente nella cartella / etc / nginx / sites-enabled) aggiungi nella parte superiore del file di configurazione:
map $HTTP_HOST $mage_run_code {
www.store.com us;
www.store.fr fr;
www.store.es es;
}
quindi, nel server
blocco, aggiungi la dichiarazione per ascoltare i 3 domini:
server {
listen 80;
server_name www.store.com www.store.fr www.store.es;
// whatever other config you get...
}
infine, nella configurazione php (il blocco che inizia con location ~ \. php $ {
), aggiungi
fastcgi_param MAGE_RUN_TYPE website;
fastcgi_param MAGE_RUN_CODE $mage_run_code;
prima della riga (normalmente vedrai altre righe che iniziano con fastcgi_param
)
include fastcgi_params;
salvare il file di configurazione, riavviare il server Nginx e voilà.
RTFM
https://devdocs.magento.com/guides/v2.3/config-guide/multi-site/ms_over.html
Contenuti
MAGE_RUN_TYPE
eMAGE_RUN_CODE
Modo semplice testato su Magento 2.2.5
Crea un alias di dominio sul tuo server domain2.com di esempio
Modifica il file index.php nella radice di magento
try {
require __DIR__ . '/app/bootstrap.php';
} catch (\Exception $e) {
echo <<<HTML
<div style="font:12px/1.35em arial, helvetica, sans-serif;">
<div style="margin:0 0 25px 0; border-bottom:1px solid #ccc;">
<h3 style="margin:0;font-size:1.7em;font-weight:normal;text-transform:none;text-align:left;color:#2f2f2f;">
Autoload error</h3>
</div>
<p>{$e->getMessage()}</p>
</div>
HTML;
exit(1);
}
$params = $_SERVER;
$customstore = array(
'www.main.com'=>'main_website', // Website, Store or Storeview Code
'www.domian2.com'=>'domain2_website' // Website, Store or Storeview Code
);
if(isset($customstore[$_SERVER['HTTP_HOST']]))
$websitecode = $customstore[$_SERVER['HTTP_HOST']];
$params[\Magento\Store\Model\StoreManager::PARAM_RUN_CODE] = isset($websitecode) ? $websitecode : '';
$params[\Magento\Store\Model\StoreManager::PARAM_RUN_TYPE] = 'website';//use website or store or view
$bootstrap = \Magento\Framework\App\Bootstrap::create(BP, $params);
$app = $bootstrap->createApplication('Magento\Framework\App\Http');
$bootstrap->run($app);