Magento 2'de bir çoklu web siteleri oluşturmak için lütfen kaynak / prosedürler sağlayabilir misiniz? Bununla ilgili bir google var, ancak kaynak / prosedürün hiçbiri çoklu web sitesi / mağaza oluşturma yolu sağlamadı.
Magento 2'de bir çoklu web siteleri oluşturmak için lütfen kaynak / prosedürler sağlayabilir misiniz? Bununla ilgili bir google var, ancak kaynak / prosedürün hiçbiri çoklu web sitesi / mağaza oluşturma yolu sağlamadı.
Yanıtlar:
Magento'da çoklu web sitesi oluşturuldu, Yönetici panelinde çoklu mağaza oluşturma adımları magento1.x ile aynıdır. Yeni web sitesi / mağaza için temel URL'yi ve güvenli URL'yi değiştirmeyi unutmayın. Yönetici panelinde değişiklikler yapıldıktan sonra aşağıdaki adımları izleyin,
1) Magento root dizininde yeni bir klasör oluşturun ve index.phpve .htaccessdosyalarını magento root dizininden yeni klasöre kopyalayın.
2) index.phpYeni klasörde olanı düzenleyin
Değiştir:
$bootstrap = \Magento\Framework\App\Bootstrap::create(BP, $_SERVER);
/** @var \Magento\Framework\App\Http $app */
$app = $bootstrap->createApplication('Magento\Framework\App\Http');
$bootstrap->run($app);
İle:
$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);
Ve ayrıca bootstrap.php güncelleme yolunu aşağıdaki gibi güncelleyin,
Değiştir:
require __DIR__ . '/app/bootstrap.php';
İle:
require __DIR__ . '/../app/bootstrap.php';
3) Yeni klasörün içinde bir simlink oluşturun
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
bakın bu
Lütfen var/generation,var/cache and pub/staticdosyaları silin ve statik içerik dağıtımını yapın.
.htaccessde index.phpkökünden yeni klasöre (birlikte ) kopyalamak zorunda olduğunu düşünüyorum .
bu kaynak sayesinde
Magento arka ucunda, Mağazalar> Tüm Mağazalar'a gidin Farklı web siteleri / mağaza / mağaza görünümü ile mimarinizi oluşturun Burada, web sitesi kodlarını dikkatlice not edin,
Nginx yapılandırma dosyanızda (büyük olasılıkla / etc / nginx / sites özellikli klasörde) yapılandırma dosyasının üstüne ekleyin:
map $HTTP_HOST $mage_run_code {
www.store.com us;
www.store.fr fr;
www.store.es es;
}
daha sonra, serverblokta 3 alanı dinlemek için bildirimi ekleyin:
server {
listen 80;
server_name www.store.com www.store.fr www.store.es;
// whatever other config you get...
}
son olarak, php config (ile başlayan blok location ~ \. php $ {)
fastcgi_param MAGE_RUN_TYPE website;
fastcgi_param MAGE_RUN_CODE $mage_run_code;
satırdan önce (normalde ile başlayan diğer satırları görürsünüz fastcgi_param)
include fastcgi_params;
config dosyanızı kaydedin, Nginx server et voila'nızı yeniden başlatın.
RTFM
https://devdocs.magento.com/guides/v2.3/config-guide/multi-site/ms_over.html
içindekiler
MAGE_RUN_TYPEVe için değerleri ayarlayınMAGE_RUN_CODEMagento 2.2.5'te basit bir şekilde test edilmiştir
Sunucu örneğinizde bir etki alanı takma adı oluşturun domain2.com
Magento root dizininde index.php dosyasını düzenle
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);