Magentoのはその代表的な機能の1つとして、1つのMagento環境を用いて複数のウェブサイトを分けて運用することができます。複数に分けたウェブサイトそれぞれに対し個別にドメイン名やFQDN※を定義することが可能です。
本記事では、下記のようなマルチサイト構成を例に具体的な設定を紹介します。なお、マルチサイトの場合、Magentoの管理画面の設定だけでなく、Webサーバ側の設定も必要となりますのでNginxを前提とした設定関係について併せてご紹介します。
※ FQDNとはFully Qualified Domain Name(フリー・クオリファイド・ドメイン・ネーム)の略で、完全修飾ドメイン名とも呼ばれる、ドメインとサブドメインを併せたインターネット上の住所のようなものです。ドメインがexample.comで、サブドメインがwwwの場合には、www.example.com
のように表記されますが、FQDNとなります。
Magentoの設定
ウェブサイト、ストア、ストアビューの作成
ウェブサイト、ストア、ストアビューの作成方法は、「Magentoの階層構造、スコープを理解する」の記事をご参照ください。
なお、マルチサイトの場合、コードの設定がWebサーバの設定に関連してくるため重要となります。
本記事の例では、下図のような設定となります。
ウェブサイト、ストアビューのURL設定
個別ドメインを適用するウェブサイト、ストアビューにFQDNを設定します。
- 1.管理画面を開き、「店舗」-「設定」-「設定」の順に選択します。
- 2.ストアビューにて「English」を選択します。
- 3.「全般」-「ウェブ」を選択し、ベース URLsを開きます。ベースURLのウェブサイトの設定を使用するのチェックを外し、適用するFQDNを入力します。
- 4.次にベース URL(セキュア)を開き、セキュアベースURLのウェブサイトの設定を使用するのチェックを外し、適用するFQDNを入力し、「設定を保存」を選択します。
- 5.ストアビューにて「French」を選択し、上記の手順3、手順4を同様に実施します。
Webサーバの設定(Nginx)
Nginxでの設定例は下記となります。マルチサイトの設定を行う場合に赤文字の部分が必要となってきます。
- Nginxの設定
-
upstream fastcgi_backend {
server unix:/var/run/php-fpm/php-fpm.sock;
}map $http_host $MAGE_RUN_CODE {
magento-demo.digital-free.net jp;
us.magento-demo.digital-free.net en;
magento-demo2.digital-free.net fr; #FQDNストアビューコード
}server {
listen 80;
server_name magento-demo.digital-free.net us.magento-demo.digital-free.net magento-demo2.digital-free.net;
set $MAGE_ROOT /var/www/<Magentoのインストールディレクトリ>;
include /var/www/<Magentoのインストールディレクトリ>/nginx.conf.sample; #サンプルのNginx用設定ファイル
} - Nginx用のサンプルファイル設定(設定対象箇所のみ抜粋)
-
# PHP entry point for main application
location ~ ^/(index|get|static|errors/report|errors/404|errors/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=756M \n max_execution_time=18000";
fastcgi_read_timeout 600s;
fastcgi_connect_timeout 600s;
fastcgi_param MAGE_RUN_TYPE store;
fastcgi_param MAGE_RUN_CODE $MAGE_RUN_CODE;fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
Nginxの設定箇所について、map $http_host $MAGE_RUN_CODE内にてFQDNとストアビューやウェブサイトで設定したコードを関連付けます。次にserver内にてserver_name FQDN1 FQDN2 ・・・という形で利用するFQDNを設定します。
Nginx用のサンプルファイル設定について、fastcgi_param MAGE_RUN_TYPEの設定としてwebsiteもしくはstoreを指定します。ストアビュー単位でマルチサイトにする場合はstore、ウェブサイト単位でマルチサイトにする場合はwebsiteと設定します。