eCommerce · 21 min read · Oct 20, 2025

Como Instalar Magento eCommerce no Ubuntu 22.04 com Nginx e Elasticsearch

Magento é uma plataforma de e-commerce de código aberto escrita em PHP. Foi adquirida pela Adobe em 2018 e foi nomeada Adobe eCommerce. Também é oferecida como um produto comercial e baseado em nuvem. Você pode usar o Magento para criar sites de compras profissionais de alta capacidade. Ele oferece tanto um modo de loja única quanto um modo de várias lojas. Vem com muitos módulos para estender sua funcionalidade.

Neste tutorial, instalaremos a edição comunitária de código aberto do Magento. Ele oferece toda a funcionalidade necessária para configurar uma loja online profissional. Também instalaremos o Elasticsearch para pesquisar no catálogo de produtos, Redis para o cache de sessão e arquivos, e serviremos usando o servidor Nginx.

Pré-requisitos

  • Um servidor rodando Ubuntu 22.04 com um mínimo de 2GB de RAM. Você pode precisar de mais RAM dependendo de suas necessidades.
  • Um usuário não-root com privilégios sudo.
  • Um nome de domínio totalmente qualificado (FQDN) para o servidor, magento.example.com
  • Certifique-se de que tudo esteja atualizado. $ sudo apt update $ sudo apt upgrade
  • Alguns pacotes que seu sistema precisa. $ sudo apt install wget curl nano software-properties-common dirmngr apt-transport-https gnupg2 ca-certificates lsb-release ubuntu-keyring unzip -y Alguns desses pacotes podem já estar instalados em seu sistema.

Passo 1 - Configurar o Firewall

O primeiro passo é configurar o firewall. O Ubuntu vem com o ufw (Uncomplicated Firewall) por padrão.

Verifique se o firewall está em execução.

$ sudo ufw status

Você deve obter a seguinte saída.

Status: inactive

Permita a porta SSH para que o firewall não interrompa a conexão atual ao ativá-lo.

$ sudo ufw allow OpenSSH

Permita também as portas HTTP e HTTPS.

$ sudo ufw allow http
$ sudo ufw allow https

Ative o Firewall

$ sudo ufw enable
Comando pode interromper conexões ssh existentes. Prosseguir com a operação (y|n)? y
Firewall está ativo e habilitado na inicialização do sistema

Verifique o status do firewall novamente.

$ sudo ufw status

Você deve ver uma saída semelhante.

Status: active

Para                         Ação      De
--                         ------      ----
OpenSSH                    ALLOW       Anywhere
80/tcp                     ALLOW       Anywhere
443                        ALLOW       Anywhere
OpenSSH (v6)               ALLOW       Anywhere (v6)
80/tcp (v6)                ALLOW       Anywhere (v6)
443 (v6)                   ALLOW       Anywhere (v6)

Passo 2 - Instalar PHP e suas extensões

O Ubuntu 22.04 vem com a versão PHP 8.1.2 que está um pouco desatualizada. Instalaremos a versão mais recente do PHP 8.2 usando o repositório PHP do Ondrej.

$ sudo add-apt-repository ppa:ondrej/php

Em seguida, instale o PHP e suas extensões necessárias para o Magento.

$ sudo apt install php8.2-fpm php8.2-mysql php8.2-bcmath php8.2-xml php8.2-zip php8.2-curl php8.2-mbstring php8.2-gd php8.2-tidy php8.2-intl php8.2-cli php8.2-soap php8.2-xsl libsodium-dev libsodium23 libssl-dev libcurl14-openssl-dev

Verifique a instalação.

$ php --version
PHP 8.2.5 (cli) (built: Apr 14 2023 04:27:02) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.2.5, Copyright (c) Zend Technologies
    with Zend OPcache v8.2.5, Copyright (c), by Zend Technologies

Passo 3 - Instalar o Composer

O Composer é uma ferramenta de gerenciamento de dependências para PHP e é necessária para a instalação do Magento.

Execute os seguintes comandos para baixar o binário do Composer. O Magento requer o Composer 2.2 LTS, então modificamos o comando de acordo.

