環境変数の使用例

この例では、開発システムで共有されたシステム固有の値や機密の値を設定し、共有の設定変数、config.php および PHP 環境変数を組み合わせて実稼動システムのすべての値を設定する方法を示します。

これらの設定は、開発システムと実稼動システムの間で共有できます。

ストア/設定/構成/一般/一般 の VAT 番号とストア名

以下に示すように、これらの設定は、システムに固有のものか機密のもののいずれかです。

  • ストア/設定/設定/一般/連絡先 からの(機密)メール送信先
  • ストア/設定/設定/顧客/顧客設定/新しいアカウントを作成オプションからのデフォルトのメールドメイン(システム固有)

同じ手順で、次のリファレンスの設定を構成できます。

始める前に

開始する前に、「開発、ビルド、実稼働システムの前提条件 で説明されているように、ファイルシステムの権限と所有権を設定しす。

前提

このトピックでは、実稼動システム設定を変更する例を示します。 必要に応じて、別の設定オプションを選択できます。

この例では、以下を想定しています。

  • Git ソース管理を使用します
  • 開発システムは、mconfig という名前の Git リモートリポジトリーで使用できます
  • Git 作業ブランチの名前は m2.2_deploy です。

手順 1:開発システムでの設定

開発システムでデフォルトのロケールと重み付け単位を設定するには:

  1. 管理者にログインします。

  2. ストア/設定/設定/一般/一般 をクリックします。

  3. 複数の Web サイトを使用できる場合は、左上隅の ストア表示 リストを使用して、次の図に示すように別の Web サイトに切り替えます。

    Web サイトの切り替え

  4. 右側のペインで、「Store Information」を展開します。

  5. 必要に応じて、「VAT 番号 フィールドの横にある「デフォルトを使用 チェックボックスをオフにします。

  6. フィールドに数値を入力します(例:12345)。

  7. ストア名 フィールドに、値(My Store など)を入力します。

  8. 設定を保存」をクリックします。

  9. 次の図に示すように、「ストア表示」リストを使用して デフォルト設定 を選択します。

    デフォルト設定に切り替え

  10. 左側のナビゲーションの一般で、連絡先 をクリックします。

  11. Send Emails To」フィールドの横にある「Use Default」チェックボックスをオフにします。

  12. フィールドにメールアドレスを入力します。

  13. 設定を保存」をクリックします。

  14. 左側のウィンドウで、顧客/顧客設定 をクリックします。

  15. 右側のウィンドウで、「新しいアカウントのオプションの作成 を展開し す。

  16. デフォルトメールドメイン フィールドの横にある システム値を使用 チェックボックスをオフにします。

  17. フィールドにドメイン名を入力します。

  18. 設定を保存」をクリックします。

  19. プロンプトが表示されたら、キャッシュをフラッシュします。

手順 2:設定を更新

管理者の設定を変更したので、この節で説明するように共有設定をファイルに書き込みます。

設定を更新するには:

  1. ファイルシステムの所有者として開発システムにログインするか、所有者に切り替えます。

  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
    
  3. 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
    変更をソース管理に対して generatedpub/media、または pub/static ディレクトリに送信 ない でください。 これらのファイルは、ビルドシステム上で生成します。 開発システムに、実稼動システムで使用する準備ができていないコードやテーマなどが含まれている可能性があります。
  4. 変更内容を「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:ビルドシステムを更新しファイルを生成する

共有設定の変更をソース管理にコミットしたので、ビルドシステムでそれらの変更を取り込み、コードをコンパイルし、静的ファイルを生成できます。 最後の手順は、これらの変更を実稼動システムに取り込むことです。

ビルドシステムを更新するには:

  1. ファイルシステムの所有者としてビルドシステムにログインします。

  2. アプリケーションのルートディレクトリに移動します。

    code language-bash
    cd <Magento root dir>
    
  3. ソース管理から変更 app/etc/config.php 取り込みます。

    code language-bash
    git pull mconfig m2.2_deploy
    
  4. コードをコンパイルします。

    code language-bash
    bin/magento setup:di:compile
    
  5. コードがコンパイルされたら、静的ビューファイルを生成します。

    code language-bash
    bin/magento setup:static-content:deploy -f
    
  6. ソース管理に対する変更を確認します。

    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 つのアンダースコアで置き換えます。

