Magento2 は、強力なオープンソースの E コマースプラットフォームであり、複雑なオンラインストアの構築をサポートするための柔軟なアーキテクチャと豊富な機能を提供します。 Magento2 はパフォーマンスを最適化し、ユーザーエクスペリエンスを向上させ、管理操作を簡素化します。 Magento2 は、中小企業や大企業に適しています。 このトピックでは、Ubuntu を実行する Elastic Compute Service (ECS) インスタンスに Magento2 E コマース Web サイトを構築する方法について説明します。
Magento2 の詳細については、Adobe Commerce 公式 Web サイトをご覧ください。
背景情報
このトピックでは、以下の構成を持つ ECS インスタンスを使用します。
インスタンスタイプ: ecs.c7.large
オペレーティングシステム: Ubuntu 20.04 64 ビットパブリックイメージ
CPU: 2 vCPU
メモリ: 4 GiB
Magento2 サーバーを構築するには、選択したインスタンスタイプのメモリが 4 GiB 以上である必要があります。
このトピックでは、Magento2 公式 Web サイトに記載されているソフトウェアの依存関係に基づいて、以下のソフトウェアバージョンを使用する必要があります。
Composer 2.7: Composer は、Magento2 のコードライブラリと必要なすべてのサードパーティライブラリをインストールおよび管理するために使用されます。
OpenSearch 2.12: OpenSearch は、商品のクイック検索、フィルタリングオプション、関連性による並べ替えなど、商品検索機能を提供します。
MySQL 8.0: MySQL は、商品情報、注文、顧客情報など、すべてのビジネスデータを保存するために使用されます。
PHP 8.3: PHP は、すべての PHP コードロジックを実行し、データベースやその他のサービスと通信してデータを取得するために使用されます。
NGINX 1.24: NGINX は、静的ファイルリクエストを処理し、バックエンド PHP サービスに動的コンテンツリクエストを転送するリバースプロキシとして機能するフロントエンドサーバーです。
前提条件
Adobe Commerce Web サイトから Magento2 のアクセスキーペアを取得します。 次の図は、アクセスキーペアの例を示しています。 Adobe Commerce Web サイトから Magento2 のアクセスキーペアを取得する方法については、Adobe Commerce Web サイトをご覧ください。
パブリック IP アドレスが ECS インスタンスに自動的に割り当てられます。 あるいは、Elastic IP アドレス (EIP) が ECS インスタンスに関連付けられています。 パブリック帯域幅を有効にする方法については、「パブリック帯域幅を有効にする」をご参照ください。
ECS インスタンスが属するセキュリティグループのインバウンドルールでポート 22 が開いています。 セキュリティグループルールの追加方法については、「セキュリティグループルールの追加」をご参照ください。
Docker が ECS インスタンスにインストールされています。 Docker のインストール方法については、「Docker をインストールする」をご参照ください。
LNMP スタック (Linux、NGINX、MySQL、および PHP) がデプロイされています。 LNMP スタックをデプロイする方法については、「LNMP スタックをデプロイする」トピックのLNMP スタックをデプロイする」セクションをご参照ください。
LNMP スタックは、NGINX 1.24、MySQL 8.0、および PHP 8.3 のソフトウェアバージョンを使用します。
以下の手順でバージョン番号を確認し、変更してください。
手順
手順 1: PHP の依存関係をインストールする
コア PHP パッケージと特定の拡張機能をインストールします。
いくつかの拡張機能を含むコア PHP パッケージをインストールします。
sudo apt-get install php8.3-cli php8.3-common php8.3-fpm php8.3-mysql php8.3-zip php8.3-gd php8.3-curl php8.3-intl php8.3-mbstring php8.3-soap php8.3-xml php8.3-bcmath php8.3-sqlite3 php8.3-opcache
個別にインストールする必要がある特定の拡張機能をインストールします。
sudo apt-get install php8.3-bcmath php8.3-curl php8.3-gd php8.3-intl php8.3-mbstring php8.3-soap php8.3-xml php8.3-zip php8.3-sqlite3
変更を有効にするために Web サーバーを再起動します。
sudo systemctl restart nginx
php.ini ファイルを構成します。
Vim エディターで php.ini ファイルを開きます。
sudo vim /etc/php/8.3/fpm/php.ini sudo vim /etc/php/8.3/cli/php.ini
php.ini ファイル内の以下のコンテンツを変更します。 その後、ファイルを保存して閉じます。
memory_limit = 2G max_execution_time = 1800 zlib.output_compression = On
PHP FastCGI Process Manager (PHP-FPM) サービスを再起動します。
sudo systemctl restart php8.3-fpm
手順 2: Magento2 データベースを作成する
MySQL に接続します。
mysql -u root -p
パスワードの入力を求められたら、MySQL ルートユーザーのパスワードを入力します。
データベースを作成および構成するために、以下の MySQL 文を順番に実行します。 この例では、magento という名前のデータベースが作成され、データベースにログインするために使用されるユーザー名は magento です。
CREATE DATABASE magento; CREATE USER 'magento'@'localhost' IDENTIFIED BY 'magento'; GRANT ALL PRIVILEGES ON magento.* TO 'magento'@'localhost'; FLUSH PRIVILEGES; EXIT;
データベースを確認します。
mysql -u magento -p
MySQL モニターが表示された場合は、データベースが作成されています。 エラーが表示された場合は、上記の MySQL 文をもう一度実行してください。
手順 3: OpenSearch をダウンロードしてインストールする
Docker を使用して OpenSearch をインストールする前に、次の操作を実行します。
ECS インスタンスで メモリページング と スワッピング を無効にして、パフォーマンスを向上させます。
sudo swapoff -a
OpenSearch で使用可能なメモリマッピングの数を増やします。
sysctl.conf ファイルを変更します。
sudo vi /etc/sysctl.conf
vm.max_map_count=262144
構成を追加します。構成が追加されているかどうかを確認します。
sudo sysctl -p cat /proc/sys/vm/max_map_count
Docker コンテナーで OpenSearch を実行します。
OpenSearch イメージをプルします。
sudo docker pull opensearchproject/opensearch:2
Docker が想定どおりに動作するかどうかを確認するために、コンテナーに OpenSearch をデプロイします。
sudo docker run -d \ -p 9200:9200 \ -p 9600:9600 \ -e "discovery.type=single-node" \ -e "OPENSEARCH_INITIAL_ADMIN_PASSWORD=admin" \ -e "plugins.security.disabled=true" \ opensearchproject/opensearch:latest
この例では、
plugins.security.disabled
パラメーターがtrue
に設定されており、HTTP およびトランスポート層の SSL が無効になっています。 ビジネスシナリオに基づいてパラメーターの値を変更してください。ポート 9200 にリクエストを送信します。 デフォルトのユーザー名とパスワードは admin です。
sudo curl -k http://localhost:9200 -ku admin:admin
次のコマンド出力が返されます。
{ "name" : "a937e018****", "cluster_name" : "docker-cluster", "cluster_uuid" : "GLAjAG6bTeWE****_d-CLw", "version" : { "distribution" : "opensearch", "number" : <version>, "build_type" : <build-type>, "build_hash" : <build-hash>, "build_date" : <build-date>, "build_snapshot" : false, "lucene_version" : <lucene-version>, "minimum_wire_compatibility_version" : "7.10.0", "minimum_index_compatibility_version" : "7.0.0" }, "tagline" : "The OpenSearch Project: https://opensearch.org/" }
実行中のすべてのコンテナーを表示し、テストしている OpenSearch ノードのコンテナー ID をコピーします。
sudo docker container ls
検索エンジンの NGINX を構成します。
グローバル /etc/nginx/nginx.conf ファイルに
include /etc/nginx/conf.d/*.conf;
構成が含まれていることを確認します。 これにより、NGINX は /etc/nginx/conf.d/ ディレクトリ内のすべての .conf 構成ファイルをロードできます。vi /etc/nginx/nginx.conf
NGINX をプロキシとして構成します。
Vim エディターを使用して、次のコンテンツを含むファイルを作成します。
sudo vim /etc/nginx/conf.d/magento_es_auth.conf
server { listen 8080; location /_cluster/health { proxy_pass http://localhost:9200/_cluster/health; } }
NGINX を再起動します。
sudo service nginx restart
次のコマンドを実行して、プロキシが想定どおりに動作するかどうかを確認します。
sudo curl -u admin:admin -i http://localhost:8080/_cluster/health?pretty
次のコマンド出力が返されます。
手順 4: Composer をダウンロードしてインストールする
展開ツールをインストールします。
Composer インストール パッケージからファイルを展開するには、
unzip
またはp7zip
展開ツールをインストールする必要があります。展開ツールをインストールするには、次のコマンドのいずれかを実行します。sudo apt-get install unzip sudo apt-get install p7zip-full
次のコマンドを実行して、Composer をインストールします。
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" php -r "if (hash_file('sha384', 'composer-setup.php') === 'dac665fdc30fdd8ec78b38b9800061b4150413ff2e3b6f88543c636f7cd84f6db9189d43a81e5503cda447da73c7e5b6') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;" php composer-setup.php php -r "unlink('composer-setup.php');"
composer.phar
ファイルを次のコマンドで指定されたディレクトリに移動し、ファイルの名前を composer に変更します。 これにより、任意のディレクトリから Composer を起動できます。sudo mv composer.phar /usr/local/bin/composer
Composer のバージョンを表示します。
composer -version
手順 5: Magento2 をダウンロードしてインストールする
Adobe Commerce Web サイトから取得した Magento2 のアクセスキーペアを使用して、エディタープロジェクトを作成します。 プロジェクト名を magento に設定します。
cd /var/www/html/ sudo composer create-project --repository-url=https://repo.magento.com/ magento/project-community-edition magento
パスワードの入力を求められたら、身分認証キーを入力します。
身分認証キーは、「前提条件」セクションで取得したアクセスキーペアの秘密鍵です。
Magento2 ソフトウェアパッケージのダウンロードには、5 分から 10 分かかります。
読み取りおよび書き込み権限を構成します。
cd /var/www/html/magento find var generated vendor pub/static pub/media app/etc -type f -exec chmod g+w {} + find var generated vendor pub/static pub/media app/etc -type d -exec chmod g+ws {} + chown -R :www-data chmod u+x bin/magento
Magento2 をインストールします。
CLI を使用して Magento2 をインストールする必要があります。 この例では、
db-host
パラメーターは localhost に設定され、db-name
、db-user
、およびdb-password
パラメーターはmagento
に設定されています。sudo bin/magento setup:install \ --base-url=http://196.****.*.1/ \ # ECS インスタンスのパブリック IP アドレス。 --db-host=localhost \ # データベースのアドレス。 --db-name=magento \ # データベースの名前。 --db-user=magento \ # データベースにログインするために使用されるユーザー名。 --db-password=magento \ # データベースにログインするために使用されるパスワード。 --admin-firstname=admin \ # バックエンド管理者の名前。 --admin-lastname=admin \ --admin-email=cy****sper@email.com \ # 管理者のメールアドレス。 --admin-user=admin \ # バックエンドログインアカウントのユーザー名。 --admin-password=admin*** \ # バックエンドログインアカウントのパスワード。 --language=en_US \ # Web サイトの言語。 --currency=USD \ --timezone=America/Chicago \ --use-rewrites=1 \ --search-engine=opensearch \ --opensearch-host=localhost \ --opensearch-port=9200 \ --opensearch-enable-auth=1 \ --opensearch-username=admin \ --opensearch-password=admin \ --opensearch-index-prefix=magento2 \
インストールが完了すると、次の図に示すコンテンツが表示されます。
[magento Admin URI] パラメーターは、管理者としてアクセスできる Uniform Resource Identifier (URI) を示します。 NGINX の構成が完了すると、管理者として URI を含む URL にアクセスできます。 例:
http://47.****.**.72/admin_46i****
。転送用の NGINX を構成します。
Magento2 専用の magento.conf という名前のファイルを作成します。
sudo vim /etc/nginx/conf.d/magento.conf
次のコードをコピーしてファイルに貼り付け、ファイルを保存して、Vim エディターを終了します。
upstream fastcgi_backend { server unix:/run/php/php8.3-fpm.sock; } server { listen 80; server_name ip; set $MAGE_ROOT /var/www/html/magento; include /var/www/html/magento/nginx.conf.sample; }
構文が正しいかどうかを確認します。
nginx -t
NGINX を再起動します。
sudo systemctl restart nginx
Magento2 Web サイトにアクセスする
オンプレミスコンピューターで、ブラウザーのアドレスバーに
http://<ECS インスタンスのパブリック IP アドレス>
と入力します。 次のデフォルトホームページが表示されます。オンプレミス コンピュータで、ブラウザのアドレスバーに
http://<ECS インスタンスのパブリック IP アドレス>/admin_46i****
と入力します。表示されるログイン ページで、Magento2 のインストール時に指定したバックエンド ログイン アカウントのユーザー名(admin
)を入力します。Magento2 のインストール時に指定したバックエンド ログイン アカウントのパスワード(admin***
)を入力します。