환경 변수 사용 예
이 예제에서는 개발 시스템에서 공유, 시스템별 및 중요 값을 설정한 다음 공유 구성, config.php
및 PHP 환경 변수의 조합을 사용하여 프로덕션 시스템에서 모든 값을 설정하는 방법을 보여 줍니다.
이러한 구성 설정은 개발 시스템과 프로덕션 시스템 간에 공유할 수 있습니다.
스토어 > 설정 > 구성 > 일반 > 일반 의 VAT 번호 및 스토어 이름
이러한 구성 설정은 지정된 대로 시스템별로 다르거나 달라집니다.
- 스토어 > 설정 > 구성 > 일반 > 연락처 에서 (중요)로 전자 메일 보내기
- 스토어 > 설정 > 구성 > 고객 > 고객 구성 > 새 계정 옵션 만들기 의 기본 전자 메일 도메인(시스템별)
동일한 절차를 사용하여 다음 참조에서 설정을 구성할 수 있습니다.
시작하기 전에
시작하기 전에 개발, 빌드 및 프로덕션 시스템에 대한 필수 구성 요소에 설명된 대로 파일 시스템 권한 및 소유권을 설정합니다.
가정
이 항목에서는 프로덕션 시스템 구성을 수정하는 예를 제공합니다. 원하는 경우 다른 구성 옵션을 선택할 수 있습니다.
이 예에서는 다음과 같이 가정합니다.
- Git 소스 제어 사용
- 개발 시스템은 이름이
mconfig
인 Git 원격 리포지토리에서 사용할 수 있습니다 - Git 작업 분기 이름은
m2.2_deploy
입니다.
1단계: 개발 시스템에서 구성 설정
개발 시스템에서 기본 로케일과 가중치 단위를 설정하려면 다음을 수행합니다.
-
관리자에 로그인합니다.
-
스토어 > 설정 > 구성 > 일반 > 일반 을 클릭합니다.
-
사용 가능한 웹 사이트가 두 개 이상 있는 경우 다음 그림과 같이 왼쪽 상단의 스토어 보기 목록을 사용하여 다른 웹 사이트로 전환하십시오.
-
오른쪽 창에서 정보 저장 을 확장합니다.
-
필요한 경우 VAT 번호 필드 옆의 기본값 사용 확인란의 선택을 취소하십시오.
-
필드에 숫자를 입력합니다(예:
12345
). -
저장소 이름 필드에 값(예:
My Store
)을 입력하십시오. -
구성 저장 을 클릭합니다.
-
다음 그림과 같이 보기 저장 목록을 사용하여 기본 구성 을 선택하십시오.
-
왼쪽 탐색의 일반 아래에서 연락처 를 클릭합니다.
-
전자 메일 보내기 필드 옆에 있는 기본 사용 확인란의 선택을 취소하십시오.
-
필드에 전자 메일 주소를 입력합니다.
-
구성 저장 을 클릭합니다.
-
왼쪽 창에서 고객 > 고객 구성 을 클릭합니다.
-
오른쪽 창에서 새 계정 옵션 만들기 를 확장합니다.
-
기본 전자 메일 도메인 필드 옆의 시스템 값 사용 확인란의 선택을 취소하십시오.
-
필드에 도메인 이름을 입력합니다.
-
구성 저장 을 클릭합니다.
-
메시지가 표시되면 캐시를 플러시합니다.
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
에 대한 변경 내용을 소스 제어에만 체크 인합니다.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단계: 프로덕션 시스템 업데이트
프로세스의 마지막 단계는 프로덕션 시스템을 업데이트하는 것입니다. 다음 두 부분으로 수행해야 합니다.
- 중요 및 시스템별 설정 업데이트
- 공유 설정 업데이트
중요 및 시스템별 설정 업데이트
환경 변수를 사용하여 중요한 및 시스템별 설정을 설정하려면 다음을 알고 있어야 합니다.
-
각 설정에 대한 범위
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
BASE
이(가) 있습니다. BASE
을(를) 스토어에 적합한 웹 사이트 코드로 바꾸십시오.환경 변수를 사용하여 변수 설정
다음 형식을 사용하여 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
관리에서 구성 설정 확인
이 섹션에서는 프로덕션 시스템 관리자에서 구성 설정을 확인하는 방법에 대해 설명합니다.
구성 설정을 확인하려면:
-
프로덕션 시스템의 관리자에 로그인합니다.
-
스토어 > 설정 > 구성 > 일반 > 일반 을 클릭합니다.
-
왼쪽 상단의 스토어 보기 목록을 사용하여 다른 웹 사이트로 전환하십시오.
개발 시스템에서 설정한 공유 구성 옵션은 다음과 유사하게 표시됩니다.
note info INFO 저장소 이름 필드는 웹 사이트 범위에서 편집할 수 있지만 기본 구성 범위로 전환하면 편집할 수 없습니다. 이는 개발 시스템에서 옵션을 설정하는 방법의 결과입니다. VAT 번호 의 값을 웹 사이트 범위에서 편집할 수 없습니다. -
아직 수행하지 않았다면 기본 구성 범위로 전환합니다.
-
왼쪽 탐색의 일반 아래에서 연락처 를 클릭합니다.
다음 그림과 같이 전자 메일 보내기 필드를 편집할 수 없습니다. 민감한 설정입니다.
-
왼쪽 창에서 고객 > 고객 구성 을 클릭합니다.
-
오른쪽 창에서 새 계정 옵션 만들기 를 확장합니다.
기본 전자 메일 도메인 필드의 값은 다음과 같이 표시됩니다. 이는 시스템별 설정입니다.