[オンプレミス]{class="badge informative" title="Adobe Commerce オンプレミス プロジェクトにのみ適用されます。"}

オンプレミスのデプロイメント用にNginxをインストールする nginx

このガイドでは、Adobe Commerce オンプレミスのデプロイメント用にNginxをインストールし、Commerceに必要なNginx設定を設定する方法について説明します。 これには、UbuntuおよびCentOSのオペレーティングシステム固有の手順と、PHP-FPMの設定に関するガイダンスが含まれます。 Adobeでは、Commerce アプリケーションの機能とセキュリティの両方を保持するために、このガイドに記載されている設定手順に従うことをお勧めします。

Adobeは、お使いのAdobe Commerce リリースの必要システム構成に記載されているNginx バージョンをサポートしています。 サポートされているバージョンはリリースによって異なります。 Nginxでは、サポートされているPHP-FPM設定も必要です。 関連するPHP要件については、PHPを参照してください。

Ubuntuへのインストール

このセクションでは、Nginx、PHP、MySQLを使用してUbuntuにAdobe Commerceをインストールする方法を説明します。

Nginxのインストール

sudo apt -y install nginx

​ ソースからNginxをビルドすることもできます

次のセクションを完了してアプリケーションをインストールしたら、サンプル設定ファイルを使用してNginxを設定します。 この推奨設定では、Commerce アプリケーションの機能とセキュリティの両方が保持されます。

PHP-FPMのインストールと設定

Adobe Commerceを適切に機能させるには、複数のPHP拡張機能が必要です。 これらの拡張機能に加えて、Nginxを使用している場合は、php-fpm拡張機能もインストールして設定する必要があります。

php-fpmをインストールして設定するには:

  1. Adobe Commerce リリースでサポートされているPHP バージョンのphp-fpmおよびphp-cli パッケージをインストールします。 Ubuntuでは、パッケージ名は通常、次のパターンに従います。

    code language-bash
    apt-get -y install php<php-version>-fpm php<php-version>-cli
    
    note note
    NOTE
    <php-version>を、インストール中のAdobe Commerce リリースの必要システム構成に記載されているサポート対象のPHP マイナーバージョンに置き換えます。 次の手順では、ファイルパス、サービス名、ソケットパスで同じ値を使用します。
  2. エディターでphp.ini ファイルを開きます。

    code language-bash
    vim /etc/php/<php-version>/fpm/php.ini
    
    code language-bash
    vim /etc/php/<php-version>/cli/php.ini
    
  3. 次の行に一致するように両方のファイルを編集します。

    code language-conf
    memory_limit = 2G
    max_execution_time = 1800
    zlib.output_compression = On
    
    note note
    NOTE
    Adobeでは、Adobe Commerceをテストする際に、メモリ制限を2 GBに設定することをお勧めします。 詳しくは、必要なPHP設定を参照してください。
  4. エディターを保存して終了します。

  5. php-fpm サービスを再起動します。

    code language-bash
    systemctl restart php<php-version>-fpm
    

MySQLのインストールと設定

詳しくは、MySQLを参照してください。

Adobe Commerceのインストール

Adobe Commerceは、次のような方法でダウンロードできます。

