このページは機械翻訳によるものです。内容の正確さは保証しておりません。 人力翻訳を依頼する

ECS インスタンスに Magento2 E コマース Web サイトを構築する

更新日時2025-03-03 02:39

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 サービスに動的コンテンツリクエストを転送するリバースプロキシとして機能するフロントエンドサーバーです。

前提条件

  1. Adobe Commerce Web サイトから Magento2 のアクセスキーペアを取得します。 次の図は、アクセスキーペアの例を示しています。 Adobe Commerce Web サイトから Magento2 のアクセスキーペアを取得する方法については、Adobe Commerce Web サイトをご覧ください。

    image

  2. パブリック IP アドレスが ECS インスタンスに自動的に割り当てられます。 あるいは、Elastic IP アドレス (EIP) が ECS インスタンスに関連付けられています。 パブリック帯域幅を有効にする方法については、「パブリック帯域幅を有効にする」をご参照ください。

  3. ECS インスタンスが属するセキュリティグループのインバウンドルールでポート 22 が開いています。 セキュリティグループルールの追加方法については、「セキュリティグループルールの追加」をご参照ください。

  4. Docker が ECS インスタンスにインストールされています。 Docker のインストール方法については、「Docker をインストールする」をご参照ください。

  5. LNMP スタック (Linux、NGINX、MySQL、および PHP) がデプロイされています。 LNMP スタックをデプロイする方法については、「LNMP スタックをデプロイする」トピックのLNMP スタックをデプロイする」セクションをご参照ください。

    説明
    • LNMP スタックは、NGINX 1.24、MySQL 8.0、および PHP 8.3 のソフトウェアバージョンを使用します。

    • 以下の手順でバージョン番号を確認し、変更してください。

手順

手順 1: PHP の依存関係をインストールする

  1. コア PHP パッケージと特定の拡張機能をインストールします。

    1. いくつかの拡張機能を含むコア 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
    2. 個別にインストールする必要がある特定の拡張機能をインストールします。

      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
    3. 変更を有効にするために Web サーバーを再起動します。

      sudo systemctl restart nginx
  2. php.ini ファイルを構成します。

    1. Vim エディターで php.ini ファイルを開きます。

      sudo vim /etc/php/8.3/fpm/php.ini
      sudo vim /etc/php/8.3/cli/php.ini
    2. php.ini ファイル内の以下のコンテンツを変更します。 その後、ファイルを保存して閉じます。

      memory_limit = 2G
      max_execution_time = 1800
      zlib.output_compression = On
    3. PHP FastCGI Process Manager (PHP-FPM) サービスを再起動します。

      sudo systemctl restart php8.3-fpm

手順 2: Magento2 データベースを作成する

  1. MySQL に接続します。

    mysql -u root -p

    パスワードの入力を求められたら、MySQL ルートユーザーのパスワードを入力します。

  2. データベースを作成および構成するために、以下の MySQL 文を順番に実行します。 この例では、magento という名前のデータベースが作成され、データベースにログインするために使用されるユーザー名は magento です。

    CREATE DATABASE magento;
    CREATE USER 'magento'@'localhost' IDENTIFIED BY 'magento';
    GRANT ALL PRIVILEGES ON magento.* TO 'magento'@'localhost';
    FLUSH PRIVILEGES;
    EXIT;
  3. データベースを確認します。

    mysql -u magento -p
    説明

    MySQL モニターが表示された場合は、データベースが作成されています。 エラーが表示された場合は、上記の MySQL 文をもう一度実行してください。

