環境変数の使用例
この例では、開発システムで共有、システム固有、および機密性の高い値を設定し、共有設定、config.php、およびPHP環境変数の組み合わせを使用して実稼動システムのすべての値を設定する方法を示します。
これらの設定設定は、開発システムと実稼動システムの間で共有できます。
VAT番号とストア名(Stores/設定/Configuration/一般/General)
これらの設定設定は、次に示すように、システム固有または機密性の高いものです。
- ストア/設定/設定/一般/連絡先から(機密)に電子メールを送信します
- ストア/設定/設定/顧客/顧客設定/新しいアカウントオプションの作成からのデフォルトの電子メールドメイン(システム固有)
同じ手順を使用して、次の参照の設定を行うことができます。
始める前に
開始する前に、開発、ビルド、および実稼動システムの前提条件で説明されているように、ファイルシステムの権限と所有権を設定します。
前提条件
このトピックでは、実稼動システムの設定を変更する例を示します。 必要に応じて、様々な設定オプションを選択できます。
この例では、次の要素を想定しています。
- Git ソースコントロールを使用します
- 開発システムは、
mconfigという名前のGit リモート リポジトリで利用できます - Git作業ブランチの名前は
m2.2_deployです
手順1:開発システムでの設定
開発システムでデフォルトのロケールとウェイトの単位を設定するには:
-
Adminにログインします。
-
ストア / 設定/構成 / 一般/一般をクリックします。
-
複数のweb サイトを利用できる場合は、左上隅のストアビュー リストを使用して、次の図に示すように別のweb サイトに切り替えます。
-
右側のペインで、ストア情報を展開します。
-
必要に応じて、VAT番号 フィールドの横にある「デフォルトを使用」チェックボックスをオフにします。
-
フィールドに数値を入力します(例:
12345)。 -
「ストア名」フィールドに、値(
My Storeなど)を入力します。 -
「設定を保存」をクリックします。
-
次の図に示すように、ストアビュー リストを使用して、デフォルト設定を選択します。
-
左側のナビゲーションの「一般」で、「連絡先」をクリックします。
-
「メールをに送信」フィールドの横にある「デフォルトを使用」チェックボックスをオフにします。
-
フィールドに電子メールアドレスを入力します。
-
「設定を保存」をクリックします。
-
左側のペインで、顧客/顧客設定をクリックします。
-
右側のペインで、新しいアカウントオプションを作成を展開します。
-
「デフォルトの電子メールドメイン」フィールドの横にある「システム値を使用」チェックボックスをオフにします。
-
フィールドにドメイン名を入力します。
-
「設定を保存」をクリックします。
-
プロンプトが表示されたら、キャッシュをフラッシュします。
手順2:設定の更新
管理者で設定を変更したので、この節で説明するように、共有設定をファイルに書き込みます。
設定を更新するには:
-
開発システムにファイルシステム所有者としてログインするか、ファイルシステム所有者に切り替えます。
-
アプリケーションのルートに移動し、dump コマンドを実行します。
code language-shell cd <Magento root dir> php bin/magento app:config:dump例えば、
/var/www/html/magento2にCommerceがインストールされている場合は、次のように入力します。code language-shell cd /var/www/html/magento2 php bin/magento app:config:dump -
app/etc/config.phpが更新されたことを確認してください。code language-shell git status回答サンプル:
code language-text 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.phpnote warning WARNING notは、 generated、pub/mediaまたはpub/staticディレクトリに変更を送信して、ソース管理に送信します。 それらのファイルをビルドシステムで生成します。 開発システムには、本番システムで使用する準備ができていないコードやテーマが含まれている可能性があります。 -
ソース管理に対してのみ
app/etc/config.phpへの変更をチェックインします。code language-shell 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-shell cd <Magento root dir> -
ソース コントロールから
app/etc/config.phpへの変更をプルします。code language-shell git pull mconfig m2.2_deploy -
コードをコンパイルします。
code language-shell bin/magento setup:di:compile -
コードをコンパイルしたら、静的ビューファイルを生成します。
code language-shell bin/magento setup:static-content:deploy -f -
ソースコントロールの変更を確認します。
code language-shell git add -A && git commit -m "Updated files on build system" && git push mconfig m2.2_deploy
手順4:実稼動システムの更新
このプロセスの最後のステップは、本番システムを更新することです。 次の2つの部分で行う必要があります。
- 機密性の高いシステム固有の設定を更新する
- 共有設定の更新
機密性の高いシステム固有の設定を更新する
環境変数を使用して機密性の高い設定とシステム固有の設定を設定するには、次の点を把握しておく必要があります。
-
各設定の範囲
手順1の手順に従った場合、メールの送信先の範囲はグローバル(つまり、デフォルトの設定スコープ)になり、デフォルトのメールドメインの範囲はweb サイトになります。
デフォルトのメールドメイン設定値を設定するには、web サイトのコードを知っている必要があります。 環境変数を見つける方法について詳しくは、環境変数を使用して構成設定を上書きするを参照してください。
-
各設定の設定パス
この例で使用される設定パスは次のとおりです。
table 0-row-2 1-row-2 2-row-2 設定名 設定パス メール送信先 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_emailCONFIG__DEFAULT__CONTACT__EMAIL__RECIPIENT_EMAILcustomer/create_account/email_domainCONFIG__WEBSITES__BASE__CUSTOMER__CREATE_ACCOUNT__EMAIL_DOMAINBASEがあります。 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-shell cd <Magento root dir>code language-shell bin/magento maintenance:enableIP アドレスのホワイトリストを設定する機能など、その他のオプションについては、
magento maintenance:enableを参照してください。 -
cron_runをapp/etc/env.phpのfalseに次のように設定して、実行中のキューワーカーを停止します。code language-php?start_inline=1 'cron_consumers_runner' => [ 'cron_run' => false ] -
設定を更新します。
code language-shell bin/magento app:config:import -
最後に、アクティブなコンシューマープロセスを
kill個まで追加します。code language-shell kill <PID>ここで、
PIDは破棄されるプロセス IDです。例:code language-shell kill 1234 -
ソース管理からコードを取得します。
code language-shell git pull mconfig m2.2_deploy -
設定を更新します。
code language-shell bin/magento app:config:import -
キャッシュをクリーニングします。
code language-shell bin/magento cache:clean -
メンテナンスモードを終了します。
code language-shell bin/magento maintenance:disable
管理者の構成設定の確認
この節では、実稼動システム管理者の設定設定を確認する方法について説明します。
構成設定を確認するには:
-
実稼動システムの管理者にログインします。
-
ストア / 設定/構成 / 一般/一般をクリックします。
-
左上隅のストアビュー リストを使用して、別のweb サイトに切り替えます。
開発システムで設定した共有設定オプションは、次のように表示されます。
note info INFO 「ストア名」フィールドはweb サイト スコープで編集可能ですが、「既定の構成」スコープに切り替えると、編集できません。 これは、開発システムでオプションを設定した結果です。 VAT番号の値は、web サイトの範囲で編集できません。 -
まだ行っていない場合は、デフォルトの設定スコープに切り替えます。
-
左側のナビゲーションの「一般」で、「連絡先」をクリックします。
次の図に示すように、メールをに送信フィールドは編集できません。 これは機密性の高い設定です。
-
左側のペインで、顧客/顧客設定をクリックします。
-
右側のペインで、新しいアカウントオプションを作成を展開します。
「デフォルトの電子メールドメイン」フィールドの値は、次のように表示されます。 これはシステム固有の設定です。