メンテナンスモードを有効または無効にする

次のガイドでは、標準メンテナンスモードページについて説明します。 カスタムメンテナンスページを使用する必要がある場合は、​ カスタムメンテナンスページの作成 トピックを参照してください。

Adobe Commerceでは、​ メンテナンスモード ​を使用してブートストラップを無効にします。 ブートストラップを無効にすると、サイトの保守、アップグレード、再設定を行う際に役立ちます。

アプリケーションは、次のようにメンテナンスモードを検出します。

  • var/.maintenance.flagが存在する場合、メンテナンスモードは有効になっており、アプリケーションは503 メンテナンスページを返します。
  • var/.maintenance.ipが存在し、クライアント IPがこのファイル内のIP アドレスエントリのいずれかに対応する場合、メンテナンスページはリクエストに対して無視されます。

アプリケーションのインストール

このコマンドを使用してメンテナンスモードを有効または無効にする前に、​ アプリケーションをインストールする必要があります

メンテナンスモードを有効または無効にする

メンテナンスモードを有効または無効にするには、magento maintenance CLI コマンドを使用します。

コマンドの使用状況:

bin/magento maintenance:enable [--ip=<ip address> ... --ip=<ip address>] | [ip=none]
bin/magento maintenance:disable [--ip=<ip address> ... --ip=<ip address>] | [ip=none]
bin/magento maintenance:status

--ip=<ip address> オプションは、メンテナンスモードから除外するIP アドレスです(例えば、メンテナンスを行う開発者)。 同じコマンドで複数のIP アドレスを除外するには、オプションを複数回使用します。

NOTE
--ip=<ip address>magento maintenance:disableと共に使用すると、後で使用するためにIPのリストが保存されます。 除外IPのリストをクリアするには、magento maintenance:enable --ip=noneを使用するか、除外IP アドレスのリストを維持を参照してください。

bin/magento maintenance:status コマンドは、メンテナンスモードのステータスを表示します。

例えば、IP アドレスの除外なしでメンテナンスモードを有効にするには、次のようにします。

bin/magento maintenance:enable

192.0.2.10と192.0.2.11を除くすべてのクライアントでメンテナンスモードを有効にするには:

bin/magento maintenance:enable --ip=192.0.2.10 --ip=192.0.2.11

アプリケーションをメンテナンスモードにした後、すべてのメッセージキューコンシューマープロセスを停止する必要があります。
これらのプロセスを見つける方法の1つは、ps -ef | grep queue:consumers:start コマンドを実行してから、各コンシューマーに対してkill <process_id> コマンドを実行することです。 複数ノード環境で、各ノードでこのタスクを繰り返します。

除外IP アドレスのリストの管理

除外IP アドレスのリストを管理するには、上記のコマンドで[--ip=<ip list>] オプションを使用するか、次のいずれかを使用できます。

bin/magento maintenance:allow-ips <ip address> .. <ip address> [--none]

<ip address> .. <ip address>構文は、除外するIP アドレスのスペース区切りリストです(オプション)。

--none オプションはリストをクリアします。

複数店舗の設定

複数のストアを設定し、それぞれのストアに異なるレイアウトとローカライズされたコンテンツを設定する場合は、$_GET['skin'] パラメーターを目的のプロセッサーに渡します。

次の例では、ローカライズされたコンテンツを必要とする503 タイプのエラーテンプレートファイルを使用しています。

Error_Processor クラスのコンストラクターは、レイアウトを変更するためにskin GET パラメーターを受け入れます。

if (isset($_GET['skin'])) {
    $this->_setSkin($_GET['skin']);
}

これは、skin パラメーターをURLに追加する.htaccess ファイルの書き換えルールに追加することもできます。

$_GET[‘skin’] パラメーター

skin パラメーターを使用するには:

  1. .maintenance.flagが存在するかどうかを確認します。

  2. HTTP_HOST、またはENV変数などの他の変数を参照するホストアドレスに注意してください。

  3. skin パラメーターが存在するかどうかを確認します。

  4. 以下の書き換えルールを使用して、パラメーターを設定します。

    書き換えルールの例を次に示します。

    • RewriteCond %{DOCUMENT_ROOT}/var/.maintenance.flag -f
    • RewriteCond %{HTTP_HOST} ^sub.example.com$
    • RewriteCond %{QUERY_STRING} !(^|&)skin=sub(&|$) [NC]
    • RewriteRule ^ %{REQUEST_URI}?skin=sub [L]
  5. 次のファイルをコピーします。

    • pub/errors/default/503.phtmlpub/errors/sub/503.phtml
    • pub/errors/default/css/styles.csspub/errors/sub/styles.css
  6. これらのファイルを編集して、503.phtml ファイルのローカライズされたコンテンツとstyles.css ファイルのカスタム スタイル設定を提供します。

    パスがerrors ディレクトリを指していることを確認します。 ディレクトリ名は、RewriteRuleに示されているURL パラメーターと一致する必要があります。 前の例では、RewriteRuleskin=sub)のパラメーターとして指定されているsub ディレクトリが使用されています

NOTE
マルチストア設定の場合は、nginx設定を追加する必要があります。
recommendation-more-help
commerce-operations-help-installation