By using this site, you agree to the Privacy Policy and Terms of Use.
Accept
Alex Junio - Especialista em CloudAlex Junio - Especialista em CloudAlex Junio - Especialista em Cloud
  • Blog
  • Cursos
    • cPanel & WHM
    • Curso Vultr Cloud
    • Amazon Lightsail
    • Curso DigitalOcean
  • Hosting
    • cPanel
    • Plesk
    • CloudPanel
  • Cloud
    • AWS
    • DevOps
    • Arquitetura de Sistemas
  • Infraestrutura
    • Litespeed
    • Nginx
    • Docker
    • Linux
    • Alto Trafego
  • Nichos
    • Fintech
    • Magento
    • WordPress
Notification Show More
Font ResizerAa
Alex Junio - Especialista em CloudAlex Junio - Especialista em Cloud
Font ResizerAa
  • Home
  • Amazon AWS
  • WordPress
  • cPanel WHM
  • Magento
  • Blog
Search
Have an existing account? Sign In
Follow US
High Quality Design Resources for Free.
Início > Blog > Magento > Instalação do LEMP e Lets Encrypt Magento 2
Magento

Instalação do LEMP e Lets Encrypt Magento 2

Last updated: março 14, 2025 3:31 pm
Alex Junio
Share
14 Min Read

Como instalar o Magento 2 com Nginx Let’s Encrypt SSL no Ubuntu 22:04 LTS

  • Capítulo 1. Introdução e Requisitos Magento 2.4 na AWS
  • Capítulo 2. Configurações Iniciais Magento 2.4 AWS
  • Capítulo 3. Instalação do LEMP SSL RabbitMQ Elasticsearch e Magento 2.4.5

No capítulo anterior você aprendeu a identificar e saber dos requisitos do Magento 2. Agora iremos iniciar o setup do servidor.

Contents
Como instalar o Magento 2 com Nginx Let’s Encrypt SSL no Ubuntu 22:04 LTSPasso 1 – Instalar o NginxPasso 2 – Instalar e configurar o PHP-FPM 8.1Passo 3 – Instalação do MySQL 8Passo 4. Instalação do Composer 2 Ubuntu 22:04Passo 5 – Criando Usuário SSH para Deploy do MagentoPasso 6 – Gerando certificado SSL com o Lets EncryptPasso 7 – Configurando Nginx para Magento 2Passo 8 – Instalação do RabbitMQ Ubuntu 22:04Passo 9 – Instalação do ElasticsearchPasso 10 – Instalação do Magento 2 via ComposerConclusão

O LEMP (Linux, Nginx, MySQL e PHP), será a stack adotada para este setup. No entanto, iremos realizar customizações específicas para que possamos estar em conformidade com os requisitos de sistema do Magento 2.

Existem diversos tutoriais na internet de como instalar o LEMP, mas siga exatamente os passos abaixo pois tudo será pensado em Magento 2.

O que faremos ?

  • Instalar o Nginx
  • Instalar e configurar o PHP-FPM 8.1
  • Instalar e configurar o MySQL 8
  • Instalar o Composer 2
  • Criar usuário SSH para deploy
  • Gerar SSL Lets Encrypt
  • Configurar o virtualhost do Nginx para Magento 2

Passo 1 – Instalar o Nginx

Instale o Nginx executando os comandos abaixo:

sudo apt -y install nginx
sudo systemctl enable nginx

Pode ser que o firewall do seu servidor esteja habilitado e com isso as portas 80 e 443 não funcionarão para a internet. Execute o comando abaixo para liberar as portas HTTP e HTTPS.

“Selecione todas as quatro linhas”

for svc in ssh http https
do
sudo ufw allow $svc
done

Passo 2 – Instalar e configurar o PHP-FPM 8.1

A seguir vamos instalar o PHP 8.1 com FPM e extensões do Magento 2.4