手順 3: OpenSearch をダウンロードしてインストールする

  1. Docker を使用して OpenSearch をインストールする前に、次の操作を実行します。

    1. ECS インスタンスで メモリページングスワッピング を無効にして、パフォーマンスを向上させます。

      sudo swapoff -a
    2. OpenSearch で使用可能なメモリマッピングの数を増やします。

      1. sysctl.conf ファイルを変更します。

        sudo vi /etc/sysctl.conf
      2. vm.max_map_count=262144 構成を追加します。

      3. 構成が追加されているかどうかを確認します。

        sudo sysctl -p
        cat /proc/sys/vm/max_map_count

        image

  2. Docker コンテナーで OpenSearch を実行します。

    1. OpenSearch イメージをプルします。

      sudo docker pull opensearchproject/opensearch:2
    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 が無効になっています。 ビジネスシナリオに基づいてパラメーターの値を変更してください。

    3. ポート 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/"
      }
  1. 実行中のすべてのコンテナーを表示し、テストしている OpenSearch ノードのコンテナー ID をコピーします。

    sudo docker container ls
  2. 検索エンジンの NGINX を構成します。

    1. グローバル /etc/nginx/nginx.conf ファイルに include /etc/nginx/conf.d/*.conf; 構成が含まれていることを確認します。 これにより、NGINX は /etc/nginx/conf.d/ ディレクトリ内のすべての .conf 構成ファイルをロードできます。

      vi /etc/nginx/nginx.conf

      image

    2. NGINX をプロキシとして構成します。

      1. Vim エディターを使用して、次のコンテンツを含むファイルを作成します。

        sudo vim /etc/nginx/conf.d/magento_es_auth.conf
        server {
           listen 8080;
           location /_cluster/health {
              proxy_pass http://localhost:9200/_cluster/health;
           }
        }
      2. NGINX を再起動します。

        sudo service nginx restart
      3. 次のコマンドを実行して、プロキシが想定どおりに動作するかどうかを確認します。

        sudo curl -u admin:admin -i http://localhost:8080/_cluster/health?pretty

        次のコマンド出力が返されます。

        image

手順 4: Composer をダウンロードしてインストールする

  1. 展開ツールをインストールします。

    Composer インストール パッケージからファイルを展開するには、unzip または p7zip 展開ツールをインストールする必要があります。展開ツールをインストールするには、次のコマンドのいずれかを実行します。

    sudo apt-get install unzip
    sudo apt-get install p7zip-full
  2. 次のコマンドを実行して、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');"
  3. composer.phar ファイルを次のコマンドで指定されたディレクトリに移動し、ファイルの名前を composer に変更します。 これにより、任意のディレクトリから Composer を起動できます。

    sudo mv composer.phar /usr/local/bin/composer
  4. Composer のバージョンを表示します。

    composer -version

手順 5: Magento2 をダウンロードしてインストールする

  1. Adobe Commerce Web サイトから取得した Magento2 のアクセスキーペアを使用して、エディタープロジェクトを作成します。 プロジェクト名を magento に設定します。

    cd /var/www/html/
    sudo composer create-project --repository-url=https://repo.magento.com/ magento/project-community-edition magento
  2. パスワードの入力を求められたら、身分認証キーを入力します。

    説明
    • 身分認証キーは、「前提条件」セクションで取得したアクセスキーペアの秘密鍵です。

    • Magento2 ソフトウェアパッケージのダウンロードには、5 分から 10 分かかります。

    image

  3. 読み取りおよび書き込み権限を構成します。

    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
  4. Magento2 をインストールします。

    CLI を使用して Magento2 をインストールする必要があります。 この例では、db-host パラメーターは localhost に設定され、db-namedb-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 \
  5. インストールが完了すると、次の図に示すコンテンツが表示されます。

    image

    [magento Admin URI] パラメーターは、管理者としてアクセスできる Uniform Resource Identifier (URI) を示します。 NGINX の構成が完了すると、管理者として URI を含む URL にアクセスできます。 例: http://47.****.**.72/admin_46i****

  6. 転送用の NGINX を構成します。

    1. Magento2 専用の magento.conf という名前のファイルを作成します。

      sudo vim /etc/nginx/conf.d/magento.conf
    2. 次のコードをコピーしてファイルに貼り付け、ファイルを保存して、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;
      }
      
    3. 構文が正しいかどうかを確認します。

      nginx -t
    4. NGINX を再起動します。

      sudo systemctl restart nginx

Magento2 Web サイトにアクセスする

  1. オンプレミスコンピューターで、ブラウザーのアドレスバーに http://<ECS インスタンスのパブリック IP アドレス> と入力します。 次のデフォルトホームページが表示されます。

    image

  2. オンプレミス コンピュータで、ブラウザのアドレスバーに http://<ECS インスタンスのパブリック IP アドレス>/admin_46i**** と入力します。表示されるログイン ページで、Magento2 のインストール時に指定したバックエンド ログイン アカウントのユーザー名admin)を入力します。Magento2 のインストール時に指定したバックエンド ログイン アカウントのパスワードadmin***)を入力します。

    image

FAQ

Q1: Magento2 ソフトウェアパッケージをダウンロードできない場合はどうすればよいですか?

問題を解決するには、イメージリポジトリを更新する必要があります。

image

  1. Composer に付属のイメージリポジトリを表示します。

    composer config -l -g

    image

  2. グローバルイメージリポジトリを変更します。

    sudo composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/

Q2: ドメイン名でどのような操作を実行できますか?

Web サイトを構築したいが、独自のドメイン名がない場合は、ドメイン名を購入します。 ドメイン名を購入した後、Web サイトが中国本土にある ECS インスタンスにデプロイされている場合は、ドメイン名のインターネットコンテンツプロバイダー (ICP) 登録を申請し、ドメイン名を ECS インスタンスのパブリック IP アドレスに解決します。 次の操作を実行します。

  • ドメイン名を購入する。

    Web サイトに一意のドメイン名を指定できます。 これにより、Web サイトにアクセスしたいユーザーは、複雑な IP アドレスではなく、覚えやすいドメイン名を使用できます。

    Alibaba Cloud からドメイン名を購入することをお勧めします。 詳細については、「Alibaba Cloud でドメイン名を登録する」をご参照ください。

  • ドメイン名の ICP 登録を申請する。

    中国本土にある ECS インスタンスにデプロイされた Web サイトに関連付けられているドメイン名の ICP 登録を申請します。 ドメイン名の ICP 登録番号を取得した後にのみ、Web サイトでサービスを提供できます。

  • ドメイン名を解決する。

    Alibaba Cloud DNS を使用して、ドメイン名を Web サイトがデプロイされている ECS インスタンスの IP アドレスに解決します。 これにより、ユーザーはドメイン名を使用して Web サイトにアクセスできます。 詳細については、「開始する」をご参照ください。

参考資料

  • 目次 (1, M)
  • 背景情報
  • 前提条件
  • 手順
  • 手順 1: PHP の依存関係をインストールする
  • 手順 2: Magento2 データベースを作成する
  • 手順 3: OpenSearch をダウンロードしてインストールする
  • 手順 4: Composer をダウンロードしてインストールする
  • 手順 5: Magento2 をダウンロードしてインストールする
  • Magento2 Web サイトにアクセスする
  • FAQ
  • 参考資料
フィードバック