Configurações do PHP

Este tópico discute como definir as opções necessárias do PHP.

NOTE
A última versão do Adobe Commerce requer no mínimo o PHP 8.1. Consulte requisitos do sistema para todas as versões do PHP suportadas.

Para obter orientações sobre a configuração da nuvem, consulte configurações do PHP no guia Commerce na Infraestrutura da Nuvem.

Controle do processo PHP

Antes de executar indexadores no modo paralelo, você deve habilitar o suporte de Controle de Processo (pcntl) no PHP. Consulte Instalação na documentação do PHP.

Verificar se o PHP está instalado

O PHP é instalado por padrão na maioria das distribuições Linux. Este tópico assume que você já instalou o PHP. Para verificar se o PHP está instalado, digite o seguinte na linha de comando:

php -v

Se o PHP estiver instalado, uma mensagem similar à seguinte será exibida:

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

Se o PHP não estiver instalado (ou necessitar de uma atualização), instale-o seguindo as instruções para a sua distribuição Linux.

Verificar extensões instaladas

O Adobe Commerce requer determinadas extensões do PHP. As listas a seguir especificam as extensões necessárias para cada edição do Commerce. As listas são geradas automaticamente a partir de uma implantação que executa a versão mais recente de cada edição.

O Adobe Commerce exige:

  • 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

O Magento Open Source exige:

  • 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

Para verificar as extensões instaladas:

  1. Listar módulos instalados.

    code language-bash
    php -m
    
  2. Verifique se todas as extensões necessárias estão instaladas.

  3. Adicione quaisquer módulos ausentes usando o mesmo workflow usado para instalar o PHP.

Verificar configurações do PHP

WARNING
Se você estiver usando o PHP 7.4.20, defina pcre.jit=0 em seu arquivo php.ini. Isso contorna um bug do PHP que impede o carregamento do CSS.
  • Defina o fuso horário do sistema para o PHP; caso contrário, erros como o seguinte durante a instalação e operações relacionadas ao tempo como cron podem não funcionar:
PHP Warning:  date(): It is not safe to rely on the system's timezone settings. [more messages follow]
  • Defina o limite de memória do PHP.

    Adobe recomenda o seguinte:

    • Compilando código ou implantando ativos estáticos, 1G
    • Depurando, 2G
    • Testando, ~3-4G
  • Aumente os valores do PHP realpath_cache_size e realpath_cache_ttl para as configurações recomendadas:

    code language-conf
    realpath_cache_size=10M
    realpath_cache_ttl=7200
    

    Estas configurações permitem que processos PHP armazenem em cache caminhos para arquivos em vez de pesquisá-los no carregamento da página. Consulte Ajuste de desempenho na documentação do PHP.

  • Habilitar opcache.save_comments, que é necessário para o Adobe Commerce 2.1 e posterior.

    A Adobe recomenda ativar o PHP OPcache por motivos de desempenho. O OPcache está habilitado em muitas distribuições PHP.

    Adobe Commerce 2.1 e posteriores usam comentários de código PHP para geração de código.

NOTE
Para evitar problemas durante a instalação e o upgrade, o Adobe recomenda que você aplique as mesmas configurações do PHP tanto para a configuração da linha de comando do PHP quanto para a configuração do plug-in do servidor Web PHP. Para obter mais informações, consulte a próxima seção.

Localizar arquivos de configuração do PHP

Esta seção discute como você encontra os arquivos de configuração necessários para atualizar as configurações necessárias.

Localizar o arquivo de configuração php.ini

Para localizar a configuração do servidor Web, execute um phpinfo.php arquivo em seu navegador da Web e procure o Loaded Configuration File da seguinte maneira:

Página de informações do PHP

Para localizar a configuração da linha de comando do PHP, digite

php --ini | grep "Loaded Configuration File"
NOTE
Se você tiver apenas um arquivo php.ini, altere esse arquivo. Se você tiver dois arquivos php.ini, altere ambos arquivos. Se isso não for feito, o desempenho poderá ser imprevisível.

Localizar definições de configuração do OPcache

Normalmente, as configurações de OPcache do PHP estão localizadas em php.ini ou opcache.ini. A localização pode depender do seu sistema operacional e da versão do PHP. O arquivo de configuração OPcache pode ter uma seção opcache ou configurações como opcache.enable.

Use as diretrizes a seguir para encontrá-la:

  • Apache Web Server:

    Para o Ubuntu com Apache, as configurações do OPcache normalmente estão localizadas no arquivo php.ini.

    Para CentOS com Apache ou nginx, as configurações de OPcache normalmente estão localizadas em /etc/php.d/opcache.ini

    Caso contrário, use o seguinte comando para localizá-lo:

    code language-bash
    sudo find / -name 'opcache.ini'
    
  • servidor Web nginx com PHP-FPM: /etc/php/8.1/fpm/php.ini

Se você tiver mais de um opcache.ini, modifique todos eles.

Como definir opções do PHP

Para definir as opções do PHP:

  1. Abra um php.ini em um editor de texto.

  2. Localize o fuso horário do seu servidor nas configurações de fuso horário disponíveis

  3. Localize a seguinte configuração e remova o comentário dela se necessário:

    code language-conf
    date.timezone =
    
  4. Adicione a configuração de fuso horário encontrada na etapa 2.

  5. Altere o valor de memory_limit para um dos valores recomendados no início desta seção.

    Por exemplo,

    code language-conf
    memory_limit=2G
    
  6. Adicione ou atualize a configuração realpath_cache para corresponder aos seguintes valores:

    code language-conf
    ;
    ; Increase realpath cache size
    ;
    realpath_cache_size = 10M
    
    ;
    ; Increase realpath cache ttl
    ;
    realpath_cache_ttl = 7200
    
  7. Salve as alterações e saia do editor de texto.

  8. Abra o outro php.ini (se forem diferentes) e faça as mesmas alterações nele.

Definir opções de OPcache

Para definir opções de opcache.ini:

  1. Abra o arquivo de configuração do OPcache em um editor de texto:

    • opcache.ini (CentOS)
    • php.ini (Ubuntu)
    • /etc/php/8.1/fpm/php.ini (servidor Web nginx (CentOS ou Ubuntu))
  2. Localize opcache.save_comments e remova o comentário, se necessário.

  3. Verifique se o valor está definido como 1.

  4. Salve as alterações e saia do editor de texto.

  5. Reiniciar o servidor Web:

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

Solução de problemas

Consulte os seguintes artigos de suporte do Adobe Commerce para obter ajuda com a solução de problemas do PHP:

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