Nginx で複数の Web サイトを設定する
我々は、以下を想定する。
-
開発マシン(ノート PC、仮想マシンなど)で作業している。
ホスト環境で複数の Web サイトをデプロイする場合は、追加のタスクが必要になる場合があります。詳しくは、ホスティングプロバイダーにお問い合わせください。
クラウドインフラストラクチャ上にAdobe Commerceを設定するには、追加のタスクが必要です。 このトピックで説明したタスクを完了した後、 複数の Web サイトまたはストアを設定する (内) Commerce on Cloud Infrastructure ガイド.
-
複数のドメインを 1 つの仮想ホストファイルで受け入れるか、Web サイトごとに 1 つの仮想ホストを使用します。仮想ホストの設定ファイルは、
/etc/nginx/sites-available
. -
次を使用します。
nginx.conf.sample
Commerce で提供され、このチュートリアルで説明する変更のみが含まれます。 -
Commerce ソフトウェアは、
/var/www/html/magento2
. -
デフォルト以外の 2 つの Web サイトがあります。
french.mysite.mg
Web サイトコードfrench
およびビューコードをストアfr
german.mysite.mg
Web サイトコードgerman
およびビューコードをストアde
mysite.mg
はデフォルトの Web サイトおよびデフォルトのストア表示です。
nginx を使用した複数の Web サイトのセットアップロードマップを次に示します。
-
Web サイト、ストア、ストアの表示を設定する 」と入力します。
-
の作成 Nginx 仮想ホスト) を使用して、多くの Web サイトまたは 1 つの Nginx 仮想ホストを Commerce Web サイトごとにマッピングします(以下の手順で詳しく説明します)。
-
の値を渡す 画像変数
$MAGE_RUN_TYPE
および$MAGE_RUN_CODE
Magento提供のnginx.conf.sample
(以下で説明する手順)。-
$MAGE_RUN_TYPE
次のいずれかを指定できます。store
またはwebsite
:- 用途
website
をクリックして、ストアフロントに web サイトを読み込みます。 - 用途
store
ストアのビューをストアフロントに読み込みます。
- 用途
-
$MAGE_RUN_CODE
は、$MAGE_RUN_TYPE
.
-
-
コマース管理でベース URL 設定を更新します。
手順 1:Web サイト、ストアを作成し、管理者にビューを保存する
詳しくは、 複数の Web サイト、ストア、管理者での表示の設定.
手順 2:nginx 仮想ホストを作成する
この手順では、ストアフロントに Web サイトを読み込む方法について説明します。 Web サイトまたはストア表示を使用できます。ストア表示を使用する場合は、それに応じてパラメーター値を調整する必要があります。 この節のタスクは、 sudo
権限。
1 つだけを使用して nginx 仮想ホストファイルを使用すると、nginx の設定をシンプルでクリーンな状態に保つことができます。 複数の仮想ホストファイルを使用すると、各ストアをカスタマイズできます ( french.mysite.mg
例えば )。
1 つの仮想ホストを作成するには (簡略化):
この設定は、 nginx 設定.
-
テキストエディターを開き、次の内容をという名前の新しいファイルに追加します。
/etc/nginx/sites-available/magento
:code language-conf map $http_host $MAGE_RUN_CODE { default ''; french.mysite.mg french; german.mysite.mg german; } server { listen 80; server_name mysite.mg french.mysite.mg german.mysite.mg; set $MAGE_ROOT /var/www/html/magento2; set $MAGE_MODE developer; set $MAGE_RUN_TYPE website; #or set $MAGE_RUN_TYPE store; include /var/www/html/magento2/nginx.conf; }
-
変更をファイルに保存し、テキストエディターを終了します。
-
サーバー設定を確認します。
code language-bash nginx -t
-
成功すると、次のメッセージが表示されます。
code language-terminal nginx: configuration file /etc/nginx/nginx.conf test is successful
エラーが表示される場合は、仮想ホスト構成ファイルの構文を確認します。
-
でシンボリックリンクを作成します。
/etc/nginx/sites-enabled
ディレクトリ:code language-bash cd /etc/nginx/sites-enabled
code language-bash ln -s /etc/nginx/sites-available/magento magento
map ディレクティブの詳細については、 map ディレクティブに関する nginx ドキュメント.
複数の仮想ホストを作成するには:
-
テキストエディターを開き、次の内容をという名前の新しいファイルに追加します。
/etc/nginx/sites-available/french.mysite.mg
:code language-conf server { listen 80; server_name french.mysite.mg; set $MAGE_ROOT /var/www/html/magento2; set $MAGE_MODE developer; set $MAGE_RUN_TYPE website; #or set $MAGE_RUN_TYPE store; set $MAGE_RUN_CODE french; include /var/www/html/magento2/nginx.conf; }
-
という名前の別のファイルを作成します。
german.mysite.mg
は、次の内容を含む同じディレクトリ内にあります。code language-conf server { listen 80; server_name german.mysite.mg; set $MAGE_ROOT /var/www/html/magento2; set $MAGE_MODE developer; set $MAGE_RUN_TYPE website; #or set $MAGE_RUN_TYPE store; set $MAGE_RUN_CODE german; include /var/www/html/magento2/nginx.conf; }
-
変更をファイルに保存し、テキストエディターを終了します。
-
サーバー設定を確認します。
code language-bash nginx -t
-
成功すると、次のメッセージが表示されます。
code language-terminal nginx: configuration file /etc/nginx/nginx.conf test is successful
エラーが表示される場合は、仮想ホスト構成ファイルの構文を確認します。
-
シンボリックリンクを
/etc/nginx/sites-enabled
ディレクトリ:code language-bash cd /etc/nginx/sites-enabled
code language-bash ln -s /etc/nginx/sites-available/french.mysite.mg french.mysite.mg
code language-bash ln -s /etc/nginx/sites-available/german.mysite.mg german.mysite.mg
手順 3: nginx.conf.sample を変更する
nginx.conf.sample
ファイル。新しいリリースのたびに更新される可能性のあるコア Commerce ファイルです。 代わりに、 nginx.conf.sample
ファイルの名前を変更し、コピーしたファイルを編集します。メインアプリケーションの PHP エントリポイントを編集するには:
次の手順で nginx.conf.sample
file**:
-
テキストエディターを開き、
nginx.conf.sample
ファイル、<magento2_installation_directory>/nginx.conf.sample
. 次のセクションを探します。code language-conf # PHP entry point for main application location ~ (index|get|static|report|404|503|health_check)\.php$ { try_files $uri =404; fastcgi_pass fastcgi_backend; fastcgi_buffers 1024 4k; fastcgi_param PHP_FLAG "session.auto_start=off \n suhosin.session.cryptua=off"; fastcgi_param PHP_VALUE "memory_limit=1G \n max_execution_time=18000"; fastcgi_read_timeout 600s; fastcgi_connect_timeout 600s; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; }
-
を更新します。
nginx.conf.sample
ファイルの前に以下の 2 行を記述します。code language-conf fastcgi_param MAGE_RUN_TYPE $MAGE_RUN_TYPE; fastcgi_param MAGE_RUN_CODE $MAGE_RUN_CODE;
更新された PHP エントリポイントの例を次に示します。
# PHP entry point for main application
location ~ (index|get|static|report|404|503|health_check)\.php$ {
try_files $uri =404;
fastcgi_pass fastcgi_backend;
fastcgi_buffers 1024 4k;
fastcgi_param PHP_FLAG "session.auto_start=off \n suhosin.session.cryptua=off";
fastcgi_param PHP_VALUE "memory_limit=1G \n max_execution_time=18000";
fastcgi_read_timeout 600s;
fastcgi_connect_timeout 600s;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
# START - Multisite customization
fastcgi_param MAGE_RUN_TYPE $MAGE_RUN_TYPE;
fastcgi_param MAGE_RUN_CODE $MAGE_RUN_CODE;
# END - Multisite customization
include fastcgi_params;
}
手順 4:ベース URL 設定の更新
のベース URL を更新する必要があります。 french
そして german
Web サイトをコマース管理者に表示します。
フランス語の Web サイトのベース URL を更新
- コマース管理者にログインし、に移動します。 ストア > 設定 > 設定 > 一般 > Web.
- 次を変更: 設定範囲 から
french
web サイト。 - 展開 ベース URL セクションを開き、 ベース URL および ベースリンク URL 値
http://french.magento24.com/
. - 展開 ベース URL (セキュア) セクションを開き、 セキュアベース URL および セキュアベースリンク URL 値
https://french.magento24.com/
. - クリック 設定を保存 設定の変更を保存します。
ドイツ語の Web サイトのベース URL を更新
- コマース管理者にログインし、に移動します。 ストア > 設定 > 設定 > 一般 > Web.
- 次を変更: 設定範囲 から
german
web サイト。 - 展開 ベース URL セクションを開き、 ベース URL および ベースリンク URL 値
http://german.magento24.com/
. - 展開 ベース URL (セキュア) セクションを開き、 セキュアベース URL および セキュアベースリンク URL 値
https://german.magento24.com/
. - クリック 設定を保存 設定の変更を保存します。
キャッシュのクリーンアップ
次のコマンドを実行して、 config
および full_page
キャッシュ。
bin/magento cache:clean config full_page
サイトの検証
ストアの URL に対して DNS が設定されていない限り、 hosts
ファイル:
-
オペレーティングシステムを見つける
hosts
ファイル。 -
次の形式で静的ルートを追加します。
code language-conf <ip-address> french.mysite.mg <ip-address> german.mysite.mg
-
ブラウザーで次の URL のいずれかに移動します。
code language-http http://mysite.mg/admin http://french.mysite.mg/frenchstoreview http://german.mysite.mg/germanstoreview
- ホスト環境で複数の Web サイトをデプロイする場合は、追加のタスクが必要になる場合があります。詳しくは、ホスティングプロバイダーにお問い合わせください。
- クラウドインフラストラクチャ上にAdobe Commerceを設定するには、追加のタスクが必要です。詳しくは、 複数のクラウド Web サイトまたはストアを設定する (内) Commerce on Cloud Infrastructure ガイド.
トラブルシューティング
- フランス語およびドイツ語のサイトが 404 秒を返すが、管理者が読み込まれる場合は、必ず 手順 6:ベース URL にストアコードを追加する.
- すべての URL が 404 秒を返す場合は、Web サーバーを再起動したことを確認してください。
- 管理者が正しく機能しない場合は、仮想ホストを正しく設定していることを確認してください。