sudo apt install software-properties-common
sudo add-apt-repository ppa:ondrej/php -y
sudo apt update
sudo apt install -y php8.1 php8.1-fpm php8.1-bcmath php8.1-intl php8.1-soap php8.1-zip php8.1-gd php8.1-curl php8.1-cli php8.1-xml php8.1-xmlrpc php8.1-redis php8.1-opcache php8.1-mbstring php8.1-apcu 
sudo apt install -y php8.1-xsl php8.1-simplexml php8.1-mysql php8.1-ctype php8.1-dom php8.1-iconv php8.1-common php8.1-mcrypt php8.1-pdo php8.1-gmp php8.1-tidy php8.1-lz4

Precisamos customizar o php.ini do PHP-FPM 8.1 , iremos aproveitar e realizar algumas otimizações e habilitar o opcache. Execute todos os comandos abaixo no terminal.

sudo sed -i "s/.*memory_limit.*/memory_limit = 2G/" /etc/php/8.1/fpm/php.ini
sudo sed -i "s/.*max_execution_time.*/max_execution_time = 1800/" /etc/php/8.1/fpm/php.ini
sudo sed -i "s/.*zlib.output_compression.*/zlib.output_compression = On/" /etc/php/8.1/fpm/php.ini
sudo sed -i "s/.*cgi.fix_pathinfo.*/cgi.fix_pathinfo = 0/" /etc/php/8.1/fpm/php.ini
sudo sed -i "s/.*opcache.enable.*/opcache.enable = 1/" /etc/php/8.1/fpm/php.ini
sudo sed -i "s/.*opcache.save_comments.*/opcache.save_comments = 1/" /etc/php/8.1/fpm/php.ini
sudo sed -i "s/.*opcache.memory_consumption.*/opcache.memory_consumption = 256/" /etc/php/8.1/fpm/php.ini
sudo sed -i "s/.*opcache.max_accelerated_files.*/opcache.max_accelerated_files = 100000/" /etc/php/8.1/fpm/php.ini
sudo sed -i "s/.*date.timezone.*/date.timezone = America\/Sao_Paulo/" /etc/php/8.1/fpm/php.ini

Agora inicie o PHP-FPM

systemctl start php8.1-fpm
systemctl enable php8.1-fpm

Passo 3 – Instalação do MySQL 8

Execute o comando abaixo para que você instale o servidor MySQL 8.

sudo apt install -y mysql-server

Bom, vamos criar um usuário e database para nossa loja magento 2. Logue no servidor MySQL com o comando abaixo.

sudo mysql -u root

Uma vez que está logado no servidor MySQL, execute os comandos abaixo para configurar o usuário e banco de dados do magento. Lembre-se de personalizar conforme seu uso.

# CRIANDO USUARIO 
CREATE USER 'USERMAGENTO'@'%' IDENTIFIED BY 'SENHAUSERMAGENTO';
ALTER USER 'USERMAGENTO'@'%' IDENTIFIED WITH mysql_native_password BY 'SENHAUSERMAGENTO';
# LIBERANDO TODOS OS PRIVILEGIOS PARA O USUARIO
GRANT ALL PRIVILEGES ON *.* TO 'USERMAGENTO'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;
# SAIR DO MYSQL 
exit;

Ainda não finalizamos! Agora vamos acessar novamente o MySQL, no entanto, utilizando o usuário que acabamos de criar. E com isso criar a database para o Magento 2.

# INSIRA O USUARIO CRIADO E TAMBEM A SENHA CONFIGURADA
sudo mysql -u USERMAGENTO -p

Se tudo ocorreu bem, você logou novamente no MySQL. Agora vamos criar uma database para o magento.

# CRIANDO DATABASE
CREATE DATABASE MAGENTO2;
# SAIR DO MYSQL
exit;

Nesse momento a configuração para o banco de dados é:

  • User: USERMAGENTO
    Pass: SENHAUSERMAGENTO
  • Database: MAGENTO2

Passo 4. Instalação do Composer 2 Ubuntu 22:04

