您能在magento 2中提供创建多个网站的源/过程吗?对此我有一个google搜索,但是没有一个源/过程没有提供创建多个网站/商店的路径。
您能在magento 2中提供创建多个网站的源/过程吗?对此我有一个google搜索,但是没有一个源/过程没有提供创建多个网站/商店的路径。
Answers:
在magento中创建了多网站,在管理面板中创建多商店的步骤与在magento1.x中相同。不要忘记为新网站/商店更改基本URL和安全URL。在管理面板中进行更改后,请执行以下步骤,
1)在magento根目录中创建一个新文件夹,然后将index.php
和.htaccess
文件从magento根目录复制到新文件夹中。
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)在新文件夹内创建一个simlinks
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服务器等等。
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上创建域别名
在magento根目录中编辑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);