$ php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
$ php composer-setup.php --2.2
$ php -r "unlink('composer-setup.php');"

Instale o Composer movendo o binário para o diretório /usr/local/bin.

$ sudo mv composer.phar /usr/local/bin/composer

Verifique a instalação verificando sua versão.

$ composer --version
Composer version 2.2.21 2023-02-15 13:07:40

Passo 4 - Instalar MySQL

O Ubuntu 22.04 vem com a versão mais recente do MySQL. Você pode instalá-lo com um único comando.

$ sudo apt install mysql-server

Verifique a versão do MySQL.

$ mysql --version
mysql  Ver 8.0.33-0ubuntu0.22.04.1 for Linux on x86_64 ((Ubuntu))

Este passo é necessário para versões do MySQL 8.0.28 e superiores. Entre no Shell do MySQL.

$ sudo mysql

Execute o seguinte comando para definir a senha para seu usuário root. Certifique-se de que tenha uma mistura de números, maiúsculas, minúsculas e caracteres especiais.

mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'YourPassword12!';

Saia do shell.

mysql> exit

Execute o script de instalação segura do MySQL.

$ sudo mysql_secure_installation

Primeiro, você será solicitado a inserir sua senha root. Digite-a. Em seguida, você será solicitado a instalar o Componente de Validação de Senha. Ele verifica a força das senhas usadas no MySQL. Pressione Y para instalá-lo. Em seguida, você será solicitado a definir o nível da política de validação de senha. Escolha 2 pois é a mais forte.

Proteger a implantação do servidor MySQL.

Digite a senha para o usuário root:

O COMPONENTE DE VALIDAÇÃO DE SENHA pode ser usado para testar senhas
e melhorar a segurança. Ele verifica a força da senha
e permite que os usuários definam apenas aquelas senhas que são
suficientemente seguras. Você gostaria de configurar o componente de VALIDAÇÃO DE SENHA?

Pressione y|Y para Sim, qualquer outra tecla para Não: Y

Existem três níveis de política de validação de senha:

BAIXO    Comprimento >= 8
MÉDIO Comprimento >= 8, numérico, maiúsculas, minúsculas e caracteres especiais
FORTE Comprimento >= 8, numérico, maiúsculas, minúsculas, caracteres especiais e dicionário                  arquivo

Por favor, insira 0 = BAIXO, 1 = MÉDIO e 2 = FORTE: 2
Usando a senha existente para root.

Força estimada da senha: 100

Em seguida, digite N para recusar a alteração da sua senha root. Além disso, digite Y para remover usuários anônimos, proibir logins remotos de root, remover o banco de dados de teste e recarregar as tabelas de privilégios.

Mudar a senha para root? ((Pressione y|Y para Sim, qualquer outra tecla para Não) : N

 ... pulando.
Por padrão, uma instalação do MySQL tem um usuário anônimo,
permitindo que qualquer um faça login no MySQL sem ter
uma conta de usuário criada para eles. Isso é destinado apenas para
teste, e para tornar a instalação um pouco mais suave.
Você deve removê-los antes de passar para um ambiente de produção.

Remover usuários anônimos? (Pressione y|Y para Sim, qualquer outra tecla para Não) : Y
Sucesso.

Normalmente, o root deve ser permitido apenas conectar-se de
'localhost'. Isso garante que alguém não possa adivinhar a
senha root pela rede.

Proibir login remoto de root? (Pressione y|Y para Sim, qualquer outra tecla para Não) : Y
Sucesso.

Por padrão, o MySQL vem com um banco de dados chamado 'teste' que
qualquer um pode acessar. Isso também é destinado apenas para teste,
e deve ser removido antes de passar para um ambiente de produção.

Remover banco de dados de teste e acesso a ele? (Pressione y|Y para Sim, qualquer outra tecla para Não) : Y
 - Removendo banco de dados de teste...
Sucesso.

 - Removendo privilégios no banco de dados de teste...
Sucesso.

Recarregar as tabelas de privilégios garantirá que todas as alterações
feitas até agora terão efeito imediato.

Recarregar tabelas de privilégios agora? (Pressione y|Y para Sim, qualquer outra tecla para Não) : Y
Sucesso.

Tudo pronto!

Passo 5 - Configurar MySQL

Faça login no shell do MySQL. Digite sua senha root quando solicitado.

$ sudo mysql -u root -p

Crie um banco de dados para o Magento.

mysql> CREATE DATABASE magento;

Crie uma conta de usuário SQL.

mysql> CREATE USER 'magentouser'@'localhost' IDENTIFIED BY 'Your_password2';

Conceda todos os privilégios no banco de dados ao usuário.

mysql> GRANT ALL PRIVILEGES ON magento.* TO 'magentouser'@'localhost';

Atualize os privilégios do usuário.

mysql> FLUSH PRIVILEGES;

Saia do shell.

mysql> exit

Passo 6 - Instalar Nginx

O Ubuntu 22.04 vem com uma versão mais antiga do Nginx. Para instalar a versão mais recente, você precisa baixar o repositório oficial do Nginx.

Importe a chave de assinatura do Nginx.

$ curl https://nginx.org/keys/nginx_signing.key | gpg --dearmor \
| sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null

Adicione o repositório para a versão estável do Nginx.

$ echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg arch=amd64] \
http://nginx.org/packages/ubuntu `lsb_release -cs` nginx" \
| sudo tee /etc/apt/sources.list.d/nginx.list