O composer é um gerenciador de dependências para o PHP, com ele podemos instalar pacotes de nível de aplicativo e uma série de bibliotecas adicionais para o projeto. Inclusive o Magento 2 depende e muito desse cara.

Execute os comandos abaixo para instalar e configurar o composer 2.

curl -sS https://getcomposer.org/installer -o /tmp/composer-setup.php
sudo php /tmp/composer-setup.php --install-dir=/usr/local/bin --filename=composer

Agora teste se o composer está funcionando corretamente com o comando abaixo.

composer --version

Se a versão do composer for carregada na tela, significa que está funcional.

Passo 5 – Criando Usuário SSH para Deploy do Magento

Para desenvolver um e-commerce magento 2, você precisa de acesso SSH para realizar deploy e comandos de rotina. Sem enrolação, execute os comandos abaixo.

# CRIAR DIRETORIO ROOT DO MAGENTO
sudo mkdir -p /home/ecommerce
# CRIAR USUARIO
sudo useradd -d /home/ecommerce -s /bin/bash USER-DEPLOY
# DEFINIR PERMISSOES PARA USUARIO 
sudo usermod -a -G www-data USER-DEPLOY
sudo chown -R www-data:www-data /home/ecommerce
sudo chmod -R g+w /home/ecommerce
# DEFINIR SENHA PARA USUARIO
sudo passwd USER-DEPLOY
  • USER-DEPLOY: Usuario a ser criado, você deve inserir outro nome.

Passo 6 – Gerando certificado SSL com o Lets Encrypt

Para instalarmos o SSL Let’s Encrypt precisamos instalar o Certbot e também um plugin para Nginx, pois vamos utiliza-lo no processo de emissão.

sudo snap install core
sudo snap install --classic certbot
sudo ln -s /snap/bin/certbot /usr/bin/certbot
sudo apt install -y python3-certbot-nginx

Vamos editar o arquivo host virtual do nginx, para que possamos conseguir emitir o certificado SSL, caso contrário teremos sérios problemas.

Em server_name , você deve inserir o domínio que está trabalhando.

# REMOVENDO O ARQUIVO DEFAULT, POIS NAO PRECISAMOS DELE
sudo rm /etc/nginx/sites-enabled/default
# CRIANDO UM VIRTUALHOST PROVISÓRIO
# COPIE TODAS AS LINHAS ABAIXO ATÉ O EOF
cat  > default <<  EOF
server {
        listen 80 default_server;
        listen [::]:80 default_server;
        root /var/www/html;
        index index.html index.htm index.nginx-debian.html;
        server_name magento-dev.shop www.magento-dev.shop;
        location / {
                try_files $uri $uri/ =404;
        }   
}
EOF
# ENVIE O ARQUIVO GERADO PARA O NGINX
sudo mv default /etc/nginx/sites-enabled/
# RESTARTE O NGINX
sudo systemctl restart nginx

Agora você precisa apontar o seu domínio para o IP do servidor e aguardar a propagação pois o certbot valida se o domínio realmente está apontado para o servidor, caso contrário a emissão falhará.

Verifique se o seu domínio já está sendo resolvido corretamente, no terminal execute o comando abaixo e veja se imprime na tela o IP do servidor.

host seudominio.com.br

Se tudo estiver ok, você já pode rodar o comando de emissão do certificado SSL.

sudo certbot --nginx -d seudominio.com.br -d www.seudominio.com.br

A emissão é rápida, e durante o processo você poderá escolher se quer redirecionar tudo de HTTP para HTTPS, selecione a opção 2.

Se tudo ocorreu bem, a saída do comando resultará em várias mensagens e um “Congratulations!” informando que o certificado foi emitido. Para verificar se realmente o SSL está configurado, basta acessar no navegador o domínio da loja.

Passo 7 – Configurando Nginx para Magento 2

Nessa etapa vamos configurar um server block (virtualhost) específico para o Magento 2. Lembre-se de realizar as alterações:

  • server_name
  • SSL certificate

