Magento Installation · 25 min read · Oct 19, 2025
Como Instalar o Magento eCommerce Suite no Rocky Linux 9 com Elasticsearch

Magento é uma plataforma de e-commerce de código aberto escrita em PHP. Foi adquirida pela Adobe em 2018. 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. Ela 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 a sessão e cache de arquivos, e serviremos usando o servidor Nginx.
Pré-requisitos
- Um servidor rodando Rocky Linux 9 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 está atualizado.
$ sudo dnf update - Alguns pacotes que seu sistema precisa.
$ sudo dnf install wget curl nano unzip yum-utils policycoreutils-python-utils -yAlguns desses pacotes podem já estar instalados em seu sistema.
Passo 1 - Configurar o Firewall
O primeiro passo é configurar o firewall. O Rocky Linux usa o Firewalld Firewall. Verifique o status do firewall.
$ sudo firewall-cmd --state
running
O firewall funciona com diferentes zonas, e a zona pública é a padrão que usaremos. Liste todos os serviços e portas ativos no firewall.
$ sudo firewall-cmd --permanent --list-services
Deve mostrar a seguinte saída.
cockpit dhcpv6-client ssh
Permita as portas HTTP e HTTPS.
$ sudo firewall-cmd --permanent --add-service=http
$ sudo firewall-cmd --permanent --add-service=https
Verifique novamente o status do firewall.
$ sudo firewall-cmd --permanent --list-services
Você deve ver uma saída semelhante.
cockpit dhcpv6-client http https ssh
Recarregue o firewall para habilitar as mudanças.
$ sudo firewall-cmd --reload
Passo 2 - Instalar PHP e suas extensões
O Rocky Linux 9 vem com PHP 8.1 por padrão. Para sempre ficar na versão mais recente do PHP ou se você quiser instalar várias versões do PHP, precisamos usar o repositório REMI.
O primeiro passo é pegar o repositório Epel.
$ sudo dnf install epel-release -y
Em seguida, instale o repositório Remi.
$ sudo dnf install https://rpms.remirepo.net/enterprise/remi-release-9.rpm
Verifique os streams de PHP disponíveis.
$ dnf module list php -y
Name Stream Profiles Summary
php 8.1 common [d], devel, minimal PHP scripting language
Remi's Modular repository for Enterprise Linux 9 - x86_64
Name Stream Profiles Summary
php remi-7.4 common [d], devel, minimal PHP scripting language
php remi-8.0 common [d], devel, minimal PHP scripting language
php remi-8.1 common [d], devel, minimal PHP scripting language
php remi-8.2 common [d], devel, minimal PHP scripting language
php remi-8.3 common [d], devel, minimal PHP scripting language
Dica: [d]efault, [e]nabled, [x]disabled, [i]nstalled
A versão padrão é 8.1. No momento da redação deste tutorial, o Magento é compatível com PHP 8.2. Portanto, habilite o repositório PHP 8.2 do Remi.
$ sudo dnf module reset php -y
$ sudo dnf module enable php:remi-8.2
Você pode instalá-lo e as extensões necessárias pelo Magento executando o seguinte comando.
$ sudo dnf install php-fpm php-cli php-mysql php-mbstring php-xml php-gd php-bcmath php-zip php-curl php-tidy php-intl php-soap php-opcache php-xsl php-sodium
Verifique a instalação.
$ php --version
PHP 8.2.15 (cli) (built: Jan 16 2024 12:19:32) (NTS gcc x86_64)
Copyright (c) The PHP Group
Zend Engine v4.2.15, Copyright (c) Zend Technologies
with Zend OPcache v8.2.15, 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.22 2023-09-29 10:53:45
Passo 4 - Instalar MariaDB
O Rocky Linux 9 vem com uma versão mais antiga do MariaDB. Portanto, usaremos o repositório do MariaDB para a instalação. No momento da redação deste tutorial, o Magento suporta o MariaDB 10.6, que é o que instalaremos.
Importe a chave GPG do MariaDB.
$ sudo rpm --import https://supplychain.mariadb.com/MariaDB-Server-GPG-KEY
Crie e abra o arquivo /etc/yum.repos.d/mariadb.repo para edição.
$ sudo nano /etc/yum.repos.d/mariadb.repo
Cole o seguinte código nele.
[mariadb]
name = MariaDB
baseurl = https://rpm.mariadb.org/10.6/rhel/$releasever/$basearch
gpgkey= https://rpm.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1
Salve o arquivo pressionando Ctrl + X e digitando Y quando solicitado.
$ sudo dnf install MariaDB-server
Verifique a versão do MySQL.
$ mysql --version
mysql Ver 15.1 Distrib 10.6.16-MariaDB, for Linux (x86_64) using EditLine wrapper
Habilite e inicie o serviço MariaDB.
$ sudo systemctl enable mariadb --now
Execute o script de instalação segura do MariaDB.
$ sudo mariadb-secure-installation
Você será solicitado a fornecer a senha root. Pressione Enter porque ainda não definimos nenhuma senha para isso.
NOTE: EXECUTAR TODAS AS PARTES DESTE SCRIPT É RECOMENDADO PARA TODOS OS SERVIDORES MariaDB EM USO PRODUTIVO! POR FAVOR, LEIA CADA ETAPA CUIDADOSAMENTE!
Para fazer login no MariaDB e protegê-lo, precisaremos da senha atual do usuário root. Se você acabou de instalar o MariaDB e ainda não definiu a senha root, deve apenas pressionar enter aqui.
Digite a senha atual para root (pressione enter para nenhum):
Em seguida, você será perguntado se deseja mudar para o método de autenticação de socket Unix. O plugin unix_socket permite que você use suas credenciais do sistema operacional para se conectar ao servidor MariaDB. Como você já tem uma conta root protegida, digite n para prosseguir.
OK, senha usada com sucesso, prosseguindo...
Definir a senha root ou usar o unix_socket garante que ninguém possa fazer login no usuário root do MariaDB sem a devida autorização.
Você já tem sua conta root protegida, então pode responder 'n' com segurança.
Mudar para autenticação unix_socket [Y/n] n
Em seguida, você será perguntado se deseja alterar sua senha root. Digite Y para prosseguir e altere sua senha root para algo forte e seguro.
... pulando.
Você já tem sua conta root protegida, então pode responder 'n' com segurança.
Alterar a senha root? [Y/n] Y
Nova senha:
Reinsira a nova senha:
Senha atualizada com sucesso!
Recarregando tabelas de privilégios..
... Sucesso!
Em seguida, você será perguntado sobre certas questões para melhorar a segurança do MariaDB. 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.
Por padrão, uma instalação do MariaDB tem um usuário anônimo, permitindo que qualquer um faça login no MariaDB sem ter uma conta de usuário criada para eles. Isso é destinado apenas para testes e para facilitar a instalação. Você deve removê-los antes de passar para um ambiente de produção.
Remover usuários anônimos? [Y/n] y
... Sucesso!
Normalmente, o root deve ser permitido apenas conectar-se a partir de 'localhost'. Isso garante que alguém não possa adivinhar a senha root pela rede.
Proibir login remoto do root? [Y/n] y
... Sucesso!
Por padrão, o MariaDB vem com um banco de dados chamado 'teste' que qualquer um pode acessar. Isso também é destinado apenas para testes e deve ser removido antes de passar para um ambiente de produção.
Remover o banco de dados de teste e o acesso a ele? [Y/n] 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 entrem em vigor imediatamente.
Recarregar tabelas de privilégios agora? [Y/n] y
... Sucesso!
Limpando...
Tudo pronto! Se você completou todos os passos acima, sua instalação do MariaDB deve agora estar segura.
Obrigado por usar o MariaDB!
Você pode entrar no shell do MariaDB digitando sudo mysql ou sudo mariadb na linha de comando.
Passo 5 - Configurar o MariaDB
Faça login no shell do MariaDB.
$ sudo mariadb
Crie um banco de dados para o Magento.
MariaDB > CREATE DATABASE magento;
Crie uma conta de usuário SQL.
MariaDB > CREATE USER 'magentouser'@'localhost' IDENTIFIED BY 'Your_password2';
Conceda todos os privilégios no banco de dados ao usuário.
MariaDB > GRANT ALL PRIVILEGES ON magento.* TO 'magentouser'@'localhost';
Atualize os privilégios do usuário.
MariaDB > FLUSH PRIVILEGES;
Saia do shell.
MariaDB > exit
Passo 6 - Instalar Nginx
O Rocky Linux 9 vem com uma versão mais antiga do Nginx. Você precisa usar o repositório oficial do Nginx para instalar a versão mais recente.
Crie e abra o arquivo /etc/yum.repos.d/nginx.repo para edição.
$ sudo nano /etc/yum.repos.d/nginx.repo
Cole o seguinte código nele.
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
[nginx-mainline]
name=nginx mainline repo
baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/
gpgcheck=1
enabled=0
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
Uma vez que você terminar, salve o arquivo pressionando Ctrl + X e digitando Y quando solicitado.
Instalaremos o Nginx mainline, então habilite o pacote para ele.
$ sudo dnf config-manager --enable nginx-mainline
Instale o Nginx.
$ sudo dnf install nginx -y
Verifique a instalação.
$ nginx -v
nginx version: nginx/1.25.3
Habilite e inicie o serviço do servidor Nginx.
$ sudo systemctl enable nginx --now
Verifique o status do serviço.
? nginx.service - nginx - servidor web de alto desempenho
Loaded: loaded (/usr/lib/systemd/system/nginx.service; enabled; preset: disabled)
Drop-In: /etc/systemd/system/nginx.service.d
??php-fpm.conf
Active: active (running) since Fri 2024-01-26 06:46:17 UTC; 1s ago
Docs: http://nginx.org/en/docs/
Process: 19765 ExecStart=/usr/sbin/nginx -c /etc/nginx/nginx.conf (code=exited, status=0/SUCCESS)
Main PID: 19767 (nginx)
Tasks: 3 (limit: 12225)
Memory: 3.1M
CPU: 16ms
CGroup: /system.slice/nginx.service
??19767 "nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf"
??19768 "nginx: worker process"
??19769 "nginx: worker process"
Passo 7 - Instalar SSL
Precisamos instalar o Certbot para gerar o certificado SSL. Usaremos o instalador de pacotes Snapd para isso. Como o Rocky Linux não vem com ele, instale o instalador Snapd. Ele requer o repositório EPEL (Extra Packages for Enterprise Linux) para funcionar. Mas como já o instalamos no passo 3, podemos seguir em frente.
Instale o pacote Snapd.
$ sudo dnf install -y snapd
Habilite e inicie o serviço Snap.
$ sudo systemctl enable snapd --now
Instale o pacote core do Snap e certifique-se de que sua versão do Snapd está atualizada.
$ sudo snap install core && sudo snap refresh core
Crie os links necessários para o Snapd funcionar.
$ sudo ln -s /var/lib/snapd/snap /snap
$ echo 'export PATH=$PATH:/var/lib/snapd/snap/bin' | sudo tee -a /etc/profile.d/snapd.sh
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
Verifique se o Certbot está funcionando corretamente.
$ certbot --version
certbot 2.8.0
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
-------------------------------------------------------------------------------------------------------------------------------
Fri 2024-01-26 08:05:24 UTC 1h 1min left Fri 2024-01-26 06:35:00 UTC 29min ago dnf-makecache.timer dnf-makecache.service
Fri 2024-01-26 14:20:42 UTC 7h left Thu 2024-01-25 14:20:42 UTC 16h ago systemd-tmpfiles-clean.timer systemd-tmpfiles-clean.service
Fri 2024-01-26 22:37:00 UTC 15h left - - snap.certbot.renew.timer snap.certbot.renew.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 compatível com o Magento 2.4.6, que é a versão mais recente disponível. A página de requisitos menciona o Elasticsearch 8.5 também, mas ele não funciona corretamente com o Magento.
Importe a chave GPG do Elasticsearch.
$ sudo rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch
Crie um arquivo chamado elasticsearch.repo no diretório /etc/yum.repos.d/ e abra-o para edição.
$ sudo nano /etc/yum.repos.d/elasticsearch.repo
Cole o seguinte código nele.
[elasticsearch]
name=Elasticsearch repository for 7.x packages
baseurl=https://artifacts.elastic.co/packages/7.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=0
autorefresh=1
type=rpm-md
Uma vez que você terminar, salve o arquivo pressionando Ctrl + X e digitando Y quando solicitado.
Instale o Elasticsearch.
$ sudo dnf install --enablerepo=elasticsearch 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. Modifique os valores de acordo com o tamanho do seu servidor. O primeiro valor refere-se à memória inicial e o segundo refere-se à memória máxima disponível. Para 1GB ou mais, use o formato -Xms1g.
-Xms512m
-Xmx784m
Salve o arquivo pressionando Ctrl + X e digitando Y quando solicitado. Isso configura o Elasticsearch para usar 1GB de RAM. Modifique conforme suas necessidades e especificações do servidor.
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.example.com",
"cluster_name" : "elasticsearch",
"cluster_uuid" : "saBfw0F_Tam6ayGjXr6pEA",
"version" : {
"number" : "7.17.17",
"build_flavor" : "default",
"build_type" : "rpm",
"build_hash" : "aba4da413a368e296dfc64fb20897334d0340aa1",
"build_date" : "2024-01-18T10:05:03.821431920Z",
"build_snapshot" : false,
"lucene_version" : "8.11.1",
"minimum_wire_compatibility_version" : "6.8.0",
"minimum_index_compatibility_version" : "6.0.0-beta1"
},
"tagline" : "You Know, for Search"
}
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 Rocky Linux vem com o Redis 6.0, então usaremos o repositório Remi para a instalação.
Já instalamos o repositório Remi quando instalamos o PHP no passo 2. Liste todos os módulos Redis disponíveis.
$ dnf module list redis
Name Stream Profiles Summary
redis 7 common [d] Redis persistent key-value database
Remi's Modular repository for Enterprise Linux 9 - x86_64
Name Stream Profiles Summary
redis remi-5.0 common [d] Redis persistent key-value database
redis remi-6.0 common [d] Redis persistent key-value database
redis remi-6.2 common [d] Redis persistent key-value database
redis remi-7.0 common [d] Redis persistent key-value database
redis remi-7.2 common [d] Redis persistent key-value database
Dica: [d]efault, [e]nabled, [x]disabled, [i]nstalled
Habilite o Redis 7.0.
$ sudo dnf module enable -y redis:remi-7.0
Emita o seguinte comando para instalar o servidor Redis.
$ sudo dnf install redis
Confirme a versão do Redis.
$ redis-server -v
Redis server v=7.0.15 sha=00000000:0 malloc=jemalloc-5.2.1 bits=64 build=77c9855172eb54e9
Habilite e inicie o serviço Redis.
$ sudo systemctl enable redis --now
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/html/magento -p
Dê os direitos ao diretório do Magento ao usuário atual.
$ sudo chown $USER:$USER /var/www/html/magento/ -R
Antes de prosseguirmos, você precisa das chaves de autenticação necessárias pelo repositório do Magento. Visite o site https://commercemarketplace.adobe.com/, clique no link Sign in no canto superior direito, e você verá a seguinte página pedindo para você fazer login usando seu Adobe ID.

