환경 변수 사용 예

이 예제에서는 개발 시스템에서 공유, 시스템별 및 중요 값을 설정한 다음 공유 구성, config.php 및 PHP 환경 변수의 조합을 사용하여 프로덕션 시스템에서 모든 값을 설정하는 방법을 보여 줍니다.

이러한 구성 설정은 개발 시스템과 프로덕션 시스템 간에 공유할 수 있습니다.

스토어 > 설정 > 구성 > 일반 > 일반 ​의 VAT 번호 및 스토어 이름

이러한 구성 설정은 지정된 대로 시스템별로 다르거나 달라집니다.

  • 스토어 > 설정 > 구성 > 일반 > 연락처 ​에서 (중요)로 전자 메일 보내기
  • 스토어 > 설정 > 구성 > 고객 > 고객 구성 > 새 계정 옵션 만들기 ​의 기본 전자 메일 도메인(시스템별)

동일한 절차를 사용하여 다음 참조에서 설정을 구성할 수 있습니다.

시작하기 전에

시작하기 전에 개발, 빌드 및 프로덕션 시스템에 대한 필수 구성 요소에 설명된 대로 파일 시스템 권한 및 소유권을 설정합니다.

가정

이 항목에서는 프로덕션 시스템 구성을 수정하는 예를 제공합니다. 원하는 경우 다른 구성 옵션을 선택할 수 있습니다.

이 예에서는 다음과 같이 가정합니다.

  • Git 소스 제어 사용
  • 개발 시스템은 이름이 mconfig인 Git 원격 리포지토리에서 사용할 수 있습니다
  • Git 작업 분기 이름은 m2.2_deploy입니다.

1단계: 개발 시스템에서 구성 설정

개발 시스템에서 기본 로케일과 가중치 단위를 설정하려면 다음을 수행합니다.

  1. 관리자에 로그인합니다.

  2. 스토어 > 설정 > 구성 > 일반 > 일반 ​을 클릭합니다.

  3. 사용 가능한 웹 사이트가 두 개 이상 있는 경우 다음 그림과 같이 왼쪽 상단의 스토어 보기 목록을 사용하여 다른 웹 사이트로 전환하십시오.

    웹 사이트 전환

  4. 오른쪽 창에서 정보 저장 ​을 확장합니다.

  5. 필요한 경우 VAT 번호 필드 옆의 기본값 사용 확인란의 선택을 취소하십시오.

  6. 필드에 숫자를 입력합니다(예: 12345).

  7. 저장소 이름 필드에 값(예: My Store)을 입력하십시오.

  8. 구성 저장 ​을 클릭합니다.

  9. 다음 그림과 같이 보기 저장 목록을 사용하여 기본 구성 ​을 선택하십시오.

    기본 구성으로 전환

  10. 왼쪽 탐색의 일반 아래에서 연락처 ​를 클릭합니다.

  11. 전자 메일 보내기 필드 옆에 있는 기본 사용 확인란의 선택을 취소하십시오.

  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
    generated, pub/media 또는 pub/static 디렉터리에 대한 변경 내용을 소스 제어에 제출하지 마십시오. 빌드 시스템에서 이러한 파일을 생성합니다. 개발 시스템에는 프로덕션 시스템에서 사용할 준비가 되지 않은 코드, 테마 등이 있을 수 있습니다.
  4. app/etc/config.php에 대한 변경 내용을 소스 제어에만 체크 인합니다.

    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단계: 프로덕션 시스템 업데이트

프로세스의 마지막 단계는 프로덕션 시스템을 업데이트하는 것입니다. 다음 두 부분으로 수행해야 합니다.

  • 중요 및 시스템별 설정 업데이트
  • 공유 설정 업데이트

중요 및 시스템별 설정 업데이트

환경 변수를 사용하여 중요한 및 시스템별 설정을 설정하려면 다음을 알고 있어야 합니다.

  • 각 설정에 대한 범위

    1단계의 지침을 따랐을 경우, 전자 메일 전송 대상 범위는 전역(즉, 기본 구성 범위)이고 기본 전자 메일 도메인 범위는 웹 사이트입니다.

    기본 이메일 도메인 구성 값을 설정하려면 웹 사이트의 코드를 알고 있어야 합니다. 자세한 내용은 환경 변수를 사용하여 구성 설정을 재정의하십시오.

  • 각 설정에 대한 구성 경로

    이 예제에 사용된 구성 경로는 다음과 같습니다.

    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__이고 웹 사이트 범위의 경우 CONFIG__WEBSITES__<WEBSITE CODE>입니다.

<SYSTEM__VARIABLE__NAME>의 값을 찾으려면 구성 경로에서 각 / 문자를 두 개의 밑줄로 바꾸십시오.

변수 이름은 다음과 같습니다.

이름
구성 경로
변수 이름
이메일 발송 대상
contact/email/recipient_email
CONFIG__DEFAULT__CONTACT__EMAIL__RECIPIENT_EMAIL
기본 이메일 도메인
customer/create_account/email_domain
CONFIG__WEBSITES__BASE__CUSTOMER__CREATE_ACCOUNT__EMAIL_DOMAIN
INFO
이전 테이블에는 기본 전자 메일 도메인 구성 설정에 대한 샘플 웹 사이트 코드 BASE이(가) 있습니다. BASE을(를) 스토어에 적합한 웹 사이트 코드로 바꾸십시오.

환경 변수를 사용하여 변수 설정

다음 형식을 사용하여 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.php에서 cron_run을(를) false(으)로 설정하여 실행 중인 큐 작업자를 중지합니다.

    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. 왼쪽 상단의 스토어 보기 목록을 사용하여 다른 웹 사이트로 전환하십시오.

    개발 시스템에서 설정한 공유 구성 옵션은 다음과 유사하게 표시됩니다.

    프로덕션 시스템에서 설정을 확인

    note info
    INFO
    저장소 이름 필드는 웹 사이트 범위에서 편집할 수 있지만 기본 구성 범위로 전환하면 편집할 수 없습니다. 이는 개발 시스템에서 옵션을 설정하는 방법의 결과입니다. VAT 번호 ​의 값을 웹 사이트 범위에서 편집할 수 없습니다.
  4. 아직 수행하지 않았다면 기본 구성 범위로 전환합니다.

  5. 왼쪽 탐색의 일반 아래에서 연락처 ​를 클릭합니다.

    다음 그림과 같이 전자 메일 보내기 필드를 편집할 수 없습니다. 민감한 설정입니다.

    프로덕션 시스템에서 설정을 확인

  6. 왼쪽 창에서 고객 > 고객 구성 ​을 클릭합니다.

  7. 오른쪽 창에서 새 계정 옵션 만들기 ​를 확장합니다.

    기본 전자 메일 도메인 필드의 값은 다음과 같이 표시됩니다. 이는 시스템별 설정입니다.

    프로덕션 시스템에서 설정을 확인

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