Copie o conteúdo abaixo para um editor de sua preferência, e após reajusta-lo siga os passos abaixo.

Remova o arquivo default do nginx

sudo rm /etc/nginx/sites-enabled/default 

Cole o novo bloco de configuração e substitua os valores de domínio

sudo nano /etc/nginx/sites-enabled/default
upstream fastcgi_backend {
    server unix:/run/php/php8.1-fpm.sock;
}
server {
    listen 80;
    server_name seudominio.com.br www.seudominio.com.br;
    #include snippets/letsencrypt.conf;
    return 301 https://magento-dev.shop$request_uri;
}
server {
    listen 443 ssl http2;
    server_name seudominio.com.br www.seudominio.com.br;
    ssl_certificate /etc/letsencrypt/live/seudominio.com.br/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/seudominio.com.br/privkey.pem;
    ssl_trusted_certificate /etc/letsencrypt/live/seudominio.com.br/chain.pem;
    #ssl_dhparam /etc/ssl/certs/dhparam.pem;
    ssl_session_timeout 1d;
    ssl_session_cache shared:SSL:50m;
    ssl_session_tickets off;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_stapling on;
    ssl_stapling_verify on;
    resolver 8.8.8.8 8.8.4.4 valid=300s;
    resolver_timeout 30s;
    keepalive_timeout 300s;
    add_header X-Frame-Options SAMEORIGIN;
    add_header X-Content-Type-Options nosniff;
    set $MAGE_ROOT /home/ecommerce/public_html;
    set $MAGE_MODE developer; # or production
    include /home/ecommerce/public_html/nginx.conf.sample;
}

Salve o arquivo.

Agora podemos partir para a próxima etapa.

Passo 8 – Instalação do RabbitMQ Ubuntu 22:04

Para instalar o RabbitMQ no Ubuntu 22.04, siga os seguintes passos abaixo.

sudo apt install -y rabbitmq-server
sudo systemctl start rabbitmq-server
sudo systemctl enable rabbitmq-server

Agora, o RabbitMQ está instalado e funcionando no seu servidor.

Podemos habilitar o plugin rabbitmq_management para poder acessar o RabbitMQ pelo navegador.

sudo rabbitmq-plugins enable rabbitmq_management

Você pode acessar o RabbitMQ utilizando o IP ou URL da sua loja:

  • http://seu_ip:15672
  • http://sualoja.com.br:15672

Abra a loja no navegador e verá que será solicitado um usuário e senha para login, por padrão o usuário e senha é “guest”. Mas vamos configurar um novo usuário para nossa loja magento 2.

Execute os comandos abaixo e troque apenas o nome de usuário e senha.

rabbitmqctl add_user USUARIO SENHA
rabbitmqctl set_user_tags USUARIO administrator

Agora você já pode acessar o RabbitMQ pelo navegador usando o usuário e senha configurados.

Passo 9 – Instalação do Elasticsearch

Para instalar o Elasticsearch no Ubuntu 22:04 siga os passos abaixo.

sudo apt install -y openjdk-17-jdk
sudo curl -sSfL https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo gpg --no-default-keyring --keyring=gnupg-ring:/etc/apt/trusted.gpg.d/magento.gpg --import
sudo sh -c 'echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" > /etc/apt/sources.list.d/elastic-7.x.list'
sudo chmod 666 /etc/apt/trusted.gpg.d/magento.gpg
sudo apt update
sudo apt install -y elasticsearch
sudo systemctl daemon-reload
sudo systemctl enable elasticsearch.service

Agora precisamos realizar algumas customizações caso contrário o Elasticsearch vai devorar a memória RAM do servidor. Para um servidor de desenvolvimento os parâmetros abaixo são suficientes.