変数名は次のようになります。

名前
設定パス
変数名
Send Emails To
contact/email/recipient_email
CONFIG__DEFAULT__CONTACT__EMAIL__RECIPIENT_EMAIL
デフォルトのメールドメイン
customer/create_account/email_domain
CONFIG__WEBSITES__BASE__CUSTOMER__CREATE_ACCOUNT__EMAIL_DOMAIN
INFO
上記の表には、デフォルトのメールドメイン設定用のサンプル web サイトコード BASE が記載されています。 BASE をストアに適した web サイトコードに置き換えます。

環境変数を使用して変数を設定します

変数の値は、次の形式を使用して index.php で設定できます。

$_ENV['VARIABLE'] = 'value';

変数値を設定するには:

  1. ファイルシステムの所有者として実稼動システムにログインするか、所有者に切り替えます。

  2. <Commerce root dir>/pub/index.php をテキストエディターで開きます。

  3. 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';
    
  4. pub/index.php への変更を保存し、テキストエディターを終了します。

  5. 次の節に進みます。

共有設定を更新する

ここでは、開発システムおよびビルドシステムで行ったすべての変更を取り込む方法について説明します。これにより、共有設定(ストア名と VAT 番号)が更新されます。

実稼動システムを更新するには:

  1. ファイルシステムの所有者として、実稼動システムにログインします。

  2. アプリケーションルートに変更し、メンテナンスモードを有効にします。

    code language-bash
    cd <Magento root dir>
    
    code language-bash
    bin/magento maintenance:enable
    

    IP アドレスの許可リストを設定する機能など、その他のオプションについては、magento maintenance:enable を参照してください。

  3. app/etc/env.phpcron_runfalse に設定して、実行中のキューワーカーをすべて停止します。

    code language-php?start_inline=1
    'cron_consumers_runner' => [
            'cron_run' => false
        ]
    
  4. 設定を更新します。

    code language-bash
    bin/magento app:config:import
    
  5. 最後に、アクティブなコンシューマープロセスを kill きます。

    code language-bash
    kill <PID>
    

    PID は、強制終了されるプロセス ID です(例:)。

    code language-bash
    kill 1234
    
  6. ソース管理からコードを取り込みます。

    code language-bash
    git pull mconfig m2.2_deploy
    
  7. 設定を更新します。

    code language-bash
    bin/magento app:config:import
    
  8. キャッシュをクリーンアップします。

    code language-bash
    bin/magento cache:clean
    
  9. メンテナンスモードを終了します。

    code language-bash
    bin/magento maintenance:disable
    

管理者で設定を確認

この節では、実稼動システム管理者で設定を検証する方法について説明します。

設定を確認するには:

  1. 実稼動システムの管理者にログインします。

  2. ストア/設定/設定/一般/一般 をクリックします。

  3. 左上隅の ストア表示 リストを使用して、別の web サイトに切り替えます。

    開発システムで設定した共有設定オプションが、次のように表示されます。

    実稼動システムでの設定の確認

    note info
    INFO
    ストア名」フィールドは web サイトスコープで編集できますが、デフォルトの設定スコープに切り替えると編集できなくなります。 これは、開発システムでのオプションの設定方法の結果です。 VAT 番号 の値は、Web サイトの範囲では編集できません。
  4. まだ行っていない場合は、デフォルト設定スコープに切り替えます。

  5. 左側のナビゲーションの一般で、連絡先 をクリックします。

    次の図に示すように、「メールの送信先」フィールドは編集できません。 この設定は慎重に行う必要があります。

    実稼動システムでの設定の確認

  6. 左側のウィンドウで、顧客/顧客設定 をクリックします。

  7. 右側のウィンドウで、「新しいアカウントのオプションの作成 を展開し す。

    デフォルトメールドメイン」フィールドの値が次のように表示されます。 これは、システム固有の設定です。

    実稼動システムでの設定の確認

recommendation-more-help
386822bd-e32c-40a8-81c2-ed90ad1e198c