Atualize os repositórios do sistema.

$ sudo apt update

Instale o Nginx.

$ sudo apt install nginx

Verifique a instalação.

$ nginx -v
nginx version: nginx/1.24.0

Inicie o servidor Nginx.

$ sudo systemctl start nginx

Passo 7 - Instalar SSL

Precisamos instalar o Certbot para gerar o certificado SSL. Você pode instalar o Certbot usando o repositório do Ubuntu ou pegar a versão mais recente usando a ferramenta Snapd. Usaremos a versão Snapd.

O Ubuntu 22.04 vem com o Snapd instalado por padrão. Execute os seguintes comandos para garantir que sua versão do Snapd esteja atualizada.

$ sudo snap install core && sudo snap refresh core

Instale o Certbot.

$ sudo snap install --classic certbot

Use o seguinte comando para garantir que o comando Certbot possa ser executado criando um link simbólico para o diretório /usr/bin.

$ sudo ln -s /snap/bin/certbot /usr/bin/certbot

Execute o seguinte comando para gerar um Certificado SSL.

$ sudo certbot certonly --nginx --agree-tos --no-eff-email --staple-ocsp --preferred-challenges http -m [email protected] -d magento.example.com

O comando acima fará o download de um certificado para o diretório /etc/letsencrypt/live/magento.example.com em seu servidor.

Gere um certificado de grupo Diffie-Hellman.

$ sudo openssl dhparam -dsaparam -out /etc/ssl/certs/dhparam.pem 4096

Verifique o serviço do agendador de renovação do Certbot.

$ sudo systemctl list-timers

Você encontrará snap.certbot.renew.service como um dos serviços agendados para execução.

NEXT                        LEFT          LAST                        PASSED        UNIT                      ACTIVATES
.....
Dom 2023-02-26 06:32:00 UTC 9h left       Sáb 2023-02-25 18:04:05 UTC 2h 59min atrás  snap.certbot.renew.timer  snap.certbot.renew.service
Dom 2023-02-26 06:43:20 UTC 9h left       Sáb 2023-02-25 10:49:23 UTC 10h atrás       apt-daily-upgrade.timer   apt-daily-upgrade.service
Dom 2023-02-26 09:00:06 UTC 11h left      Sáb 2023-02-25 20:58:06 UTC 5min atrás      apt-daily.timer           apt-daily.service

Faça um teste do processo para verificar se a renovação do SSL está funcionando corretamente.

$ sudo certbot renew --dry-run

Se você não ver erros, está tudo pronto. Seu certificado será renovado automaticamente.

Passo 8 - Instalar Elasticsearch

O Elasticsearch é usado pelo Magento para pesquisas de produtos. Instalaremos o Elasticsearch 7.x usando seu repositório oficial, pois é a versão que é compatível com o Magento.

Importe a chave GPG do Elasticsearch.

$ wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo gpg --dearmor -o /usr/share/keyrings/elasticsearch-keyring.gpg

