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.php
ve .htaccess
dosyalarını magento root dizininden yeni klasöre kopyalayın.
2) index.php
Yeni 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/static
dosyaları silin ve statik içerik dağıtımını yapın.
.htaccess
de index.php
kö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, server
blokta 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_TYPE
Ve için değerleri ayarlayınMAGE_RUN_CODE
Magento 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);