メンテナンスモードの有効化または無効化
次のガイドでは、標準メンテナンスモードのページについて説明しています。 カスタムメンテナンスページを使用する必要がある場合は、 カスタムメンテナンスページの作成を参照してください。
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 アドレスを除外するには、オプションを複数回使用します。
magento maintenance:disable
で --ip=<ip address>
を使用すると、後で使用するために 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']);
}
これは、URL に skin
パラメーターを追加する .htaccess
ファイルの書き換えルールに追加することもできます。
$_GET['skin'] パラメータ
skin
パラメーターを使用するには:
-
.maintenance.flag
が存在するかどうかを確認します。 -
HTTP_HOST
を参照するホストアドレスや、ENV 変数などのその他の変数に注意してください。 -
skin
パラメーターが存在するかどうかを確認します。 -
以下の書き換えルールを使用して、パラメーターを設定します。
次に、書き換えルールの例を示します。
- 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]
- RewriteCond
-
次のファイルをコピーします。
pub/errors/default/503.phtml
~pub/errors/sub/503.phtml
pub/errors/default/css/styles.css
~pub/errors/sub/styles.css
-
これらのファイルを編集して、
503.phtml
ファイルのコンテンツをローカライズし、styles.css
ファイルにカスタムスタイルを設定します。パスが
errors
ディレクトリを指していることを確認します。 ディレクトリ名は、RewriteRule
に示されている URL パラメーターと一致する必要があります。 前の例では、sub
ディレクトリが使用され、RewriteRule
でパラメーターとして指定されています(skin=sub
)。