この例では、コマンドラインを使用したComposer ベースのインストールを示します。

  1. ​ ファイルシステムの所有者として、アプリケーションサーバーにログインします。

  2. Web サーバーのdocroot ディレクトリまたは仮想ホストのdocrootとして設定したディレクトリに変更します。 この例では、Ubuntuのデフォルト /var/www/htmlを使用しています。

    code language-bash
    cd /var/www/html
    
  3. Composerをグローバルにインストールします。 Adobe Commerceをインストールする前に、Composerで依存関係を更新する必要があります。

    code language-bash
    curl -sS https://getcomposer.org/installer | sudo php -- --install-dir=/usr/bin --filename=composer
    
  4. Adobe Commerce メタパッケージを使用してComposer プロジェクトを作成します。

    Magento Open Source

    code language-bash
    composer create-project --repository=https://repo.magento.com/ magento/project-community-edition <install-directory-name>
    

    Adobe Commerce

    code language-bash
    composer create-project --repository=https://repo.magento.com/ magento/project-enterprise-edition <install-directory-name>
    

    プロンプトが表示されたら、認証キーを入力します。 公開鍵​はユーザー名、秘密鍵​はパスワードです。

  5. アプリケーションをインストールする前に、web サーバーグループの読み取り/書き込み権限を設定します。 これは、コマンドラインがファイルシステムにファイルを書き込めるようにするために必要です。

    code language-bash
    cd /var/www/html/<magento install directory>
    
    code language-bash
    find var generated vendor pub/static pub/media app/etc -type f -exec chmod g+w {} +
    
    code language-bash
    find var generated vendor pub/static pub/media app/etc -type d -exec chmod g+ws {} +
    
    code language-bash
    chown -R :www-data . # Ubuntu
    
    code language-bash
    chmod u+x bin/magento
    
  6. ​ コマンドライン ​からインストールします。 この例では、インストールディレクトリの名前がmagento2eeで、データベースホストが同じマシン (localhost)上にあることが前提としています。

    code language-bash
    bin/magento setup:install \
    --base-url=http://localhost/magento2ee \
    --db-host=localhost \
    --db-name=<db-name> \
    --db-user=<db-user> \
    --db-password=<db-password> \
    --backend-frontname=<backend-uri> \
    --admin-firstname=<admin-first-name> \
    --admin-lastname=<admin-last-name> \
    --admin-email=<admin-email> \
    --admin-user=<admin-user> \
    --admin-password=<admin-password> \
    --language=en_US \
    --currency=USD \
    --timezone=America/Chicago \
    --use-rewrites=1 \
    --search-engine=<search-engine-value> \
    --<search-engine-host-parameter>=search-host.example.com \
    --<search-engine-port-parameter>=9200
    
    note note
    NOTE
    インストール中のAdobe Commerce リリースで必要な--search-engine値と一致するホスト/ポートオプションを使用します。 2.4.6より前のバージョンの場合は、elasticsearch7をElasticsearch 7またはOpenSearchの--elasticsearch-* オプションと共に使用します。 バージョン 2.4.6以降では、そのリリースでサポートされている検索エンジンの値と対応するCLI オプションを使用します。
  7. 開発者モードに切り替える:

    code language-bash
    cd /var/www/html/magento2/bin
    
    code language-bash
    ./magento deploy:mode:set developer
    

Nginxの設定

Adobeでは、Commerce アプリケーションの機能とセキュリティの両方を維持するために、インストールディレクトリに用意されているnginx.conf.sample設定ファイルとNginx仮想ホスト設定を使用してNginxを設定することをお勧めします。

IMPORTANT
nginx.conf.sample ファイルは、必要なアプリケーションのルーティングとセキュリティ強化ルールを提供します。 例えば、サーバーにアップロードされる有害なスクリプトの実行を制限します。 このファイルを使用しない場合やルールを変更しない場合は、カスタム nginx設定に同等のセキュリティ制御を実装する責任があります。

これらの手順では、/etc/nginx/sites-availableなどのNginx仮想ホストのUbuntuのデフォルトの場所と、/var/www/htmlなどのUbuntuのデフォルトのdocrootを使用していることを前提としています。 これらの場所は、環境に合わせて変更できます。

  1. サイトの新しい仮想ホストを作成します。

    code language-bash
    vim /etc/nginx/sites-available/magento
    
  2. 次の設定を追加します。

    code language-conf
    upstream fastcgi_backend {
      server  unix:/run/php/php<php-version>-fpm.sock;
    }
    
    server {
    
      listen 80;
      server_name www.magento-dev.com;
      set $MAGE_ROOT /var/www/html/magento2;
      include /var/www/html/magento2/nginx.conf.sample;
    }
    
    note note
    NOTE
    include ディレクティブは、インストールディレクトリのサンプル nginx設定ファイルを指している必要があります。
  3. www.magento-dev.comをドメイン名に置き換えます。 これは、Adobe Commerceのインストール時に指定したベース URLと一致する必要があります。

  4. エディターを保存して終了します。

  5. 新しく作成した仮想ホストをアクティブ化するには、/etc/nginx/sites-enabled ディレクトリにシンボリックリンクを作成します。

    code language-bash
    ln -s /etc/nginx/sites-available/magento /etc/nginx/sites-enabled
    
  6. 構文が正しいことを確認します。

    code language-bash
    nginx -t
    
  7. Nginxを再起動します。

    code language-bash
    systemctl restart nginx
    

インストールの確認

インストールを確認するには、web ブラウザーを開き、サイトのベース URLに移動します。 詳細については、​ インストールの確認を参照してください。

CentOS 7へのインストール

このセクションでは、Nginx、PHP、MySQLを使用してCentOS 7にAdobe Commerceをインストールする方法を説明します。

Nginxのインストール

yum -y install epel-release
yum -y install nginx

インストールが完了したら、nginxを起動し、起動時に起動するように設定します。

systemctl start nginx
systemctl enable nginx

以下のセクションを完了してアプリケーションをインストールしたら、サンプル設定ファイルを使用してNginxを設定します。

PHP-FPMのインストールと設定