Adicione o repositório do Elasticsearch.

$ echo "deb [signed-by=/usr/share/keyrings/elasticsearch-keyring.gpg] https://artifacts.elastic.co/packages/7.x/apt stable main" | sudo tee /etc/apt/sources.list.d/elastic-7.x.list

Atualize a lista de repositórios do sistema.

$ sudo apt update

Instale o Elasticsearch.

$ sudo apt install elasticsearch

O Elasticsearch usa muita memória. Você precisa limitar seu uso dependendo do tamanho do seu servidor. Crie o arquivo /etc/elasticsearch/jvm.options.d/memory.options e abra-o para edição.

$ sudo nano /etc/elasticsearch/jvm.options.d/memory.options

Cole o seguinte código nele.

-Xms1g
-Xmx1g

Salve o arquivo pressionando Ctrl + X e digitando Y quando solicitado. Isso configura o Elasticsearch para usar 1GB de RAM. Você pode usar qualquer valor conforme necessário.

Inicie e habilite o serviço.

$ sudo systemctl enable elasticsearch --now

Verifique se o Elasticsearch está funcionando.

$ curl http://localhost:9200

Você deve ver a seguinte saída.

{
  "name" : "magento",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "6yks8tZ6T4GskIwWoXuSLA",
  "version" : {
    "number" : "7.17.10",
    "build_flavor" : "default",
    "build_type" : "deb",
    "build_hash" : "fecd68e3150eda0c307ab9a9d7557f5d5fd71349",
    "build_date" : "2023-04-23T05:33:18.138275597Z",
    "build_snapshot" : false,
    "lucene_version" : "8.11.1",
    "minimum_wire_compatibility_version" : "6.8.0",
    "minimum_index_compatibility_version" : "6.0.0-beta1"
  },
  "tagline" : "Você Sabe, para Pesquisa"
}

Passo 9 - Instalar o servidor Redis

O Magento usa o Redis para armazenamento de sessão e cache. É totalmente opcional e você pode usar o banco de dados para armazenamento de sessão. Mas o Redis faz um trabalho melhor. A versão mais recente do Magento funciona com o Redis 7.0. O Ubuntu vem com o Redis 6.0, então usaremos o repositório do Redis para instalação.

Importe a chave GPG oficial do Redis.

$ curl -fsSL https://packages.redis.io/gpg | sudo gpg --dearmor -o /usr/share/keyrings/redis-archive-keyring.gpg

Adicione o repositório APT à sua lista de fontes.

$ echo "deb [signed-by=/usr/share/keyrings/redis-archive-keyring.gpg] https://packages.redis.io/deb $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/redis.list

Atualize a lista de repositórios do sistema.

$ sudo apt update

Emita o seguinte comando para instalar o servidor Redis.

$ sudo apt install redis

Confirme a versão do Redis.

$ redis-server -v
Redis server v=7.0.11 sha=00000000:0 malloc=jemalloc-5.2.1 bits=64 build=3af367a78d5e21e9

Vamos verificar a conexão do serviço usando o seguinte comando.

$ redis-cli

Você será transferido para o shell do Redis.

O primeiro passo é definir a senha para o usuário padrão do Redis. Substitua Your_Redis_Password por uma senha forte de sua escolha. Certifique-se de prefixar a senha com o caractere >.

127.0.0.1:6379> acl setuser default >Your_Redis_Password

Teste a Autenticação do Redis.

127.0.0.1:6379> AUTH Your_Redis_Password
OK

Envie um ping ao serviço.

127.0.0.1:6379> ping
PONG

Saia do serviço digitando exit.

Passo 10 - Baixar o Magento

Crie um diretório raiz da web para o Magento.

$ sudo mkdir /var/www/magento -p

Dê os direitos ao diretório do Magento para o usuário atual.

$ sudo chown $USER:$USER /var/www/magento/ -R

Mude para o diretório /var/www.

$ cd /var/www

Antes de prosseguirmos, você precisa das chaves de autenticação necessárias pelo repositório do Magento. Visite o site https://account.magento.com/ e você verá a seguinte página pedindo para você fazer login usando seu Adobe ID.

