PHP 설정

이 항목에서는 필요한 PHP 옵션을 설정하는 방법에 대해 설명합니다.

NOTE
최신 버전의 Adobe Commerce은 PHP 8.1 이상이 필요합니다. 지원되는 모든 PHP 버전에 대해서는 시스템 요구 사항을 참조하십시오.

클라우드 구성 지침은 클라우드 인프라의 Commerce 안내서에서 PHP 설정을 참조하십시오.

PHP 프로세스 제어

병렬 모드에서 인덱서를 실행하려면 먼저 PHP에서 프로세스 제어 지원(pcntl)을 사용하도록 설정해야 합니다. PHP 설명서에서 설치를 참조하십시오.

PHP가 설치되었는지 확인

PHP는 대부분의 Linux 배포판에 기본적으로 설치됩니다. 이 항목에서는 사용자가 이미 PHP를 설치했다고 가정합니다. PHP가 설치되어 있는지 확인하려면 명령줄에 다음을 입력합니다.

php -v

PHP가 설치되어 있으면 다음과 유사한 메시지가 표시됩니다.

PHP 8.1.2-1ubuntu2.14 (cli) (built: Aug 18 2023 11:41:11) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.1.2, Copyright (c) Zend Technologies
    with Zend OPcache v8.1.2-1ubuntu2.14, Copyright (c), by Zend Technologies

PHP가 설치되지 않은 경우(또는 업그레이드가 필요한 경우) Linux 배포판의 지침에 따라 설치합니다.

설치된 확장 확인

Adobe Commerce에는 특정 PHP 확장명이 필요합니다. 다음 목록은 각 Commerce 버전에 필요한 확장을 지정합니다. 이 목록은 각 버전의 최신 버전을 실행하는 배포에서 자동으로 생성됩니다.

Adobe Commerce에는 다음이 필요합니다.

  • ext-bcmath
  • ext-ctype
  • ext-curl
  • ext-dom
  • ext-fileinfo
  • ext-filter
  • ext-gd
  • ext-hash
  • ext-iconv
  • ext-intl
  • ext-json
  • ext-libxml
  • ext-mbstring
  • ext-openssl
  • ext-pcre
  • ext-pdo_mysql
  • ext-simplexml
  • ext-soap
  • ext-sockets
  • ext-sodium
  • ext-spl
  • ext-tokenizer
  • ext-xmlwriter
  • ext-xsl
  • ext-zip
  • ext-zlib
  • lib-libxml

Magento Open Source에 필요한 사항:

  • ext-bcmath
  • ext-ctype
  • ext-curl
  • ext-dom
  • ext-fileinfo
  • ext-filter
  • ext-gd
  • ext-hash
  • ext-iconv
  • ext-intl
  • ext-json
  • ext-libxml
  • ext-mbstring
  • ext-openssl
  • ext-pcre
  • ext-pdo_mysql
  • ext-simplexml
  • ext-soap
  • ext-sockets
  • ext-sodium
  • ext-tokenizer
  • ext-xmlwriter
  • ext-xsl
  • ext-zip
  • ext-zlib
  • lib-libxml

설치된 확장을 확인하려면:

  1. 설치된 모듈을 나열합니다.

    code language-bash
    php -m
    
  2. 필요한 확장이 모두 설치되었는지 확인합니다.

  3. PHP 설치에 사용되는 것과 동일한 워크플로를 사용하여 누락된 모듈을 추가합니다.

PHP 설정 확인

WARNING
PHP 7.4.20을 사용하는 경우 php.ini 파일에서 pcre.jit=0을(를) 설정합니다. CSS를 로드할 수 없는 PHP bug을(를) 알아봅니다.
  • PHP에 대한 시스템 시간대를 설정합니다. 그렇지 않으면 설치 중에 다음과 같은 오류가 표시되고 cron과 같은 시간 관련 작업이 작동하지 않을 수 있습니다.
PHP Warning:  date(): It is not safe to rely on the system's timezone settings. [more messages follow]
  • PHP 메모리 제한을 설정합니다.

    Adobe은 다음 사항을 권장합니다.

    • 코드 컴파일 또는 정적 자산 배포, 1G
    • 디버깅, 2G
    • 테스트 중, ~3-4G
  • PHP realpath_cache_sizerealpath_cache_ttl의 값을 권장 설정으로 늘립니다.

    code language-conf
    realpath_cache_size=10M
    realpath_cache_ttl=7200
    

    이러한 설정을 사용하면 PHP 프로세스가 페이지 로드 시 경로를 조회하는 대신 파일에 경로를 캐시할 수 있습니다. PHP 설명서에서 성능 조정을 참조하십시오.

  • Adobe Commerce 2.1 이상에 필요한 opcache.save_comments을(를) 사용하도록 설정합니다.

    Adobe 성능상의 이유로 PHP OPcache을(를) 사용하도록 설정하는 것이 좋습니다. OPcache는 많은 PHP 배포에서 사용할 수 있습니다.

    Adobe Commerce 2.1 이상 버전은 코드 생성에 PHP 코드 주석을 사용합니다.

