複数の web サイトまたはストアを設定
英語のストア、フランス語のストア、ドイツ語のストアなど、複数の web サイトやストアを持つようにAdobe Commerceを設定できます。 詳しくは Web サイト、ストア、ストア表示についてを参照してください。
複数のストアを設定するプロセスは、一意のドメインと共有ドメインのどちらを使用するかによって異なります。
一意のドメインを持つ複数のストア:
https://first.store.com/
https://second.store.com/
同じドメインを持つ複数のストア:
https://store.com/first/
https://store.com/second/
ドメインの追加
カスタムドメインは、ステージング環境および実稼動環境に追加できます。統合環境に追加することはできません。
ドメインを追加するプロセスは、クラウドアカウントのタイプによって異なります。
-
ステージングおよび実稼動用
新しいドメインを Fastly に追加する、 ドメインの管理を参照する、またはサポートチケットを開いてサポートをリクエストします。 また、クラスターに追加する新しいドメインをリクエストするには、Adobe Commerce サポートチケットを送信する必要があります。
-
スターター実稼動用のみ
新しいドメインを Fastly に追加する方法については、 ドメインの管理または Adobe Commerce サポートチケットの送信を参照してください。 さらに、次の手順で新しいドメインを ドメイン タブに追加する必要があり Cloud Console す。
https://<zone>.magento.cloud/projects/<project-ID>/edit
ローカルインストールの設定
複数のストアを使用するようにローカルインストールを設定するには、 設定ガイドの 複数の web サイトまたはストア を参照してください。
ローカルインストールを正常に作成およびテストして複数のストアを使用したら、統合環境の準備を行う必要があります。
-
ルートまたは場所を設定 – 受信 URL がAdobe Commerceでどのように処理されるかを指定します。
-
Web サイト、ストア、ストア表示の設定 - Adobe Commerce管理 UI を使用して設定します
-
変数の変更 -
magento-vars.php
ファイルのMAGE_RUN_TYPE
変数とMAGE_RUN_CODE
変数の値を指定します -
環境の導入とテスト:
integration
ブランチの導入とテスト
Pro 環境の設定アップデート
routes.yaml
ファイルのルート設定と .magento.app.yaml
ファイルの cron 設定を更新するために、サポートチケットが必要です。 Adobe環境で YAML 設定ファイルを更新およびテストしたあと、変更内容をステージング環境にデプロイすることをお勧めします。 再デプロイ後に変更がステージングサイトに適用されず、関連するエラーメッセージがログに存在しない場合は、必須 Adobe Commerce サポートチケットを送信すると、試みた設定変更に関する説明が表示されます。 更新された YAML 設定ファイルをチケットに含めます。個別のドメインのルートの設定
ルートは、受信 URL の処理方法を定義します。 一意のドメインを持つ複数のストアでは、routes.yaml
ファイルで各ドメインを定義する必要があります。 ルートを設定する方法は、サイトの動作方法によって異なります。
統合環境でルートを設定するには:
-
ローカルワークステーションで、
.magento/routes.yaml
ファイルをテキストエディターで開きます。 -
ドメインとサブドメインを定義します。
mymagento
のアップストリーム値は、.magento.app.yaml
ファイルの name プロパティと同じ値です。code language-yaml "http://{default}/": type: upstream upstream: "mymagento:http" "http://<second-site>.{default}/": type: upstream upstream: "mymagento:http"
-
変更内容を
routes.yaml
ファイルに保存します。 -
続けて web サイト、ストア、ストア表示の設定を行います。
共有ドメインの場所の設定
routes 設定で URL の処理方法を定義する場合、.magento.app.yaml
ファイルの web
プロパティで、アプリケーションが web に公開される方法を定義します。 Web 場所 を使用すると、受信リクエストの精度を高めることができます。 例えば、ドメインが store.com
の場合、ドメインを共有する 2 つの異なるストアへのリクエストには、/first
(デフォルトサイト)と /second
を使用できます。
新しい web サイトを設定するには:
-
ルート(
/
)のエイリアスを作成します。 この例では、エイリアスは 3 行目の&app
です。code language-yaml web: locations: "/": &app # The public directory of the app, relative to its root. root: "pub" passthru: "/index.php" index: - index.php ...
-
Web サイト(
/website
)のパススルーを作成し、前の手順のエイリアスを使用してルートを参照します。エイリアスを使用
website
ると、ルートの場所から値にアクセスできます。 この例では、web サイトpassthru
は 21 行目にあります。code language-yaml web: locations: "/": &app # The public directory of the app, relative to its root. root: "pub" passthru: "/index.php" index: - index.php ... "/media": root: "pub/media" ... "/static": root: "pub/static" allow: true scripts: false passthru: "/front-static.php" rules: ^/static/version\d+/(?<resource>.*)$: passthru: "/static/$resource" "/<website>": *app ...
別のディレクトリを使用して場所を設定するには:
-
ルート(
/
)と静的(/static
)の場所にエイリアスを作成します。code language-yaml web: locations: "/": &root # The public directory of the app, relative to its root. root: "pub" passthru: "/index.php" index: - index.php ... "/static": &static root: "pub/static"
-
Web サイトのサブディレクトリを
pub
ディレクトリの下に作成します。pub/<website>
-
pub/index.php
ファイルをpub/<website>
ディレクトリにコピーし、bootstrap
パス(/../../app/bootstrap.php
)を更新します。code language-none try { require __DIR__ . '/../../app/bootstrap.php'; } catch (\Exception $e) {
-
index.php
ファイルのパススルーを作成します。code language-yaml web: locations: "/": &root # The public directory of the app, relative to its root. root: "pub" passthru: "/index.php" index: - index.php ... "/media": root: "pub/media" ... "/static": &static root: "pub/static" allow: true scripts: false passthru: "/front-static.php" rules: ^/static/version\d+/(?<resource>.*)$: passthru: "/static/$resource" "/<website>": <<: *root passthru: "<website>/index.php" "/<website>/static": *static ...
-
変更したファイルをコミットしてプッシュします。
pub/<website>/index.php
(このファイルが.gitignore
の場合、プッシュには強制オプションが必要な場合があります。).magento.app.yaml
Web サイト、ストア、ストアビューの設定
管理 UI で、Adobe Commerce Web サイト、ストア、ストアビュー を設定します。 設定ガイド _の「管理者での複数の web サイト、ストア、ストア表示の設定を参照してください_。
ローカルインストールを設定する際には、管理者が web サイト、ストア、ストアビューと同じ名前とコードを使用することが重要です。 これらの値は、magento-vars.php
ファイルを更新する際に必要になります。
変数の変更
NGINX 仮想ホストを設定する代わりに、プロジェクトのルートディレクトリにある magento-vars.php
ファイルを使用して、MAGE_RUN_CODE
変数と MAGE_RUN_TYPE
変数を渡します。
magento-vars.php
ファイルを使用して変数を渡すには:
-
magento-vars.php
ファイルをテキストエディターで開きます。デフォルトの
magento-vars.php
ファイルは次のようになります。code language-php <?php // enable, adjust and copy this code for each store you run // Store #0, default one //if (isHttpHost("example.com")) { // $_SERVER["MAGE_RUN_CODE"] = "default"; // $_SERVER["MAGE_RUN_TYPE"] = "store"; //} function isHttpHost($host) { if (!isset($_SERVER['HTTP_HOST'])) { return false; } return $_SERVER['HTTP_HOST'] === $host; }
-
コメントされた
if
ブロックを、function
ブロックの 後 に移動して、コメントされなくなるようにします。code language-php <?php // enable, adjust and copy this code for each store you run // Store #0, default one function isHttpHost($host) { if (!isset($_SERVER['HTTP_HOST'])) { return false; } return $_SERVER['HTTP_HOST'] === $host; } if (isHttpHost("example.com")) { $_SERVER["MAGE_RUN_CODE"] = "default"; $_SERVER["MAGE_RUN_TYPE"] = "store"; }
-
if (isHttpHost("example.com"))
ブロック内の次の値を-
example.com
- web サイトのベース URL -
default
- web サイト または ストアビューの一意のコード -
store
– 次のいずれかの値を持ちます:website
- ストアフロントに web サイト を読み込みますstore
- ストアフロントに ストア表示 をロードします
一意のドメインを使用する複数のサイトの場合:
code language-php <?php function isHttpHost($host) { if (!isset($_SERVER['HTTP_HOST'])) { return false; } return $_SERVER['HTTP_HOST'] === $host; } if (isHttpHost("second.store.com")) { $_SERVER["MAGE_RUN_CODE"] = "<second-site>"; $_SERVER["MAGE_RUN_TYPE"] = "website"; }elseif (isHttpHost("store.com")){ $_SERVER["MAGE_RUN_CODE"] = "base"; $_SERVER["MAGE_RUN_TYPE"] = "website"; }
同じドメインを持つ複数のサイトの場合は、host と URI を確認する必要があります。
code language-php <?php function isHttpHost($host) { if (!isset($_SERVER['HTTP_HOST'])) { return false; } return $_SERVER['HTTP_HOST'] === $host; } if (isHttpHost("store.com")) { $code = "base"; $type = "website"; $uri = explode('/', $_SERVER['REQUEST_URI']); if (isset($uri[1]) && $uri[1] == 'second') { $code = '<second-site>'; $type = 'website'; } $_SERVER["MAGE_RUN_CODE"] = $code; $_SERVER["MAGE_RUN_TYPE"] = $type; }
-
-
変更内容を
magento-vars.php
ファイルに保存します。
統合サーバーへのデプロイとテスト
変更内容をAdobe Commerce on cloud infrastructure integration environment にプッシュし、サイトをテストします。
-
コードの変更をリモートブランチに追加、コミットおよびプッシュします。
code language-bash git add -A && git commit -m "Implement multiple sites" && git push origin <branch-name>
-
デプロイメントが完了するまで待ちます。
-
デプロイメント後、Web ブラウザーでストア URL を開きます。
一意のドメインでは、
http://<magento-run-code>.<site-URL>
の形式を使用します。例:
http://french.master-name-projectID.us.magentosite.cloud/
共有ドメインでは、
http://<site-URL>/<magento-run-code>
の形式を使用します。例:
http://master-name-projectID.us.magentosite.cloud/french/
-
サイトを徹底的にテストし、コードを
integration
ブランチに結合して、さらにデプロイメントします。
ステージング環境および実稼動環境にデプロイ
デプロイメントプロセス ステージング環境および実稼動環境へのデプロイに従います。 スターター環境および Pro 環境の場合は、Cloud Console を使用して環境全体にコードをプッシュします。
Adobeでは、実稼動環境にプッシュする前に、ステージング環境で完全にテストすることをお勧めします。 統合環境でコードを変更し、環境全体にデプロイするプロセスを再度開始します。