Kami ingin membuat beberapa situs web di Magento 2. Ada artikel tentang topik ini di Dokumentasi Magento 2 Resmi , tetapi cara mereka menggambarkannya tidak cocok untuk kasus kami.
Mereka menyarankan untuk menggunakan sub-domain untuk menentukan situs web yang berbeda, seperti
- situs web1. magento-site.com
- situs web2 .magento-site.com
Kami ingin menggunakan sub-folder alih - alih sub-domain . Untuk memberi contoh,
- magento-site.com/ situs web1
- magento-site.com/ website2
Bagaimana kita bisa mengatasi masalah ini di server web Nginx?
Konfigurasi Saya
Saya menggunakan Ubuntu 16.04. Saya telah menginstal Nginx , dan belum mengubah konfigurasi inti Nginx. Saya telah membuat file magento-site.com.conf
di dalamnya /etc/nginx/sites-enabled/magento-site.com.conf
.
/etc/nginx/sites-enabled/magento-site.com.conf
server {
listen 8080;
server_name magento-site.com;
set $MAGE_RUN_CODE website1;
set $MAGE_ROOT /var/www/magento-site.com;
include /var/www/magento-site.com/nginx.conf;
}
EDIT 1: (2017-10-23)
Saya memiliki beberapa toko untuk setiap situs web.
magento2
nginx
multi-website
Bunyamin Inan
sumber
sumber
Jawaban:
Saya telah mencoba berbagai cara untuk mencapai tugas ini. Saya ingin mengucapkan terima kasih kepada @ matias-hidalgo untuk kontribusinya, meskipun saya tidak mengerti jawabannya pada awalnya baca :).
Inilah skenarionya. Kami memiliki dua situs web yang berbeda, dan setiap situs web memiliki dua tampilan toko yang berbeda sebagai berikut:
Situs web 1
Situs web 2
Dalam solusi saya, kita akan mengubah beberapa konfigurasi di Magento Admin . Kemudian kita akan membuat beberapa sub-folder , dan akhirnya kita akan memodifikasi
nginx.conf
.Pertama-tama, kita perlu membuat beberapa perubahan konfigurasi di Admin Magento . Pergi ke
Stores
->Configuration
->General
->Web
. Kita perlu mengubah URL Basis untuk setiap tampilan toko.Untuk Konfigurasi Default
Harap berikan konfigurasi berikut untuk konfigurasi default.
Untuk Situs Web 1 (E-commerce) dan Situs Web 1 (Venda Assistida)
Harap berikan konfigurasi berikut untuk semua tampilan toko 1 Situs web .
Untuk Situs Web 2 (E-commerce) dan Situs Web 2 (Venda Assistida)
Harap berikan konfigurasi berikut untuk semua tampilan toko 2 Situs web .
Kedua, kita perlu membuat
website1
danwebsite2
folder di/pub
direktori. Di final, Anda harus memiliki folder berikut:MAGENTO_ROOT/pub/website1
MAGENTO_ROOT/pub/website2
Salin
pub/index.php
file ke direktori ini. Kemudian kami akan membuat beberapa perubahan diMAGENTO_ROOT/pub/website1/index.php
danMAGENTO_ROOT/pub/website2/index.php
.Isi dari
MAGENTO_ROOT/pub/website1/index.php
Saya hanya mengubah 3 baris:
Baris 1:
require __DIR__ . '/../../app/bootstrap.php';
Baris 2:
$params[\Magento\Store\Model\StoreManager::PARAM_RUN_CODE] = 'website1';
Baris ke-3:
$params[\Magento\Store\Model\StoreManager::PARAM_RUN_TYPE] = 'website';
Untuk sentuhan terakhir, kami perlu memodifikasi
nginx.conf
di direktori MAGENTO_ROOT Anda. Silakan masukkan konfigurasi berikut ke dalam file Andanginx.conf
.Setelah semua konfigurasi dan modifikasi ini, Anda akan dapat menggunakan situs web sebagai sub-folder. Saya harap ini membantu.
sumber
Dengan konfigurasi Nginx Anda dapat menggunakan konfigurasi contoh ini:
dan gunakan index.php ini sebagai contoh:
Untuk memperjelas:
Dalam konfigurasi nhostx vhost saya Anda akan menemukan ini:
di mana "/ your / subfolder" pertama dapat diubah untuk apa pun yang Anda inginkan sebagai url situs web. ex www.mywebsite.com/stack/magento -> / stack / magento
Kemudian untuk mendefinisikan kode situs web yang akan dimuat ke dalam url ini Anda harus membuat index.php menulis kode situs web di sini:
Saya harap ini sekarang sudah cukup jelas, saya harus menghabiskan waktu dalam sebuah proyek untuk menyelesaikan ini jadi saya tahu ini bekerja dan lebih dekat seperti yang kita lakukan pada M1.
sumber
di domain Anda.conf di "etc / nginx" Anda perlu membuat peta.
sebagai contoh:
atau
sumber
website1.magento-site.com
, tapi aku maumagento-site.com/website1
.map $http_host$uri $MAGE_RUN_CODE
Bagaimana dengan solusi nginx murni dengan peta ganda ini?
Pertama, untuk situs web (terima kasih @MagenX)
Sedetik untuk uri permintaan baru
Dan akhirnya, jangan lupa untuk mengatur REQUEST_URI yang baru dihitung
sumber