Können Sie bitte die Quelle / Prozeduren für das Erstellen mehrerer Websites in Magento 2 angeben? Ich habe diesbezüglich eine Google-Version, aber keine der Quellen / Prozeduren hat den Pfad zum Erstellen mehrerer Websites / Shops angegeben.
Können Sie bitte die Quelle / Prozeduren für das Erstellen mehrerer Websites in Magento 2 angeben? Ich habe diesbezüglich eine Google-Version, aber keine der Quellen / Prozeduren hat den Pfad zum Erstellen mehrerer Websites / Shops angegeben.
Antworten:
Multi-Website in Magento erstellt. Die Schritte zum Erstellen eines Multispeichers im Admin-Bereich sind die gleichen wie in Magento1.x. Vergessen Sie nicht, die Basis-URL und die sichere URL für die neue Website / den neuen Shop zu ändern. Wenn Sie Änderungen im Admin-Bereich vorgenommen haben, gehen Sie wie folgt vor:
1) Erstellen Sie einen neuen Ordner im Magento-Stammverzeichnis und kopieren Sie die index.php
und .htaccess
-Dateien vom Magento-Stammverzeichnis in den neuen Ordner.
2) Bearbeiten Sie den index.php
Ordner, der sich in einem neuen Ordner befindet
Ersetzen:
$bootstrap = \Magento\Framework\App\Bootstrap::create(BP, $_SERVER);
/** @var \Magento\Framework\App\Http $app */
$app = $bootstrap->createApplication('Magento\Framework\App\Http');
$bootstrap->run($app);
Mit:
$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);
Und auch Update bootstrap.php enthalten Pfad wie folgt,
Ersetzen:
require __DIR__ . '/app/bootstrap.php';
Mit:
require __DIR__ . '/../app/bootstrap.php';
3) Erstellen Sie im neuen Ordner einen 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
Verweisen Sie darauf
Bitte löschen Sie die var/generation,var/cache and pub/static
Dateien und führen Sie die Bereitstellung statischer Inhalte durch.
.htaccess
auch (zusammen mit index.php
) vom root in den neuen Ordner kopieren .
Dank dieser Ressource
Gehen Sie im Magento-Backend zu Stores> All Stores. Erstellen Sie hier Ihre Architektur mit verschiedenen Websites / Stores / Storeviews. Notieren Sie sorgfältig die Website-Codes, z.
Fügen Sie in Ihrer Nginx-Konfigurationsdatei (wahrscheinlich im Ordner / etc / nginx / sites-enabled) oben in der Konfigurationsdatei Folgendes hinzu:
map $HTTP_HOST $mage_run_code {
www.store.com us;
www.store.fr fr;
www.store.es es;
}
Fügen Sie dann im server
Block die Deklaration zum Abhören der 3 Domänen hinzu:
server {
listen 80;
server_name www.store.com www.store.fr www.store.es;
// whatever other config you get...
}
Zuletzt location ~ \. php $ {
fügen Sie in der PHP-Konfiguration (der Block, der mit beginnt ) hinzu
fastcgi_param MAGE_RUN_TYPE website;
fastcgi_param MAGE_RUN_CODE $mage_run_code;
vor der Zeile (normalerweise werden andere Zeilen angezeigt, die mit beginnen fastcgi_param
)
include fastcgi_params;
Speichern Sie Ihre Konfigurationsdatei, starten Sie Ihren Nginx-Server neu und starten Sie voila.
RTFM
https://devdocs.magento.com/guides/v2.3/config-guide/multi-site/ms_over.html
Inhalt
MAGE_RUN_TYPE
und einMAGE_RUN_CODE
Einfacher Weg auf Magento 2.2.5 getestet
Erstellen Sie auf Ihrem Serverbeispiel domain2.com einen Domain-Alias
Bearbeiten Sie die Datei index.php im Magento-Stammverzeichnis
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);