Página de Login do Adobe ID

Clique no botão Entrar com Adobe ID para chegar à seguinte página.

Página de Login do Magento Adobe

Se você tiver um Adobe ID, insira suas credenciais para continuar ou você pode criar uma conta aqui. Assim que você criar sua conta e fizer login, abra a URL https://marketplace.magento.com/customer/accessKeys/. Você também pode acessar esta página visitando seu perfil e clicando no link Chaves de Acesso.

Página de Chaves de Acesso do Perfil Adobe Magento

Clique no botão Criar uma Nova Chave de Acesso para criar sua chave de autenticação. Dê um nome à sua chave para identificação.

Chaves de Acesso do Magento

Anote tanto as chaves públicas quanto privadas para o próximo passo.

Crie o projeto Magento.

$ composer create-project --repository-url=https://repo.magento.com/ magento/project-community-edition magento

Você será solicitado a inserir o nome de usuário e a senha para o repositório. Use a chave pública como seu nome de usuário e a chave privada como sua senha. Você será perguntado se deseja armazenar as credenciais no diretório de configuração do Composer. Digite y para fazê-lo.

Criando um projeto "magento/project-community-edition" em "./magento"
    Autenticação necessária (repo.magento.com):
      Nome de usuário: 53211xxxxxxxxxxxxxxxxxxxxxxxxxxx
      Senha:
Você deseja armazenar credenciais para repo.magento.com em /home/navjot/.config/composer/auth.json ? [Yn] y
Instalando magento/project-community-edition (2.4.6)
  - Baixando magento/project-community-edition (2.4.6)
  - Instalando magento/project-community-edition (2.4.6): Extraindo arquivo
Projeto criado em /var/www/magento
Carregando repositórios do composer com informações de pacotes
Info from https://repo.packagist.org: #StandWithUkraine
Atualizando dependências
Operações de arquivo de bloqueio: 564 instalações, 0 atualizações, 0 remoções
  - Bloqueando 2tvenom/cborencode (1.0.2)
  - Bloqueando adobe-commerce/adobe-ims-metapackage (2.2.0)
...............................................

Execute os seguintes comandos para definir as permissões de arquivo e tornar o binário do Magento executável. Além disso, defina o proprietário do diretório do Magento para o usuário Nginx para que ele possa acessar o site.

$ cd /var/www/magento/
$ sudo find var generated vendor pub/static pub/media app/etc -type f -exec chmod g+w {} +
$ sudo find var generated vendor pub/static pub/media app/etc -type d -exec chmod g+ws {} +
$ sudo chown -R :nginx .
$ sudo chmod u+x bin/magento

Passo 11 - Instalar o Magento

Certifique-se de que você está no diretório do Magento.

$ cd /var/www/magento

Execute o seguinte comando para instalar o Magento.

$ bin/magento setup:install \
--base-url=http://magento.example.com \
--use-secure=1 \
--base-url-secure=https://magento.example.com \
--use-secure-admin=1 \
--db-host=localhost \
--db-name=magento \
--db-user=magentouser \
--db-password=Your_password2 \
--admin-firstname=Navjot \
--admin-lastname=Singh \
[email protected] \
--admin-user=navjot \
--admin-password=admin_password \
--language=en_US \
--currency=USD \
--timezone=America/Chicago \
--use-rewrites=1 \
--elasticsearch-host=http://127.0.0.1 \
--elasticsearch-port=9200 \
--session-save=redis \
--session-save-redis-db=0 \
--session-save-redis-password=redis_password \
--cache-backend=redis \
--cache-backend-redis-db=2 \
--cache-backend-redis-password=redis_password \
--page-cache=redis \
--page-cache-redis-db=4 \
--page-cache-redis-password=redis_password

Uma vez que o processo esteja completo, você receberá uma saída semelhante.

.......
[SUCCESS]: Instalação do Magento concluída.
[SUCCESS]: URI do Admin do Magento: /admin_19uadb
Nada a importar.

Anote a URI do Admin que você precisará mais tarde para acessar o painel de administração.

Crie trabalhos cron do Magento.

$ php bin/magento cron:install

Verifique o trabalho cron.