Adobe Commerceを適切に機能させるには、いくつかのPHP拡張機能が必要です。 これらの拡張機能に加えて、Nginxを使用している場合は、php-fpm拡張機能もインストールして設定する必要があります。

  1. php-fpmをインストール:

    code language-bash
    yum -y install <php-fpm-package>
    
  2. エディターで/etc/php.ini ファイルを開きます。

    note note
    NOTE
    インストール中のAdobe Commerce リリースでサポートされているPHP バージョンのphp-fpmを提供するパッケージをインストールします。 パッケージ名は、リポジトリとオペレーティングシステムによって異なります。 必要システム構成を参照してください。
  3. cgi.fix_pathinfo行のコメントを解除し、値を0に変更します。

  4. 次の行に一致するようにファイルを編集します。

    code language-conf
    memory_limit = 2G
    max_execution_time = 1800
    zlib.output_compression = On
    
    note note
    NOTE
    Adobeでは、Adobe Commerceをテストする際に、メモリ制限を2 GBに設定することをお勧めします。 詳しくは、必要なPHP設定を参照してください。
  5. セッションパスディレクトリのコメントを解除し、パスを設定します。

    code language-conf
    session.save_path = "/var/lib/php/session"
    
  6. エディターを保存して終了します。

  7. エディターで/etc/php-fpm.d/www.confを開きます。

  8. 次の行に一致するようにファイルを編集します。

    code language-conf
    user = nginx
    group = nginx
    listen = /run/php-fpm/php-fpm.sock
    listen.owner = nginx
    listen.group = nginx
    listen.mode = 0660
    
  9. 環境行のコメントを解除:

    code language-conf
    env[HOSTNAME] = $HOSTNAME
    env[PATH] = /usr/local/bin:/usr/bin:/bin
    env[TMP] = /tmp
    env[TMPDIR] = /tmp
    env[TEMP] = /tmp
    
  10. エディターを保存して終了します。

  11. PHP セッション パスのディレクトリを作成し、所有者をnginx ユーザーとグループに変更します。

    code language-bash
    mkdir -p /var/lib/php/session/
    
    code language-bash
    chown -R nginx:nginx /var/lib/php/
    
  12. PHP-FPM ソケットのディレクトリを作成し、所有者をnginx ユーザーとグループに変更します。

    code language-bash
    mkdir -p /run/php-fpm/
    
    code language-bash
    chown -R nginx:nginx /run/php-fpm/
    
  13. php-fpm サービスを開始し、起動時に開始するように設定します。

    code language-bash
    systemctl start php-fpm
    
    code language-bash
    systemctl enable php-fpm
    
  14. php-fpm サービスが実行されていることを確認します。

    code language-bash
    netstat -pl | grep php-fpm.sock
    

MySQLのインストールと設定

詳しくは、MySQLを参照してください。

Adobe Commerceのインストール

Adobe Commerceは、次のような方法でダウンロードできます。

この例では、コマンドラインを使用したComposer ベースのインストールを示します。

  1. ​ ファイルシステムの所有者として、アプリケーションサーバーにログインします。

  2. Web サーバーのdocroot ディレクトリまたは仮想ホストのdocrootとして設定したディレクトリに変更します。 この例では、CentOSのデフォルト /usr/share/nginx/htmlを使用します。

    code language-bash
    cd /usr/share/nginx/html
    
  3. Composerをグローバルにインストールします。 Adobe Commerceをインストールする前に、Composerで依存関係を更新する必要があります。

    code language-bash
    curl -sS https://getcomposer.org/installer | sudo php -- --install-dir=/usr/bin --filename=composer
    
  4. Adobe Commerce メタパッケージを使用してComposer プロジェクトを作成します。

    Magento Open Source

    code language-bash
    composer create-project --repository=https://repo.magento.com/ magento/project-community-edition <install-directory-name>
    

    Adobe Commerce

    code language-bash
    composer create-project --repository=https://repo.magento.com/ magento/project-enterprise-edition <install-directory-name>
    

    プロンプトが表示されたら、認証キーを入力します。 公開鍵​はユーザー名、秘密鍵​はパスワードです。

  5. アプリケーションをインストールする前に、web サーバーグループの読み取り/書き込み権限を設定します。 これは、コマンドラインがファイルシステムにファイルを書き込めるようにするために必要です。

    code language-bash
    cd /usr/share/nginx/html/<magento install directory>
    
    code language-bash
    find var generated vendor pub/static pub/media app/etc -type f -exec chmod g+w {} +
    
    code language-bash
    find var generated vendor pub/static pub/media app/etc -type d -exec chmod g+ws {} +
    
    code language-bash
    chown -R :nginx . # CentOS
    
    code language-bash
    chmod u+x bin/magento
    
  6. ​ コマンドライン ​からインストールします。 この例では、インストールディレクトリの名前がmagento2eeで、データベースホストが同じマシン (localhost)上にあることが前提としています。

    code language-bash
    bin/magento setup:install \
    --base-url=http://localhost/magento2ee \
    --db-host=localhost \
    --db-name=<db-name> \
    --db-user=<db-user> \
    --db-password=<db-password> \
    --backend-frontname=<backend-uri> \
    --admin-firstname=<admin-first-name> \
    --admin-lastname=<admin-last-name> \
    --admin-email=<admin-email> \
    --admin-user=<admin-user> \
    --admin-password=<admin-password> \
    --language=en_US \
    --currency=USD \
    --timezone=America/Chicago \
    --use-rewrites=1
    
  7. 開発者モードに切り替える:

    code language-bash
    cd /usr/share/nginx/html/magento2/bin
    
    code language-bash
    ./magento deploy:mode:set developer
    

