Concluir os pré-requisitos de atualização
É importante entender o que é necessário para executar o Adobe Commerce. Primeiro, você deve revisar o requisitos do sistema para a versão para a qual você pretende atualizar.
Depois de revisar os requisitos do sistema, você deve concluir os seguintes pré-requisitos antes de atualizar o sistema:
- Atualizar todo o software
- Verifique se há um mecanismo de pesquisa compatível instalado
- Converter formato de tabela de banco de dados
- Definir o limite de arquivos abertos
- Verifique se os trabalhos cron estão em execução
- Definir
DATA_CONVERTER_BATCH_SIZE
- Verificar permissões do sistema de arquivos
- Defina o
pub/
raiz do diretório - Instalar o plug-in de atualização do Composer
Atualizar todo o software
A variável requisitos do sistema descreva exatamente quais versões de software de terceiros foram testadas com as versões do Adobe Commerce.
Atualize todos os requisitos e dependências do sistema em seu ambiente. Consulte PHP 7.4, PHP 8.0, PHP 8.1, e configurações obrigatórias do PHP.
.magento.app.yaml
e services.yaml
arquivos e a versão do PHP no ticket. Pode levar até 48 horas para a equipe de infraestrutura da nuvem atualizar seu projeto. Consulte Software e serviços compatíveis.Verifique se há um mecanismo de pesquisa compatível instalado
A Adobe Commerce exige que o Elasticsearch ou o OpenSearch seja instalado para usar o software.
Se estiver atualizando de 2.3.x para 2.4, você deve verificar se está usando MySQL, Elasticsearch ou uma extensão de terceiros como mecanismo de pesquisa de catálogo na instância 2.3.x. O resultado determina o que você deve fazer antes atualização para 2.4.
Se estiver atualizando versões de patch nas linhas de versão 2.3.x ou 2.4.x, se o Elasticsearch 7.x já estiver instalado, você poderá, opcionalmente, migrar para OpenSearch.
Você pode usar a linha de comando ou o Administrador para determinar o mecanismo de pesquisa do catálogo:
-
Insira o
bin/magento config:show catalog/search/engine
comando. O comando retorna um valor demysql
,elasticsearch
(que indica que o Elasticsearch 2 está configurado),elasticsearch5
,elasticsearch6
,elasticsearch7
ou um valor personalizado, indicando que você instalou um mecanismo de pesquisa de terceiros. Para versões anteriores à 2.4.6, use oelasticsearch7
para o mecanismo Elasticsearch 7 ou OpenSearch. Para a versão 2.4.6 e posterior, use oopensearch
para o mecanismo OpenSearch. -
No Admin, verifique o valor do Stores > Settings > Configuration > Catalog > Catalog > Catalog Search > Search Engine campo.
As seções a seguir descrevem quais ações devem ser executadas antes da atualização para a versão 2.4.0.
MySQL
A partir da versão 2.4, o MySQL não é mais um mecanismo de pesquisa de catálogo compatível. Você deve instalar e configurar o Elasticsearch ou o OpenSearch antes da atualização. Use os seguintes recursos para ajudar a orientá-lo durante esse processo:
- Instalar e configurar o Elasticsearch
- Instalar o Elasticsearch
- Configurar nginx ou Apache para trabalhar com seu mecanismo de pesquisa
- Configurar o Commerce para usar o Elasticsearch e reindexar
Alguns mecanismos de pesquisa de catálogos de terceiros são executados sobre o mecanismo de pesquisa do Adobe Commerce. Entre em contato com seu fornecedor para determinar se você deve atualizar sua extensão.
MariaDB
A reindexação no MariaDB 10.4 e 10.6 leva mais tempo em comparação com as versões anteriores do MariaDB ou MySQL. Para acelerar a reindexação, recomendamos definir esses parâmetros de configuração do MariaDB:
Se ocorrer degradação de desempenho não relacionada à indexação após a atualização para o MariaDB 10.6, considere ativar o --query-cache-type
configuração. Por exemplo, --query-cache-type=ON
.
Antes de atualizar o Adobe Commerce em projetos de infraestrutura em nuvem, também pode ser necessário atualizar o MariaDB (consulte Práticas recomendadas de atualização do MariaDB).
Por exemplo:
- Adobe Commerce 2.4.6 com MariaDB versão 10.5.1 ou superior
- Adobe Commerce 2.3.5 com MariaDB versão 10.3 ou anterior
Além dessas recomendações, você deve consultar o administrador do banco de dados sobre a configuração dos seguintes parâmetros:
Mecanismo de pesquisa
Você deve instalar e configurar o Elasticsearch 7.6 ou superior ou o OpenSearch 1.2 antes de atualizar para a versão 2.4.0. O Adobe não suporta mais os Elasticsearch 2.x, 5.x e 6.x. Configuração do mecanismo de pesquisa no Guia de configuração descreve as tarefas que você deve executar após atualizar o Elasticsearch para uma versão suportada.
Consulte Atualizando o Elasticsearch para obter instruções completas sobre como fazer backup dos dados, detectar possíveis problemas de migração e testar atualizações antes de implantar na produção. Dependendo da sua versão atual do Elasticsearch, uma reinicialização completa do cluster pode ou não ser necessária.
O Elasticsearch exige o Java Development Kit (JDK) 1.8 ou superior. Consulte Instalar o Java Software Development Kit (JDK) para verificar qual versão do JDK está instalada.
OpenSearch
OpenSearch é uma bifurcação de código aberto do Elasticsearch 7.10.2, após a mudança de licenciamento do Elasticsearch. As seguintes versões do Adobe Commerce apresentam suporte para o OpenSearch:
- 2.4.6 (O OpenSearch tem um módulo e configurações separados)
- 2.4.5
- 2.4.4
- 2.4.3-p2
- 2.3.7-p3
Você pode migrar do Elasticsearch para o OpenSearch somente se estiver atualizando para uma versão do Adobe Commerce listada acima (ou superior).
OpenSearch requer JDK 1.8 ou superior. Consulte Instalar o Java Software Development Kit (JDK) para verificar qual versão do JDK está instalada.
Configuração do mecanismo de pesquisa A descreve as tarefas que você deve executar após alterar mecanismos de pesquisa.
Atualizar o Elasticsearch
O suporte para o Elasticsearch 8.x foi introduzido no Adobe Commerce 2.4.6. As instruções a seguir mostram um exemplo de atualização do Elasticsearch de 7.x para 8.x:
-
Atualize o servidor Elasticsearch 7.x para 8.x e certifique-se de que o esteja funcionando. Consulte a Documentação do Elasticsearch.
-
Ativar o
id_field_data
adicionando a seguinte configuração àelasticsearch.yml
e reiniciando o serviço Elasticsearch 8.x.code language-yaml indices: id_field_data: enabled: true
note info INFO Para suportar o Elasticsearch 8.x, o Adobe Commerce 2.4.6 não permite a indices.id_field_data
propriedade por padrão e usa a variável_id
no campodocvalue_fields
propriedade. -
No diretório raiz do seu projeto Adobe Commerce, atualize as dependências do Composer para remover o
Magento_Elasticsearch7
e instale oMagento_Elasticsearch8
módulo.code language-bash composer require magento/module-elasticsearch-8 --update-with-all-dependencies
-
Atualize os componentes do projeto.
code language-bash bin/magento setup:upgrade
-
Configurar Elasticsearch no Admin.
-
Reindexe o índice do catálogo.
code language-bash bin/magento indexer:reindex catalogsearch_fulltext
-
Excluir todos os itens dos tipos de cache ativados.
code language-bash bin/magento cache:clean
Elasticsearch de downgrade
Se você atualizar inadvertidamente a versão do Elasticsearch no servidor ou determinar que precisa fazer downgrade por qualquer outro motivo, também deverá atualizar as dependências do projeto do Adobe Commerce. Por exemplo, para fazer o downgrade do Elasticsearch 8.x para o 7.x
-
Faça o downgrade do servidor Elasticsearch 8.x para 7.x e certifique-se de que o esteja funcionando. Consulte a Documentação do Elasticsearch.
-
No diretório raiz do seu projeto Adobe Commerce, atualize as dependências do Composer para remover o
Magento_Elasticsearch8
módulo e suas dependências do Composer e instale oMagento_Elasticsearch7
módulo.code language-bash composer remove magento/module-elasticsearch-8
-
Atualize os componentes do projeto.
code language-bash bin/magento setup:upgrade
-
Configurar Elasticsearch no Admin.
-
Reindexe o índice do catálogo.
code language-bash bin/magento indexer:reindex catalogsearch_fulltext
-
Excluir todos os itens dos tipos de cache ativados.
code language-bash bin/magento cache:clean
Extensões de terceiros
Recomendamos que você entre em contato com o fornecedor do mecanismo de pesquisa para determinar se sua extensão é totalmente compatível com uma versão do Adobe Commerce.
Converter formato de tabela de banco de dados
Você deve converter o formato de todas as tabelas do banco de dados de COMPACT
para DYNAMIC
. Você também deve converter o tipo de mecanismo de armazenamento de MyISAM
para InnoDB
. Consulte práticas recomendadas.
Definir o limite de arquivos abertos
Definir o limite de arquivos abertos (ulimit) pode ajudar a evitar falhas de várias chamadas recursivas de sequências de consulta longas ou problemas com o uso de bin/magento setup:rollback
comando. Esse comando é diferente para shells UNIX diferentes. Consulte seu sabor individual para obter detalhes sobre o ulimit
comando.
O Adobe recomenda configurar os arquivos abertos ulimit para um valor de 65536
ou mais, mas você pode usar um valor maior, se necessário. Você pode definir o ulimit na linha de comando ou pode torná-lo uma configuração permanente para o shell do usuário.
Para definir o ulimit a partir da linha de comando:
-
Alterne para a proprietário do sistema de arquivos.
-
Defina o limite para
65536
.code language-bash ulimit -n 65536
Para definir o valor no seu shell Bash:
-
Alterne para a proprietário do sistema de arquivos.
-
Abertura
/home/<username>/.bashrc
em um editor de texto. -
Adicione a seguinte linha:
code language-bash ulimit -n 65536
-
Salve as alterações no
.bashrc
e saia do editor de texto.
pcre.recursion_limit
propriedade na php.ini
porque pode resultar em reversões incompletas sem aviso de falha.Verifique se os trabalhos cron estão em execução
O programador de tarefas do UNIX cron
é essencial para as operações diárias do Adobe Commerce. Ele agenda itens como reindexação, boletins informativos, emails e mapas de site. Vários recursos exigem pelo menos um trabalho cron em execução como proprietário do sistema de arquivos.
Para verificar se o trabalho cron está configurado corretamente, verifique o crontab inserindo o seguinte comando como proprietário do sistema de arquivos:
crontab -l
Resultados semelhantes aos seguintes devem ser exibidos:
#~ MAGENTO START c5f9e5ed71cceaabc4d4fd9b3e827a2b
* * * * * /usr/bin/php /var/www/html/magento2/bin/magento cron:run 2>&1 | grep -v "Ran jobs by schedule" >> /var/www/html/magento2/var/log/magento.cron.log
#~ MAGENTO END c5f9e5ed71cceaabc4d4fd9b3e827a2b
Outro sintoma de que o CRON não está sendo executado é o seguinte erro no Administrador:
Para ver o erro, clique em Mensagens do sistema na parte superior da janela, como a seguir:
Consulte Configurar e executar o cron para obter mais informações.
Definir DATA_CONVERTER_BATCH_SIZE
O Adobe Commerce 2.4 inclui aprimoramentos de segurança que exigem que alguns dados sejam convertidos de serializados para JSON. Essa conversão ocorre durante a atualização e pode levar muito tempo, dependendo da quantidade de dados no banco de dados.
As tabelas a seguir são as mais afetadas:
catalogrule
core_config_data
magento_reward_history
quote_payment
quote
sales_order_payment
sales_order
salesrule
url_rewrite
Se você tiver uma grande quantidade de dados, poderá melhorar o desempenho definindo o valor de uma variável de ambiente, DATA_CONVERTER_BATCH_SIZE
. Por padrão, o valor é definido como 50,000
.
Para definir a variável de ambiente:
-
Alterne para a proprietário do sistema de arquivos.
-
Defina a variável:
code language-bash export DATA_CONVERTER_BATCH_SIZE=100000
note note NOTE DATA_CONVERTER_BATCH_SIZE
exige memória; evite defini-la com um valor alto (aproximadamente 1 GB) sem testá-la primeiro. -
Após a conclusão da atualização, é possível desfazer a definição da variável:
code language-bash unset DATA_CONVERTER_BATCH_SIZE
Verificar permissões do sistema de arquivos
Por motivos de segurança, o Adobe Commerce exige determinadas permissões no sistema de arquivos. As permissões são diferentes de propriedade. A propriedade determina quem pode executar ações no sistema de arquivos; as permissões determinam o que o usuário pode fazer.
Os diretórios no sistema de arquivos devem ser graváveis pelo do proprietário do sistema de arquivos grupo.
Para verificar se as permissões do sistema de arquivos estão definidas corretamente, faça logon no servidor de aplicativos ou use o aplicativo gerenciador de arquivos do provedor de hospedagem.
Por exemplo, digite o seguinte comando se o aplicativo estiver instalado no /var/www/html/magento2
:
ls -l /var/www/html/magento2
Saída de exemplo:
total 1028
drwxrwx---. 12 magento_user apache 4096 Jun 7 07:55 .
drwxr-xr-x. 3 root root 4096 May 11 14:29 ..
drwxrwx---. 4 magento_user apache 4096 Jun 7 07:53 app
drwxrwx---. 2 magento_user apache 4096 Jun 7 07:53 bin
-rw-rw----. 1 magento_user apache 439792 Apr 27 21:23 CHANGELOG.md
-rw-rw----. 1 magento_user apache 3422 Apr 27 21:23 composer.json
-rw-rw----. 1 magento_user apache 425214 Apr 27 21:27 composer.lock
-rw-rw----. 1 magento_user apache 3425 Apr 27 21:23 CONTRIBUTING.md
-rw-rw----. 1 magento_user apache 10011 Apr 27 21:23 CONTRIBUTOR_LICENSE_AGREEMENT.html
-rw-rw----. 1 magento_user apache 631 Apr 27 21:23 COPYING.txt
drwxrwx---. 4 magento_user apache 4096 Jun 7 07:53 dev
-rw-rw----. 1 magento_user apache 2926 Apr 27 21:23 Gruntfile.js
-rw-rw----. 1 magento_user apache 7592 Apr 27 21:23 .htaccess
-rw-rw----. 1 magento_user apache 6419 Apr 27 21:23 .htaccess.sample
drwxrwx---. 4 magento_user apache 4096 Jun 7 07:53 lib
-rw-rw----. 1 magento_user apache 10376 Apr 27 21:23 LICENSE_AFL.txt
-rw-rw----. 1 magento_user apache 30634 Apr 27 21:23 LICENSE_EE.txt
-rw-rw----. 1 magento_user apache 10364 Apr 27 21:23 LICENSE.txt
-rw-rw----. 1 magento_user apache 4108 Apr 27 21:23 nginx.conf.sample
-rw-rw----. 1 magento_user apache 1427 Apr 27 21:23 package.json
-rw-rw----. 1 magento_user apache 1659 Apr 27 21:23 .php_cs
-rw-rw----. 1 magento_user apache 804 Apr 27 21:23 php.ini.sample
drwxrwx---. 2 magento_user apache 4096 Jun 7 07:53 phpserver
drwxrwx---. 6 magento_user apache 4096 Jun 7 07:53 pub
-rw-rw----. 1 magento_user apache 2207 Apr 27 21:23 README_EE.md
drwxrwx---. 7 magento_user apache 4096 Jun 7 07:53 setup
-rw-rw----. 1 magento_user apache 3731 Apr 27 21:23 .travis.yml
drwxrwx---. 7 magento_user apache 4096 Jun 7 07:53 update
drwxrws---. 11 magento_user apache 4096 Jun 13 16:05 var
drwxrws---. 29 magento_user apache 4096 Jun 7 07:53 vendor
Consulte o seguinte para obter uma explicação do exemplo de saída:
- A maioria dos arquivos é
-rw-rw----
, que é660
drwxrwx---
=770
-rw-rw-rw-
=666
- O proprietário do sistema de arquivos é
magento_user
Para obter informações mais detalhadas, você pode inserir o seguinte comando:
ls -la /var/www/html/magento2/pub
Como o Adobe Commerce implanta ativos de arquivos estáticos em subdiretórios de pub
, convém verificar as permissões e a propriedade nesse local também.
Para obter mais informações, consulte Permissões e propriedade do sistema de arquivos.
Defina o pub/
raiz do diretório
Consulte Modifique docroot para melhorar a segurança para obter mais detalhes.
Instalar o plug-in de atualização do Composer
A variável magento/composer-root-update-plugin
O plug-in do Composer resolve as alterações que devem ser feitas no projeto raiz composer.json
antes de atualizar para um novo requisito de produto.
O plug-in automatiza parcialmente a atualização manual, identificando e ajudando você a resolver conflitos de dependência em vez de exigir que você os identifique e corrija manualmente.
Para instalar o plugin:
-
Adicione o pacote ao
composer.json
arquivo.code language-bash composer require magento/composer-root-update-plugin ~2.0 --no-update
-
Atualize as dependências:
code language-bash composer update