$ crontab -l

Você deve ver a seguinte saída.

#~ MAGENTO INÍCIO d1957f62aa710cc367525c9ec68dd7456d4311756b5aa37d2143c4a98b25318c
* * * * * /usr/bin/php8.2 /var/www/magento/bin/magento cron:run 2>&1 | grep -v "Executou trabalhos por agendamento" >> /var/www/magento/var/log/magento.cron.log
#~ MAGENTO FIM d1957f62aa710cc367525c9ec68dd7456d4311756b5aa37d2143c4a98b25318c

Passo 12 - Configurar PHP-FPM

Abra o arquivo /etc/php/8.2/fpm/pool.d/www.conf.

$ sudo nano /etc/php/8.2/fpm/pool.d/www.conf

Precisamos definir o usuário/grupo Unix dos processos PHP para nginx. Encontre as linhas user=www-data e group=www-data no arquivo e altere-as para nginx.

...
; Usuário/grupo Unix dos processos
; Nota: O usuário é obrigatório. Se o grupo não for definido, o grupo do usuário padrão
;       será usado.
; RPM: usuário apache escolhido para fornecer acesso aos mesmos diretórios que httpd
user = nginx
; RPM: Mantenha um grupo permitido para escrever no diretório de log.
group = nginx
...

Encontre as linhas listen.owner = www-data e listen.group = www-data no arquivo e altere-as para nginx.

; Defina permissões para o socket unix, se um for usado. No Linux, leitura/escrita
; permissões devem ser definidas para permitir conexões de um servidor web. Muitos
; sistemas derivados do BSD permitem conexões independentemente das permissões. O proprietário
; e grupo podem ser especificados pelo nome ou por seus IDs numéricos.
; Valores Padrão: usuário e grupo são definidos como o usuário em execução
;                 modo é definido como 0660
listen.owner = nginx
listen.group = nginx

Salve o arquivo pressionando Ctrl + X e digitando Y quando solicitado.

Aumente o tempo de execução para PHP-FPM e PHP-CLI para 180 segundos.

$ sudo sed -i 's/max_execution_time = 30/max_execution_time = 180/' /etc/php/8.2/fpm/php.ini
$ sudo sed -i 's/max_execution_time = 30/max_execution_time = 180/' /etc/php/8.2/cli/php.ini

Aumente o limite de memória para PHP-FPM de 128MB para 256MB. Você pode aumentar o limite dependendo do tamanho do seu servidor e requisitos.

$ sudo sed -i 's/memory_limit = 128M/memory_limit = 256M/' /etc/php/8.2/fpm/php.ini

O Magento, por padrão, define o limite de tamanho de arquivo para a biblioteca de mídia como 2MB. Execute os seguintes comandos para aumentar o limite de tamanho de arquivo para 25MB.

$ sudo sed -i 's/upload_max_filesize = 2M/upload_max_filesize = 25M/g' /etc/php/8.2/fpm/php.ini
$ sudo sed -i 's/post_max_size = 8M/post_max_size = 25M/g' /etc/php/8.2/fpm/php.ini

Ative a Compressão Zlib.

$ sudo sed -i 's/zlib.output_compression = Off/zlib.output_compression = On/g' /etc/php/8.2/fpm/php.ini

Reinicie o serviço PHP-FPM.

$ sudo systemctl restart php8.2-fpm

Altere o grupo do diretório de sessões PHP para Nginx.

$ sudo chgrp -R nginx /var/lib/php/sessions

Passo 13 - Configurar Nginx

Abra o arquivo /etc/nginx/nginx.conf para edição.

$ sudo nano /etc/nginx/nginx.conf

