คุณช่วยระบุแหล่งที่มา / ขั้นตอนเพื่อสร้างเว็บไซต์หลายแห่งใน magento 2 ได้ไหมฉันมี google มันเกี่ยวกับเรื่องนี้ แต่ไม่มีแหล่งที่มา / ขั้นตอนที่ไม่ได้ให้เส้นทางในการสร้างเว็บไซต์ / ร้านค้าหลายแห่ง
คุณช่วยระบุแหล่งที่มา / ขั้นตอนเพื่อสร้างเว็บไซต์หลายแห่งใน magento 2 ได้ไหมฉันมี google มันเกี่ยวกับเรื่องนี้ แต่ไม่มีแหล่งที่มา / ขั้นตอนที่ไม่ได้ให้เส้นทางในการสร้างเว็บไซต์ / ร้านค้าหลายแห่ง
คำตอบ:
สร้างเว็บไซต์หลายแห่งในวีโอไอพีขั้นตอนในการสร้างมัลติสโตร์ในแผงผู้ดูแลระบบเหมือนกับใน magento1.x อย่าลืมเปลี่ยน URL พื้นฐานและ URL ที่ปลอดภัยสำหรับเว็บไซต์ / ร้านค้าใหม่ เมื่อทำการเปลี่ยนแปลงในแผงผู้ดูแลระบบทำตามขั้นตอนด้านล่าง
1) สร้างโฟลเดอร์ใหม่ในรูทวีโอไอพีแล้วคัดลอกไฟล์index.php
และ.htaccess
จากรูทไฟล์วีโอไอพีไปยังโฟลเดอร์ใหม่
2) แก้ไขไฟล์index.php
ที่อยู่ในโฟลเดอร์ใหม่
แทนที่:
$bootstrap = \Magento\Framework\App\Bootstrap::create(BP, $_SERVER);
/** @var \Magento\Framework\App\Http $app */
$app = $bootstrap->createApplication('Magento\Framework\App\Http');
$bootstrap->run($app);
ด้วย:
$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);
และอัปเดต bootstrap.php รวมถึงเส้นทางดังต่อไปนี้
แทนที่:
require __DIR__ . '/app/bootstrap.php';
ด้วย:
require __DIR__ . '/../app/bootstrap.php';
3) สร้าง simlink ภายในโฟลเดอร์ใหม่
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
แนะนำสิ่งนี้
โปรดล้างvar/generation,var/cache and pub/static
ไฟล์และทำการปรับใช้เนื้อหาแบบคงที่
.htaccess
(พร้อมด้วยindex.php
) จากรูทไปยังโฟลเดอร์ใหม่
ขอบคุณทรัพยากรนี้
ใน Magento แบ็กเอนด์ไปที่ร้านค้า> ร้านค้าทั้งหมดสร้างที่นี่สถาปัตยกรรมของคุณด้วยเว็บไซต์ / ร้านค้า / ร้านค้าต่าง ๆ สังเกตรหัสเว็บไซต์อย่างระมัดระวังเช่น
ในไฟล์กำหนดค่า Nginx ของคุณ (ส่วนใหญ่จะอยู่ในโฟลเดอร์ / etc / nginx / sites-enabled) ที่ด้านบนของไฟล์กำหนดค่า:
map $HTTP_HOST $mage_run_code {
www.store.com us;
www.store.fr fr;
www.store.es es;
}
จากนั้นในserver
บล็อกให้เพิ่มการประกาศเพื่อฟัง 3 โดเมน:
server {
listen 80;
server_name www.store.com www.store.fr www.store.es;
// whatever other config you get...
}
สุดท้ายในการกำหนดค่า php (บล็อกที่ขึ้นต้นด้วยlocation ~ \. php $ {
) ให้เพิ่ม
fastcgi_param MAGE_RUN_TYPE website;
fastcgi_param MAGE_RUN_CODE $mage_run_code;
ก่อนบรรทัด (โดยปกติคุณจะเห็นบรรทัดอื่น ๆ ที่ขึ้นต้นด้วยfastcgi_param
)
include fastcgi_params;
บันทึกไฟล์ปรับแต่งของคุณรีสตาร์ทเซิร์ฟเวอร์ Nginx ของคุณและ voila
RTFM
https://devdocs.magento.com/guides/v2.3/config-guide/multi-site/ms_over.html
สารบัญ
MAGE_RUN_TYPE
และMAGE_RUN_CODE
วิธีง่ายๆในการทดสอบกับ magento 2.2.5
สร้างชื่อแทนโดเมนบนเซิร์ฟเวอร์ของคุณตัวอย่าง domain2.com
แก้ไขไฟล์ index.php ในรูทวีโอไอพี
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);