[オンプレミス]{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を設定します。 この推奨設定では、Commerce アプリケーションの機能とセキュリティの両方が保持されます。
PHP-FPMのインストールと設定
Adobe Commerceを適切に機能させるには、複数のPHP拡張機能が必要です。 これらの拡張機能に加えて、Nginxを使用している場合は、php-fpm拡張機能もインストールして設定する必要があります。
php-fpmをインストールして設定するには:
-
Adobe Commerce リリースでサポートされているPHP バージョンの
php-fpmおよびphp-cliパッケージをインストールします。 Ubuntuでは、パッケージ名は通常、次のパターンに従います。code language-bash apt-get -y install php<php-version>-fpm php<php-version>-clinote note NOTE <php-version>を、インストール中のAdobe Commerce リリースの必要システム構成に記載されているサポート対象のPHP マイナーバージョンに置き換えます。 次の手順では、ファイルパス、サービス名、ソケットパスで同じ値を使用します。 -
エディターで
php.iniファイルを開きます。code language-bash vim /etc/php/<php-version>/fpm/php.inicode language-bash vim /etc/php/<php-version>/cli/php.ini -
次の行に一致するように両方のファイルを編集します。
code language-conf memory_limit = 2G max_execution_time = 1800 zlib.output_compression = Onnote note NOTE Adobeでは、Adobe Commerceをテストする際に、メモリ制限を2 GBに設定することをお勧めします。 詳しくは、必要なPHP設定を参照してください。 -
エディターを保存して終了します。
-
php-fpmサービスを再起動します。code language-bash systemctl restart php<php-version>-fpm
MySQLのインストールと設定
詳しくは、MySQLを参照してください。
Adobe Commerceのインストール
Adobe Commerceは、次のような方法でダウンロードできます。
この例では、コマンドラインを使用したComposer ベースのインストールを示します。
-
ファイルシステムの所有者として、アプリケーションサーバーにログインします。
-
Web サーバーのdocroot ディレクトリまたは仮想ホストのdocrootとして設定したディレクトリに変更します。 この例では、Ubuntuのデフォルト
/var/www/htmlを使用しています。code language-bash cd /var/www/html -
Composerをグローバルにインストールします。 Adobe Commerceをインストールする前に、Composerで依存関係を更新する必要があります。
code language-bash curl -sS https://getcomposer.org/installer | sudo php -- --install-dir=/usr/bin --filename=composer -
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>プロンプトが表示されたら、認証キーを入力します。 公開鍵はユーザー名、秘密鍵はパスワードです。
-
アプリケーションをインストールする前に、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 . # Ubuntucode language-bash chmod u+x bin/magento -
コマンドライン からインストールします。 この例では、インストールディレクトリの名前が
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>=9200note note NOTE インストール中のAdobe Commerce リリースで必要な --search-engine値と一致するホスト/ポートオプションを使用します。 2.4.6より前のバージョンの場合は、elasticsearch7をElasticsearch 7またはOpenSearchの--elasticsearch-*オプションと共に使用します。 バージョン 2.4.6以降では、そのリリースでサポートされている検索エンジンの値と対応するCLI オプションを使用します。 -
開発者モードに切り替える:
code language-bash cd /var/www/html/magento2/bincode language-bash ./magento deploy:mode:set developer
Nginxの設定
Adobeでは、Commerce アプリケーションの機能とセキュリティの両方を維持するために、インストールディレクトリに用意されているnginx.conf.sample設定ファイルとNginx仮想ホスト設定を使用してNginxを設定することをお勧めします。
nginx.conf.sample ファイルは、必要なアプリケーションのルーティングとセキュリティ強化ルールを提供します。 例えば、サーバーにアップロードされる有害なスクリプトの実行を制限します。 このファイルを使用しない場合やルールを変更しない場合は、カスタム nginx設定に同等のセキュリティ制御を実装する責任があります。これらの手順では、/etc/nginx/sites-availableなどのNginx仮想ホストのUbuntuのデフォルトの場所と、/var/www/htmlなどのUbuntuのデフォルトのdocrootを使用していることを前提としています。 これらの場所は、環境に合わせて変更できます。
-
サイトの新しい仮想ホストを作成します。
code language-bash vim /etc/nginx/sites-available/magento -
次の設定を追加します。
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設定ファイルを指している必要があります。 -
www.magento-dev.comをドメイン名に置き換えます。 これは、Adobe Commerceのインストール時に指定したベース URLと一致する必要があります。 -
エディターを保存して終了します。
-
新しく作成した仮想ホストをアクティブ化するには、
/etc/nginx/sites-enabledディレクトリにシンボリックリンクを作成します。code language-bash ln -s /etc/nginx/sites-available/magento /etc/nginx/sites-enabled -
構文が正しいことを確認します。
code language-bash nginx -t -
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拡張機能もインストールして設定する必要があります。
-
php-fpmをインストール:code language-bash yum -y install <php-fpm-package> -
エディターで
/etc/php.iniファイルを開きます。note note NOTE インストール中のAdobe Commerce リリースでサポートされているPHP バージョンの php-fpmを提供するパッケージをインストールします。 パッケージ名は、リポジトリとオペレーティングシステムによって異なります。 必要システム構成を参照してください。 -
cgi.fix_pathinfo行のコメントを解除し、値を0に変更します。 -
次の行に一致するようにファイルを編集します。
code language-conf memory_limit = 2G max_execution_time = 1800 zlib.output_compression = Onnote note NOTE Adobeでは、Adobe Commerceをテストする際に、メモリ制限を2 GBに設定することをお勧めします。 詳しくは、必要なPHP設定を参照してください。 -
セッションパスディレクトリのコメントを解除し、パスを設定します。
code language-conf session.save_path = "/var/lib/php/session" -
エディターを保存して終了します。
-
エディターで
/etc/php-fpm.d/www.confを開きます。 -
次の行に一致するようにファイルを編集します。
code language-conf user = nginx group = nginx listen = /run/php-fpm/php-fpm.sock listen.owner = nginx listen.group = nginx listen.mode = 0660 -
環境行のコメントを解除:
code language-conf env[HOSTNAME] = $HOSTNAME env[PATH] = /usr/local/bin:/usr/bin:/bin env[TMP] = /tmp env[TMPDIR] = /tmp env[TEMP] = /tmp -
エディターを保存して終了します。
-
PHP セッション パスのディレクトリを作成し、所有者を
nginxユーザーとグループに変更します。code language-bash mkdir -p /var/lib/php/session/code language-bash chown -R nginx:nginx /var/lib/php/ -
PHP-FPM ソケットのディレクトリを作成し、所有者を
nginxユーザーとグループに変更します。code language-bash mkdir -p /run/php-fpm/code language-bash chown -R nginx:nginx /run/php-fpm/ -
php-fpmサービスを開始し、起動時に開始するように設定します。code language-bash systemctl start php-fpmcode language-bash systemctl enable php-fpm -
php-fpmサービスが実行されていることを確認します。code language-bash netstat -pl | grep php-fpm.sock
MySQLのインストールと設定
詳しくは、MySQLを参照してください。
Adobe Commerceのインストール
Adobe Commerceは、次のような方法でダウンロードできます。
この例では、コマンドラインを使用したComposer ベースのインストールを示します。
-
ファイルシステムの所有者として、アプリケーションサーバーにログインします。
-
Web サーバーのdocroot ディレクトリまたは仮想ホストのdocrootとして設定したディレクトリに変更します。 この例では、CentOSのデフォルト
/usr/share/nginx/htmlを使用します。code language-bash cd /usr/share/nginx/html -
Composerをグローバルにインストールします。 Adobe Commerceをインストールする前に、Composerで依存関係を更新する必要があります。
code language-bash curl -sS https://getcomposer.org/installer | sudo php -- --install-dir=/usr/bin --filename=composer -
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>プロンプトが表示されたら、認証キーを入力します。 公開鍵はユーザー名、秘密鍵はパスワードです。
-
アプリケーションをインストールする前に、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 . # CentOScode language-bash chmod u+x bin/magento -
コマンドライン からインストールします。 この例では、インストールディレクトリの名前が
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 -
開発者モードに切り替える:
code language-bash cd /usr/share/nginx/html/magento2/bincode language-bash ./magento deploy:mode:set developer
Nginxの設定
インストールディレクトリのnginx.conf.sample ファイルとNginx仮想ホスト設定を使用してNginxを設定することをお勧めします。
nginx.conf.sample ファイルは、必要なアプリケーションのルーティングとセキュリティ強化ルールを提供します。 例えば、サーバーにアップロードされる有害なスクリプトの実行を制限します。 このファイルを使用しない場合やルールを変更しない場合は、カスタム nginx設定に同等のセキュリティ制御を実装する責任があります。これらの手順では、/etc/nginx/conf.dなどのNginx仮想ホストのCentOSのデフォルトの場所と、/usr/share/nginx/htmlなどのデフォルトのdocrootを使用していることを前提としています。 これらの場所は、環境に合わせて変更できます。
-
サイトの新しい仮想ホストを作成します。
code language-bash vim /etc/nginx/conf.d/magento.conf -
次の設定を追加します。
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設定ファイルを指している必要があります。 -
www.magento-dev.comをドメイン名に置き換えます。 -
エディターを保存して終了します。
-
構文が正しいことを確認します。
code language-bash nginx -t -
Nginxを再起動します。
code language-bash systemctl restart nginx
SELinuxとfirewalldの設定
CentOS 7では、SELinuxがデフォルトで有効になっています。 次のコマンドを使用して、実行中であることを確認します。
sestatus
SELinuxとfirewalldを設定するには:
-
SELinux管理ツールをインストールします。
code language-bash yum -y install policycoreutils-python -
次のコマンドを実行して、インストールディレクトリのセキュリティコンテキストを変更します。
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/' -
firewalld パッケージをインストールします。
code language-bash yum -y install firewalld -
ファイアウォールサービスを起動し、起動時に起動するように設定します。
code language-bash systemctl start firewalldcode language-bash systemctl enable firewalld -
次のコマンドを実行して、HTTPおよびHTTPSのポートを開き、web ブラウザーからベース URLにアクセスできるようにします。
code language-bash firewall-cmd --permanent --add-service=httpcode language-bash firewall-cmd --permanent --add-service=httpscode language-bash firewall-cmd --reload
インストールの確認
インストールを確認するには、web ブラウザーを開き、サイトのベース URLに移動します。 詳細については、 インストールの確認を参照してください。