NOTE
설치 및 업그레이드 중 문제가 발생하지 않도록 하기 위해, Adobe은 PHP 명령줄 구성과 PHP 웹 서버 플러그인 구성 모두에 동일한 PHP 설정을 적용할 것을 강력히 권장합니다. 자세한 내용은 다음 섹션을 참조하십시오.

PHP 구성 파일 찾기

이 섹션에서는 필요한 설정을 업데이트하는 데 필요한 구성 파일을 찾는 방법에 대해 설명합니다.

php.ini 구성 파일 찾기

웹 서버 구성을 찾으려면 웹 브라우저에서 phpinfo.php 파일을 실행하고 다음과 같이 Loaded Configuration File을(를) 찾으십시오.

PHP 정보 페이지

PHP 명령줄 구성을 찾으려면 다음을 입력합니다

php --ini | grep "Loaded Configuration File"
NOTE
php.ini 파일이 하나만 있는 경우 해당 파일을 변경하십시오. php.ini개 파일이 두 개 있는 경우 둘 다 ​개 파일을 변경하십시오. 이렇게 하지 않으면 예기치 않은 성능이 발생할 수 있습니다.

OPcache 구성 설정 찾기

PHP OPcache 설정은 일반적으로 php.ini 또는 opcache.ini에 있습니다. 위치는 운영 체제와 PHP 버전에 따라 달라질 수 있습니다. OPcache 구성 파일에 opcache 섹션이나 opcache.enable 같은 설정이 있을 수 있습니다.

다음 지침을 사용하여 찾습니다.

  • Apache 웹 서버:

    Apache가 있는 Ubuntu의 경우, OPcache 설정은 일반적으로 php.ini 파일에 있습니다.

    Apache 또는 nginx가 있는 CentOS의 경우 OPcache 설정은 일반적으로 /etc/php.d/opcache.ini에 있습니다.

    그렇지 않은 경우 다음 명령을 사용하여 찾습니다.

    code language-bash
    sudo find / -name 'opcache.ini'
    
  • nginx 웹 서버(PHP-FPM 포함): /etc/php/8.1/fpm/php.ini

opcache.ini이(가) 두 개 이상인 경우 모두 수정하십시오.

PHP 옵션을 설정하는 방법

PHP 옵션을 설정하려면 다음을 수행합니다.

  1. 텍스트 편집기에서 php.ini을(를) 엽니다.

  2. 사용 가능한 표준 시간대 설정에서 서버의 표준 시간대를 찾습니다

  3. 다음 설정을 찾아 필요한 경우 주석 처리를 제거합니다.

    code language-conf
    date.timezone =
    
  4. 2단계에서 찾은 시간대 설정을 추가합니다.

  5. memory_limit의 값을 이 섹션의 시작 부분에서 권장되는 값 중 하나로 변경합니다.

    For example,

    code language-conf
    memory_limit=2G
    
  6. 다음 값과 일치하도록 realpath_cache 구성을 추가하거나 업데이트하십시오.

    code language-conf
    ;
    ; Increase realpath cache size
    ;
    realpath_cache_size = 10M
    
    ;
    ; Increase realpath cache ttl
    ;
    realpath_cache_ttl = 7200
    
  7. 변경 사항을 저장하고 텍스트 편집기를 종료합니다.

  8. 다른 php.ini을(를) 열고 같은 변경 내용을 적용합니다.

OPcache 옵션 설정

opcache.ini 옵션을 설정하려면:

  1. 텍스트 편집기에서 OPcache 구성 파일을 엽니다.

    • opcache.ini(CentOS)
    • php.ini(Ubuntu)
    • /etc/php/8.1/fpm/php.ini(nginx 웹 서버(CentOS 또는 Ubuntu))
  2. opcache.save_comments을(를) 찾아 필요한 경우 주석 처리를 제거합니다.

  3. 해당 값이 1(으)로 설정되어 있는지 확인하십시오.

  4. 변경 사항을 저장하고 텍스트 편집기를 종료합니다.

  5. 웹 서버를 다시 시작합니다.

    • Apache, Ubuntu: service apache2 restart
    • Apache, CentOS: service httpd restart
    • nginx, Ubuntu 및 CentOS: service nginx restart

문제 해결

PHP 문제 해결에 대한 도움말은 다음 Adobe Commerce 지원 문서를 참조하십시오.

recommendation-more-help
0f8e7db5-0e9c-4002-a5b8-a0088077d995