Bisakah Anda memberikan sumber / prosedur untuk membuat multi situs web di magento 2. Saya punya google mengenai hal ini, tetapi tidak ada sumber / prosedur yang tidak menyediakan jalur untuk membuat multi situs web / toko.
Bisakah Anda memberikan sumber / prosedur untuk membuat multi situs web di magento 2. Saya punya google mengenai hal ini, tetapi tidak ada sumber / prosedur yang tidak menyediakan jalur untuk membuat multi situs web / toko.
Jawaban:
Membuat banyak situs web di magento, Langkah-langkah untuk membuat multistore di panel admin sama seperti di magento1.x. Jangan lupa ganti url dasar dan url aman untuk situs web / toko baru. Setelah membuat perubahan di panel admin ikuti langkah-langkah di bawah ini,
1) Buat folder baru di root magento dan salin index.php
dan .htaccess
file dari root magento ke folder baru.
2) Edit index.php
yang ada di folder baru
Menggantikan:
$bootstrap = \Magento\Framework\App\Bootstrap::create(BP, $_SERVER);
/** @var \Magento\Framework\App\Http $app */
$app = $bootstrap->createApplication('Magento\Framework\App\Http');
$bootstrap->run($app);
Dengan:
$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);
Dan juga perbarui bootstrap.php termasuk path seperti di bawah ini,
Menggantikan:
require __DIR__ . '/app/bootstrap.php';
Dengan:
require __DIR__ . '/../app/bootstrap.php';
3) Buat simlink di dalam folder baru
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
Lihat ini
Harap hapus var/generation,var/cache and pub/static
file dan lakukan penyebaran konten statis.
.htaccess
juga (bersama dengan index.php
) dari root ke folder baru.
terima kasih untuk sumber ini
di Magento backend, buka Toko> Semua Toko Buat di sini arsitektur Anda dengan berbagai situs web / store / storeview Perhatikan dengan cermat kode situs web, misalnya,
di file konfigurasi Nginx Anda (kemungkinan besar di folder / etc / nginx / sites-enabled) tambahkan di bagian atas file config:
map $HTTP_HOST $mage_run_code {
www.store.com us;
www.store.fr fr;
www.store.es es;
}
lalu, di server
blok, tambahkan deklarasi untuk mendengarkan 3 domain:
server {
listen 80;
server_name www.store.com www.store.fr www.store.es;
// whatever other config you get...
}
terakhir, dalam konfigurasi php (blok dimulai dengan location ~ \. php $ {
), tambahkan
fastcgi_param MAGE_RUN_TYPE website;
fastcgi_param MAGE_RUN_CODE $mage_run_code;
sebelum baris (Anda biasanya akan melihat baris lain dimulai dengan fastcgi_param
)
include fastcgi_params;
simpan file konfigurasi Anda, restart server Nginx Anda dan voila.
RTFM
https://devdocs.magento.com/guides/v2.3/config-guide/multi-site/ms_over.html
Isi
MAGE_RUN_TYPE
danMAGE_RUN_CODE
Cara sederhana diuji pada Magento 2.2.5
Buat alias domain di server Anda contoh domain2.com
Edit file index.php di root 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);