sudo sed -i "s/.*cluster.name.*/cluster.name: magento2/" /etc/elasticsearch/elasticsearch.yml
sudo sed -i "s/.*-Xms4g.*/-Xms256m/" /etc/elasticsearch/jvm.options
sudo sed -i "s/.*-Xmx4g.*/-Xmx256m/" /etc/elasticsearch/jvm.options
sudo systemctl start elasticsearch.service

Passo 10 – Instalação do Magento 2 via Composer

Agora chegou do vamos ver! Vamos iniciar o setup do magento 2 no nosso servidor. Iremos realizar o setup via composer, e você vai precisar gerar um usuário e chave de acesso ao repositório do magento.

Gerar chave: https://marketplace.magento.com/customer/account/

No servidor, execute os passos.

1 – Acesse o usuário SSH gerado no passo 5.

sudo su USER-DEPLOY
cd ~
composer create-project --repository-url=https://repo.magento.com/  public_html
cd public_html
chmod +x bin/magento

2 – Faça o download o magento 2

composer create-project --repository-url=https://repo.magento.com/  public_html
cd public_html

3 – Instale o Magento 2 usando todo o comando abaixo, você precisa alterar os dados do banco de dados, domínio e usuário administrativo do Magento.

bin/magento setup:install \
--base-url=https://seudominio.com.br \
--backend-frontname=m2adm \
--db-host=localhost \
--db-name=MAGENTO2\
--db-user=USERMAGENTO\
--db-password=SENHAUSERMAGENTO \
--admin-firstname=admin \
--admin-lastname=admin \
[email protected] \
--admin-user=admin\
--admin-password=admin123 \
--language=en_US \
--currency=BRL \
--timezone=America/Sao_Paulo \
--use-rewrites=1 \
--search-engine=elasticsearch7 \
--elasticsearch-host=localhost \
--elasticsearch-port=9200 \
--elasticsearch-index-prefix=magento2 \
--elasticsearch-timeout=15 \
--session-save=files \
--use-rewrites=1

Se tudo ocorreu bem, você verá uma saída similar abaixo.

Agora o magento 2 foi instalado com sucesso. Para finalizar, corrija as permissões dos arquivos gerados para que não tenha nenhum problema na execução da loja.

chown -R www-data:www-data .

Conclusão

Nesse guia você aprendeu a configurar um servidor básico para hospedagem de lojas magento 2 na Amazon AWS para desenvolvimento.

Realizamos uma série de customizações no PHP-FPM, Nginx e Elasticsearch, para que nossa loja rode perfeitamente bem.

Existem várias ferramentas que ainda podemos instalar com foco em desenvolvimento, irei atualizar esse guia regularmente.

Gostou desse guia? Deixe nos comentários..

TAGGED:hospedagem magentomag-premiummagentomagento aws
Share This Article
Facebook Whatsapp Whatsapp LinkedIn Telegram Email Print
Previous Article magento2.4.5 amazon aws lightsail alexjunio p1 Introdução e Requisitos Magento 2.4.x
Next Article vantagens desvantagens cloud wordpress Vantagens e Desvantagens Hospedagem Cloud WordPress
Nenhum comentário Nenhum comentário

Deixe um comentário Cancelar resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Conteúdos Relacionados

magento2.4.5 amazon aws lightsail alexjunio p1

Introdução e Requisitos Magento 2.4.x

março 14, 2025
otimizacao loja magento alexjunio consultoria magento

Como melhorar a velocidade do Magento 2 | Dicas e Otimizações 2025

fevereiro 7, 2025
magento2.4.5 amazon aws lightsail alexjunio p2

Configuração Inicial Ubuntu 20:04 Hospedagem Magento 2.4

janeiro 7, 2023
magento amazon aws arquitetura case 01 alexjunio

Hospedagem Alta Disponibilidade Loja Magento Amazon AWS

maio 23, 2021

Alex Junio - Especialista Cloud - 2026

Profissional com mais de 10 anos de experiência em gestão cloud e infraestrutura web.

All Rights Reserved.

Welcome Back!

Sign in to your account

Username or Email Address
Password

Lost your password?