環境変数の使用例
この例では、開発システムで共有されたシステム固有の値や機密の値を設定し、共有の設定変数、config.php
および PHP 環境変数を組み合わせて実稼動システムのすべての値を設定する方法を示します。
これらの設定は、開発システムと実稼動システムの間で共有できます。
ストア/設定/構成/一般/一般 の VAT 番号とストア名
以下に示すように、これらの設定は、システムに固有のものか機密のもののいずれかです。
- ストア/設定/設定/一般/連絡先 からの(機密)メール送信先
- ストア/設定/設定/顧客/顧客設定/新しいアカウントを作成オプションからのデフォルトのメールドメイン(システム固有)
同じ手順で、次のリファレンスの設定を構成できます。
始める前に
開始する前に、「開発、ビルド、実稼働システムの前提条件 で説明されているように、ファイルシステムの権限と所有権を設定しす。
前提
このトピックでは、実稼動システム設定を変更する例を示します。 必要に応じて、別の設定オプションを選択できます。
この例では、以下を想定しています。
- Git ソース管理を使用します
- 開発システムは、
mconfig
という名前の Git リモートリポジトリーで使用できます - Git 作業ブランチの名前は
m2.2_deploy
です。
手順 1:開発システムでの設定
開発システムでデフォルトのロケールと重み付け単位を設定するには:
-
管理者にログインします。
-
ストア/設定/設定/一般/一般 をクリックします。
-
複数の Web サイトを使用できる場合は、左上隅の ストア表示 リストを使用して、次の図に示すように別の Web サイトに切り替えます。
-
右側のペインで、「Store Information」を展開します。
-
必要に応じて、「VAT 番号 フィールドの横にある「デフォルトを使用 チェックボックスをオフにします。
-
フィールドに数値を入力します(例:
12345
)。 -
ストア名 フィールドに、値(
My Store
など)を入力します。 -
「設定を保存」をクリックします。
-
次の図に示すように、「ストア表示」リストを使用して デフォルト設定 を選択します。
-
左側のナビゲーションの一般で、連絡先 をクリックします。
-
「Send Emails To」フィールドの横にある「Use Default」チェックボックスをオフにします。
-
フィールドにメールアドレスを入力します。
-
「設定を保存」をクリックします。
-
左側のウィンドウで、顧客/顧客設定 をクリックします。
-
右側のウィンドウで、「新しいアカウントのオプションの作成 を展開し す。
-
デフォルトメールドメイン フィールドの横にある システム値を使用 チェックボックスをオフにします。
-
フィールドにドメイン名を入力します。
-
「設定を保存」をクリックします。
-
プロンプトが表示されたら、キャッシュをフラッシュします。
手順 2:設定を更新
管理者の設定を変更したので、この節で説明するように共有設定をファイルに書き込みます。
設定を更新するには:
-
ファイルシステムの所有者として開発システムにログインするか、所有者に切り替えます。
-
アプリケーションルートに移動し、dump コマンドを実行します。
code language-bash cd <Magento root dir> php bin/magento app:config:dump
例えば、Commerceが
/var/www/html/magento2
にインストールされている場合は、次のように入力します。code language-bash cd /var/www/html/magento2 php bin/magento app:config:dump
-
app/etc/config.php
が更新されたことを確認します。code language-bash git status
応答の例:
code language-none On branch m2.2_deploy Changed but not updated: (use "git add <file>..." to update what will be committed) (use "git checkout -- <file>..." to discard changes in working directory) modified: app/etc/config.php
note warning WARNING 変更をソース管理に対して generated
、pub/media
、またはpub/static
ディレクトリに送信 ない でください。 これらのファイルは、ビルドシステム上で生成します。 開発システムに、実稼動システムで使用する準備ができていないコードやテーマなどが含まれている可能性があります。 -
変更内容を「
app/etc/config.php
only to source control」にチェックインします。code language-bash git add app/etc/config.php && git commit -m "Updated shared configuration" && git push mconfig m2.2_deploy
app/etc/env.php
(システム固有の設定)は更新されましたが、ソース管理にチェックインしないでください。 実稼動システムでも、この手順の後半で同じ設定を作成します。
手順 3:ビルドシステムを更新しファイルを生成する
共有設定の変更をソース管理にコミットしたので、ビルドシステムでそれらの変更を取り込み、コードをコンパイルし、静的ファイルを生成できます。 最後の手順は、これらの変更を実稼動システムに取り込むことです。
ビルドシステムを更新するには:
-
ファイルシステムの所有者としてビルドシステムにログインします。
-
アプリケーションのルートディレクトリに移動します。
code language-bash cd <Magento root dir>
-
ソース管理から変更
app/etc/config.php
取り込みます。code language-bash git pull mconfig m2.2_deploy
-
コードをコンパイルします。
code language-bash bin/magento setup:di:compile
-
コードがコンパイルされたら、静的ビューファイルを生成します。
code language-bash bin/magento setup:static-content:deploy -f
-
ソース管理に対する変更を確認します。
code language-bash git add -A && git commit -m "Updated files on build system" && git push mconfig m2.2_deploy
手順 4:実稼動システムを更新する
プロセスの最後の手順は、実稼動システムを更新することです。 これは、次の 2 つの部分で行う必要があります。
- システム固有の機密情報の設定を更新する
- 共有設定を更新する
システム固有の機密情報の設定を更新する
環境変数を使用して機密性の高いシステム固有の設定を行うには、次の点を知っておく必要があります。
-
各設定の範囲
手順 1 の指示に従った場合、Send Emails To の範囲はグローバル (つまり、デフォルトの設定範囲)になり、Default Email Domain の範囲は web サイトになります。
デフォルトのメールドメイン設定値を設定するには、web サイトのコードを把握している必要があります。 設定を見つける方法について詳しくは、 環境変数を設定を上書きするを参照してください。
-
各設定の設定パス
この例で使用される設定パスを次に示します。
table 0-row-2 1-row-2 2-row-2 設定名 設定パス Send Emails To contact/email/recipient_email
デフォルトのメールドメイン customer/create_account/email_domain
すべての機密およびシステム固有の設定パスについては、 機密およびシステム固有の設定パスのリファレンスを参照してください。
設定パスを変数名に変換
環境変数を使用して設定を上書きで説明しているように、変数の形式は次のとおりです。
<SCOPE>__<SYSTEM__VARIABLE__NAME>
<SCOPE>
の値は、グローバル範囲の場合は CONFIG__DEFAULT__
、web サイト範囲の場合は CONFIG__WEBSITES__<WEBSITE CODE>
です。
<SYSTEM__VARIABLE__NAME>
の値を検索するには、設定パスの各 /
文字を 2 つのアンダースコアで置き換えます。
変数名は次のようになります。
contact/email/recipient_email
CONFIG__DEFAULT__CONTACT__EMAIL__RECIPIENT_EMAIL
customer/create_account/email_domain
CONFIG__WEBSITES__BASE__CUSTOMER__CREATE_ACCOUNT__EMAIL_DOMAIN
BASE
が記載されています。 BASE
をストアに適した web サイトコードに置き換えます。環境変数を使用して変数を設定します
変数の値は、次の形式を使用して index.php
で設定できます。
$_ENV['VARIABLE'] = 'value';
変数値を設定するには:
-
ファイルシステムの所有者として実稼動システムにログインするか、所有者に切り替えます。
-
<Commerce root dir>/pub/index.php
をテキストエディターで開きます。 -
index.php
の任意の場所で、次のような変数の値を設定します。code language-php $_ENV['CONFIG__DEFAULT__CONTACT__EMAIL__RECIPIENT_EMAIL'] = 'myname@example.com'; $_ENV['CONFIG__WEBSITES__BASE__CUSTOMER__CREATE_ACCOUNT__EMAIL_DOMAIN'] = 'magento.com';
-
pub/index.php
への変更を保存し、テキストエディターを終了します。 -
次の節に進みます。
共有設定を更新する
ここでは、開発システムおよびビルドシステムで行ったすべての変更を取り込む方法について説明します。これにより、共有設定(ストア名と VAT 番号)が更新されます。
実稼動システムを更新するには:
-
ファイルシステムの所有者として、実稼動システムにログインします。
-
アプリケーションルートに変更し、メンテナンスモードを有効にします。
code language-bash cd <Magento root dir>
code language-bash bin/magento maintenance:enable
IP アドレスの許可リストを設定する機能など、その他のオプションについては、
magento maintenance:enable
を参照してください。 -
app/etc/env.php
でcron_run
をfalse
に設定して、実行中のキューワーカーをすべて停止します。code language-php?start_inline=1 'cron_consumers_runner' => [ 'cron_run' => false ]
-
設定を更新します。
code language-bash bin/magento app:config:import
-
最後に、アクティブなコンシューマープロセスを
kill
きます。code language-bash kill <PID>
PID
は、強制終了されるプロセス ID です(例:)。code language-bash kill 1234
-
ソース管理からコードを取り込みます。
code language-bash git pull mconfig m2.2_deploy
-
設定を更新します。
code language-bash bin/magento app:config:import
-
キャッシュをクリーンアップします。
code language-bash bin/magento cache:clean
-
メンテナンスモードを終了します。
code language-bash bin/magento maintenance:disable
管理者で設定を確認
この節では、実稼動システム管理者で設定を検証する方法について説明します。
設定を確認するには:
-
実稼動システムの管理者にログインします。
-
ストア/設定/設定/一般/一般 をクリックします。
-
左上隅の ストア表示 リストを使用して、別の web サイトに切り替えます。
開発システムで設定した共有設定オプションが、次のように表示されます。
note info INFO 「ストア名」フィールドは web サイトスコープで編集できますが、デフォルトの設定スコープに切り替えると編集できなくなります。 これは、開発システムでのオプションの設定方法の結果です。 VAT 番号 の値は、Web サイトの範囲では編集できません。 -
まだ行っていない場合は、デフォルト設定スコープに切り替えます。
-
左側のナビゲーションの一般で、連絡先 をクリックします。
次の図に示すように、「メールの送信先」フィールドは編集できません。 この設定は慎重に行う必要があります。
-
左側のウィンドウで、顧客/顧客設定 をクリックします。
-
右側のウィンドウで、「新しいアカウントのオプションの作成 を展開し す。
「デフォルトメールドメイン」フィールドの値が次のように表示されます。 これは、システム固有の設定です。