Adicione a seguinte linha antes da linha include /etc/nginx/conf.d/*.conf;.

server_names_hash_bucket_size  64;

Salve o arquivo pressionando Ctrl + X e digitando Y quando solicitado.

Crie e abra o arquivo /etc/nginx/conf.d/magento.conf para edição.

$ sudo nano /etc/nginx/conf.d/magento.conf

Cole o seguinte código nele.

upstream fastcgi_backend {
  server  unix:/run/php/php8.2-fpm.sock;
}

server {
  # Redirecionar quaisquer solicitações http para https
  listen 80;
  listen [::]:80;
  server_name magento.example.com;
  return 301 https://$host$request_uri;
}

server {
  listen 443 ssl http2;
  listen [::]:443 ssl http2;
  server_name magento.example.com;

  set $MAGE_ROOT /var/www/magento;
  include /var/www/magento/nginx.conf.sample;
  client_max_body_size 25m;

  access_log /var/log/nginx/magento.access.log;
  error_log  /var/log/nginx/magento.error.log;

  # Configuração TLS
  ssl_certificate /etc/letsencrypt/live/magento.example.com/fullchain.pem;
  ssl_certificate_key /etc/letsencrypt/live/magento.example.com/privkey.pem;
  ssl_trusted_certificate /etc/letsencrypt/live/magento.example.com/chain.pem;
  ssl_protocols TLSv1.2 TLSv1.3;

  ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384';
  ssl_prefer_server_ciphers on;
  ssl_session_cache shared:SSL:50m;
  ssl_session_timeout 1d;

  # OCSP Stapling ---
  # buscar registros OCSP da URL no ssl_certificate e armazená-los em cache
  ssl_stapling on;
  ssl_stapling_verify on;
  ssl_dhparam /etc/ssl/certs/dhparam.pem;
}

Salve o arquivo pressionando Ctrl + X e digitando Y quando solicitado ao terminar.

O Magento vem com um modelo de configuração do Nginx em /var/www/magento/nginx.conf.sample que incluímos em nossa configuração. A variável $MAGE_ROOT aponta para o diretório raiz da web do Magento que definimos em nosso arquivo e é usada no arquivo de configuração de exemplo.

Verifique a sintaxe do arquivo de configuração do Nginx.

$ sudo nginx -t
nginx: o arquivo de configuração /etc/nginx/nginx.conf está ok
nginx: teste do arquivo de configuração /etc/nginx/nginx.conf bem-sucedido

Reinicie o serviço Nginx.

$ sudo systemctl restart nginx

Abra o site do Magento via URL https://magento.example.com. Você deve ver a seguinte página.

Página Inicial do Magento

Se o CSS e o JS não carregarem para você, execute os seguintes comandos.

$ cd /var/www/magento
$ php bin/magento setup:static-content:deploy -f
$ php bin/magento indexer:reindex

Passo 14 - Desativar a Autenticação de Dois Fatores

Antes de acessar o painel de administração, precisamos desativar a autenticação de dois fatores que está habilitada por padrão. O Magento tenta enviar e-mail via sendmail para habilitar a autenticação de dois fatores durante a instalação, mas como não configuramos isso, a única maneira de acessar o painel é desativar o recurso primeiro.

Se você tiver sendmail configurado em seu servidor para enviar e-mails, então você pode pular esta etapa. Para desativar a autenticação de dois fatores, precisamos desativar dois dos módulos do Magento usando os seguintes comandos.

$ php /var/www/magento/bin/magento module:disable Magento_AdminAdobeImsTwoFactorAuth
$ php /var/www/magento/bin/magento module:disable Magento_TwoFactorAuth

Execute o seguinte comando para criar as classes.

$ php /var/www/magento/bin/magento setup:di:compile

Limpe o cache também.

$ php /var/www/magento/bin/magento c:c

Passo 15 - Acessar o Portal de Administração

Você precisará abrir o portal de administração usando a URI que o script de instalação do Magento lhe deu. Se você de alguma forma esqueceu de anotá-la ou a perdeu, você pode recuperar a URI novamente usando o seguinte comando.

$ php /var/www/magento/bin/magento info:adminuri
URI do Admin: /admin_19uadb

Abra a URL https://magento.example.com/admin_19uadb em seu navegador e você verá a seguinte tela.

Página de Login do Painel de Administração do Magento

Insira suas credenciais de administrador fornecidas durante a instalação e clique no botão Entrar para prosseguir. Você será recebido com a seguinte tela.

Painel de Administração do Magento

Você verá um popup pedindo permissão para a Adobe coletar dados de uso. Clique no botão Não Permitir para prosseguir.

O próximo passo é configurar o SMTP para e-mails para que possamos reabilitar a autenticação de dois fatores. Visite o menu Lojas >> Configuração.

Menu de Configuração do Magento Lojas >> Config

Expanda o menu Avançado do lado esquerdo e clique na opção Sistemas para abrir a página de configurações de e-mail.

Configurações de Envio de E-mail do Magento

Desmarque a opção Usar valor do sistema em frente às opções Transporte, Host e Porta. Clique no menu suspenso para Transporte e selecione SMTP nele. Para nosso tutorial, estamos usando o Amazon SES como o remetente.

Configurações de E-mail do Magento Amazon SES

Insira seu host SMTP, 587 como a porta, nome de usuário e senha, defina Auth como LOGIN e defina SSL como TLS nos campos fornecidos. Clique no botão Salvar Config quando terminar. Agora que configuramos as configurações de e-mail, o próximo passo é configurar os IDs de e-mail da loja para que possamos testá-los.

Role para cima e expanda o menu Geral na mesma página e selecione a opção Endereços de E-mail da Loja.

Página de Endereços de E-mail da Loja do Magento

Desmarque os campos de E-mail do Remetente padrão e insira os e-mails da sua loja. Clique no botão Salvar Config quando terminar. Da mesma forma, abra a tela de Contatos e faça as mesmas alterações e clique no botão Salvar Config para finalizá-las.

Configurações de E-mail de Contato do Magento

Alterar opções de administrador pode afetar o cache e você receberá um aviso. Execute o seguinte comando para limpar o cache manualmente.

$ php /var/www/magento/bin/magento c:c

Para testar os e-mails, visite a página da loja e abra a página Fale Conosco. Você pode usar a URL https://magento.example.com/contact/ diretamente para acessá-la. Envie uma mensagem de teste e clique no botão Enviar. Você deve receber um e-mail semelhante.

E-mail de Teste do Magento

Passo 16 - Habilitar e Configurar a Autenticação de Dois Fatores

Agora que habilitamos o remetente de e-mail SMTP, é hora de reabilitar a autenticação de dois fatores. Execute os seguintes comandos para habilitar a autenticação de dois fatores.

$ php /var/www/magento/bin/magento module:enable Magento_AdminAdobeImsTwoFactorAuth
$ php /var/www/magento/bin/magento module:enable Magento_TwoFactorAuth

Atualize a configuração para os módulos.

$ php /var/www/magento/bin/magento setup:upgrade

Execute o seguinte comando para criar as classes.

$ php /var/www/magento/bin/magento setup:di:compile

Limpe o cache também.

$ php /var/www/magento/bin/magento c:c

Se você não conseguir acessar a área de administração, execute os seguintes comandos também.

Force a implantação do conteúdo estático.

$ php /var/www/magento/bin/magento setup:static-content:Deploy -f

Defina as permissões de arquivo.

$ cd /var/www/magento
$ sudo find var generated vendor pub/static pub/media app/etc -type f -exec chmod g+w {} +
$ sudo find var generated vendor pub/static pub/media app/etc -type d -exec chmod g+ws {} +
$ sudo chown -R :nginx .

Visite o portal Admin e você verá a seguinte tela.

Configuração 2FA do Magento

Usaremos o Método Google Authenticator. Você pode usar uma chave de hardware se tiver uma. O método Google Authenticator funciona com qualquer aplicativo TOTP, incluindo Authy, 1Password, Bitwarden, Microsoft Authenticator, etc. Clique no botão Aplicar para prosseguir.

Configuração Google 2FA do Magento

Na próxima página, você receberá o código QR para escanear com seu aplicativo 2FA. Insira os detalhes em seu aplicativo e copie o código gerado para o campo Código do Autenticador. Clique no botão Confirmar para prosseguir para o painel de administração.

Conclusão

Isso conclui nosso tutorial sobre a instalação do Site de eCommerce Magento em um servidor Ubuntu 22.04 com servidor Nginx e Elasticsearch. Se você tiver alguma dúvida, poste nos comentários abaixo.

Share: X/Twitter LinkedIn

Receba novas postagens na sua caixa de entrada

Sem spam. Cancele a assinatura a qualquer momento.