Clique no botão Sign in with Adobe ID para chegar à seguinte página.

Se você tiver um Adobe ID, insira suas credenciais para continuar ou você pode criar uma conta aqui. Depois de criar sua conta e fazer login, abra a URL https://commercemarketplace.adobe.com/customer/accessKeys/. Você também pode acessar esta página visitando seu perfil ( https://commercemarketplace.adobe.com/customer/account/) e clicando no link Access Keys.

Clique no botão Create A New Access Key para criar sua chave de autenticação. Dê um nome à sua chave para identificação.

Anote tanto a chave pública quanto a privada para o próximo passo.
Crie o arquivo ~/.config/composer/auth.json e abra-o para edição.
$ nano ~/.config/composer/auth.json
Cole o seguinte código nele. Use a chave pública para o nome de usuário e a chave privada para a senha.
{
"http-basic": {
"repo.magento.com": {
"username": "",
"password": ""
}
}
}
Salve o arquivo pressionando Ctrl + X e digitando Y quando solicitado.
Mude para o diretório /var/www/html/magento.
$ cd /var/www/html/magento
Crie o projeto Magento. Note o ponto no final do comando. Ele se refere ao diretório atual no qual o comando está sendo executado.
$ composer create-project --repository-url=https://repo.magento.com/ magento/project-community-edition .
Você deve ver uma saída semelhante.
Criando um projeto "magento/project-community-edition" em "./"
Instalando magento/project-community-edition (2.4.6-p3)
- Baixando magento/project-community-edition (2.4.6-p3)
- Instalando magento/project-community-edition (2.4.6-p3): Extraindo arquivo
Projeto criado em /var/www/html/magento/.
Carregando repositórios do composer com informações de pacotes
Info from https://repo.packagist.org: #StandWithUkraine
Atualizando dependências
Operações do arquivo de bloqueio: 566 instalações, 0 atualizações, 0 remoções
- Bloqueando 2tvenom/cborencode (1.0.2)
- Bloqueando adobe-commerce/adobe-ims-metapackage (2.2.0)
- Bloqueando allure-framework/allure-codeception (v2.3.0)
- Bloqueando allure-framework/allure-php-commons (v2.3.1)
- Bloqueando allure-framework/allure-phpunit (v2.1.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.
$ 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/html/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=127.0.0.1 \
--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_l5pv1h
Nada para 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 START f37deed947b2ea951ad6f939b8ab752bc79587e3d77f40d06f20f0657c98e94d
* * * * * /usr/bin/php /var/www/html/magento/bin/magento cron:run 2>&1 | grep -v "Ran jobs by schedule" >> /var/www/html/magento/var/log/magento.cron.log
#~ MAGENTO END f37deed947b2ea951ad6f939b8ab752bc79587e3d77f40d06f20f0657c98e94d
Passo 12 - Configurar PHP-FPM
Abra o arquivo /etc/php-fpm.d/www.conf.
$ sudo nano /etc/php-fpm.d/www.conf
Precisamos definir o usuário/grupo Unix dos processos PHP para nginx. Encontre as linhas user = apache e group = apache 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 = nobody, listen.group = nobody, listen.mode = 0660 no arquivo e altere-as conforme abaixo após descomentá-las.
; Defina permissões para o socket unix, se um for usado. No Linux, leitura/escrita
; as permissões devem ser definidas para permitir conexões de um servidor web.
; 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
listen.mode = 0660
Salve o arquivo pressionando Ctrl + X e digitando Y quando solicitado.
Aumente o tempo de execução para 180 segundos.
$ sudo sed -i 's/max_execution_time = 30/max_execution_time = 180/' /etc/php.ini
Aumente o limite de memória para PHP-FPM de 128MB para 512MB. Você pode aumentar o limite dependendo do tamanho do seu servidor e das suas necessidades.
$ sudo sed -i 's/memory_limit = 128M/memory_limit = 512M/' /etc/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.ini
$ sudo sed -i 's/post_max_size = 8M/post_max_size = 25M/g' /etc/php.ini
Ative a compressão Zlib.
$ sudo sed -i 's/zlib.output_compression = Off/zlib.output_compression = On/g' /etc/php.ini
Aumente a configuração realpath_cache como mostrado.
$ sudo sed -i 's/;realpath_cache_size = 4096k/realpath_cache_size = 10M/g' /etc/php.ini
$ sudo sed -i 's/;realpath_cache_ttl = 120/realpath_cache_ttl = 7200/g' /etc/php.ini
Abra o arquivo /etc/php.d/10-opcache.ini para edição.
$ sudo nano /etc/php.d/10-opcache.ini
Encontre a linha ;opcache.save_comments=1 e descomente-a como mostrado.
opcache.save_comments=1
Salve o arquivo pressionando Ctrl + X e digitando Y quando solicitado.
Reinicie o serviço PHP-FPM.
$ sudo systemctl restart php-fpm
Altere o grupo do diretório de sessões PHP para Nginx.
$ sudo chgrp -R nginx /var/lib/php/session
Passo 13 - Configurar SELinux
Execute os seguintes comandos para alterar o contexto de segurança para o diretório do Magento.
$ sudo semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/html/magento/app/etc(/.*)?'
$ sudo semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/html/magento/var(/.*)?'
$ sudo semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/html/magento/pub/media(/.*)?'
$ sudo semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/html/magento/pub/static(/.*)?'
$ sudo semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/html/magento/generated(/.*)?'
$ sudo restorecon -Rv '/var/www/html/magento/'
Aplique a política para permitir conexões a serem feitas para hosts externos.
$ sudo setsebool -P httpd_can_network_connect 1
Aplique a política para permitir que o Nginx dê acesso ao PostgreSQL.
$ sudo setsebool -P httpd_can_network_connect_db 1
Passo 14 - 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-fpm/www.sock;
}
server {
# Redirecionar qualquer solicitação 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/html/magento;
include /var/www/html/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 configuramos 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 a sintaxe 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 pela URL https://magento.example.com. Você deve ver a seguinte página.

Se o CSS e o JS não carregarem, execute os seguintes comandos.
$ cd /var/www/html/magento
$ sudo php bin/magento setup:static-content:deploy -f
$ sudo php bin/magento indexer:reindex
Passo 15 - Desativar a Autenticação de Dois Fatores
Antes de acessar o painel de administração, precisamos desativar a autenticação de dois fatores habilitada por padrão. O Magento tenta enviar e-mails 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 é desabilitar o recurso primeiro.
Se você tiver o sendmail configurado em seu servidor para enviar e-mails, pode pular esta etapa. Precisamos desativar dois dos módulos do Magento usando os seguintes comandos para desativar a autenticação de dois fatores.
$ sudo php /var/www/html/magento/bin/magento module:disable Magento_AdminAdobeImsTwoFactorAuth
$ sudo php /var/www/html/magento/bin/magento module:disable Magento_TwoFactorAuth
Execute o seguinte comando para criar as classes.
$ sudo php /var/www/html/magento/bin/magento setup:di:compile
Limpe o cache também.
$ sudo php /var/www/html/magento/bin/magento c:c
Passo 16 - Acessar o Portal de Administração
Você deve 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, pode recuperar a URI novamente usando o seguinte comando.
$ php /var/www/magento/bin/magento info:adminuri
Admin URI: /admin_l5pv1h
Abra a URL https://magento.example.com/admin_l5pv1h em seu navegador e você verá a seguinte tela.

Insira as credenciais de administrador que você forneceu durante a instalação e clique no botão Sign in para prosseguir. Você será recebido com a seguinte tela.

Você receberá um popup pedindo permissão para que a Adobe colete dados de uso. Clique no botão Don’t Allow para prosseguir.
A próxima etapa é configurar o SMTP para e-mails, para que possamos reabilitar a autenticação de dois fatores. Visite o menu Stores >> Configuration.

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

Desmarque a opção Use system value antes das opções Transport, Host, e Port. Clique no menu suspenso para Transport e selecione SMTP. Para nosso tutorial, estamos usando o Amazon SES como o remetente.

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 Save Config quando terminar. Agora que configuramos as configurações de e-mail, a próxima etapa é configurar os IDs de e-mail da loja para que possamos testá-los.
Role para cima, expanda o menu Geral na mesma página e selecione a opção Store Email Addresses.

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

Alterar opções de administrador pode afetar o cache e você receberá um aviso. Execute o seguinte comando para limpar o cache manualmente.
$ sudo php /var/www/html/magento/bin/magento c:c
Para testar os e-mails, visite a página da loja e abra a página Contact Us. Você pode usar a URL https://magento.example.com/contact/ diretamente para acessá-la. Envie uma mensagem de teste e clique no botão Submit. Você deve receber um e-mail semelhante.

Passo 17 - 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.
$ sudo php /var/www/html/magento/bin/magento module:enable Magento_AdminAdobeImsTwoFactorAuth
$ sudo php /var/www/html/magento/bin/magento module:enable Magento_TwoFactorAuth
Atualize a configuração para os módulos.
$ sudo php /var/www/html/magento/bin/magento setup:upgrade
Execute o seguinte comando para criar as classes.
$ sudo php /var/www/html/magento/bin/magento setup:di:compile
Limpe o cache também.
$ sudo php /var/www/html/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.
$ sudo php /var/www/html/magento/bin/magento setup:static-content:Deploy -f
Defina as permissões de arquivo.
$ cd /var/www/html/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.

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 Apply para prosseguir.

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 Authenticator code. Clique no botão Confirm para prosseguir para o painel de administração.
Conclusão
Isso conclui nosso tutorial sobre como instalar um site de eCommerce Magento em um servidor Rocky Linux 9 com um servidor Nginx e Elasticsearch. Se você tiver alguma dúvida, poste nos comentários abaixo.
Receba novas postagens na sua caixa de entrada
Sem spam. Cancele a assinatura a qualquer momento.