Nginxの設定

インストールディレクトリのnginx.conf.sample ファイルとNginx仮想ホスト設定を使用してNginxを設定することをお勧めします。

IMPORTANT
nginx.conf.sample ファイルは、必要なアプリケーションのルーティングとセキュリティ強化ルールを提供します。 例えば、サーバーにアップロードされる有害なスクリプトの実行を制限します。 このファイルを使用しない場合やルールを変更しない場合は、カスタム nginx設定に同等のセキュリティ制御を実装する責任があります。

これらの手順では、/etc/nginx/conf.dなどのNginx仮想ホストのCentOSのデフォルトの場所と、/usr/share/nginx/htmlなどのデフォルトのdocrootを使用していることを前提としています。 これらの場所は、環境に合わせて変更できます。

  1. サイトの新しい仮想ホストを作成します。

    code language-bash
    vim /etc/nginx/conf.d/magento.conf
    
  2. 次の設定を追加します。

    code language-conf
    upstream fastcgi_backend {
      server  unix:/run/php-fpm/php-fpm.sock;
    }
    
    server {
    
      listen 80;
      server_name www.magento-dev.com;
      set $MAGE_ROOT /usr/share/nginx/html/magento2;
      include /usr/share/nginx/html/magento2/nginx.conf.sample;
    }
    
    note note
    NOTE
    include ディレクティブは、インストールディレクトリのサンプル nginx設定ファイルを指している必要があります。
  3. www.magento-dev.comをドメイン名に置き換えます。

  4. エディターを保存して終了します。

  5. 構文が正しいことを確認します。

    code language-bash
    nginx -t
    
  6. Nginxを再起動します。

    code language-bash
    systemctl restart nginx
    

SELinuxとfirewalldの設定

CentOS 7では、SELinuxがデフォルトで有効になっています。 次のコマンドを使用して、実行中であることを確認します。

sestatus

SELinuxとfirewalldを設定するには:

  1. SELinux管理ツールをインストールします。

    code language-bash
    yum -y install policycoreutils-python
    
  2. 次のコマンドを実行して、インストールディレクトリのセキュリティコンテキストを変更します。

    code language-bash
    semanage fcontext -a -t httpd_sys_rw_content_t '/usr/share/nginx/html/magento2/app/etc(/.*)?'
    
    code language-bash
    semanage fcontext -a -t httpd_sys_rw_content_t '/usr/share/nginx/html/magento2/var(/.*)?'
    
    code language-bash
    semanage fcontext -a -t httpd_sys_rw_content_t '/usr/share/nginx/html/magento2/pub/media(/.*)?'
    
    code language-bash
    semanage fcontext -a -t httpd_sys_rw_content_t '/usr/share/nginx/html/magento2/pub/static(/.*)?'
    
    code language-bash
    restorecon -Rv '/usr/share/nginx/html/magento2/'
    
  3. firewalld パッケージをインストールします。

    code language-bash
    yum -y install firewalld
    
  4. ファイアウォールサービスを起動し、起動時に起動するように設定します。

    code language-bash
    systemctl start firewalld
    
    code language-bash
    systemctl enable firewalld
    
  5. 次のコマンドを実行して、HTTPおよびHTTPSのポートを開き、web ブラウザーからベース URLにアクセスできるようにします。

    code language-bash
    firewall-cmd --permanent --add-service=http
    
    code language-bash
    firewall-cmd --permanent --add-service=https
    
    code language-bash
    firewall-cmd --reload
    

インストールの確認

インストールを確認するには、web ブラウザーを開き、サイトのベース URLに移動します。 詳細については、​ インストールの確認を参照してください。

recommendation-more-help
0f8e7db5-0e9c-4002-a5b8-a0088077d995