O Magento é uma plataforma de e-commerce poderosa e rica em recursos que permite às empresas criar e gerenciar lojas online.
Com uma ampla variedade de recursos integrados e a capacidade de personalizar e estender a funcionalidade por meio de extensões de terceiros, o Magento é uma escolha popular para empresas de todos os tamanhos.
Alguns dos benefícios e recursos do Magento incluem:
- Uma plataforma flexível e personalizável que permite criar uma loja online única e de marca
- Ferramentas avançadas de gerenciamento de catálogo que facilitam o gerenciamento do seu catálogo de produtos
- Suporte para vários idiomas e moedas, permitindo que você venda para clientes em todo o mundo
- Ferramentas poderosas de marketing e promoção que ajudam você a atrair e reter clientes
- Recursos avançados de relatórios e análises que ajudam você a entender seus clientes e otimizar sua loja
Neste artigo, vamos ensinar como instalar o Magento usando a versão 2.4 em um servidor Ubuntu. Siga nosso tutorial abaixo.
ÍNDICE DE CONTEÚDO
Pré-Requisitos
- Servidor Ubuntu 22.04 +
- Acesso SSH ao servidor
Qualquer dúvida, consulte a lista de requisitos na documentação oficial do Magento.
A última versão estável do Magento é a 2.4.6-p2 lançada em 8 de Agosto de 2023.
Etapas de instalação do Magento
Antes de começar, você precisará de um servidor Ubuntu ou equivalente instalado com no mínimo 4GB de memória.
E para este tutorial, usamos um servidor na Digital Ocean.
1. Instale o NGINX
Primeiro, vamos instalar o NGINX. Para isso use o comando abaixo:
sudo apt-get install nginx
2. Instale o MySQL
Em seguida, instale o MySQL usando o seguinte comando:
sudo apt-get install mysql-server
3. Instale o PHP
Adicione o repositório que mantém pacotes PHP para Ubuntu.
sudo add-apt-repository ppa:ondrej/php
Agora instale o PHP e as extensões necessárias usando o seguinte comando:
sudo apt install php8.2 php8.2-mysql php8.2-xml php8.2-mbstring php8.2-intl php8.2-zip php8.2-soap php8.2-curl php8.2-gd php8.2-bcmath php8.2-opcache -y
Depois de instalar o PHP 8.2 e os módulos necessários, você pode verificar a versão do PHP instalada usando o comando “php -v”.
Se a instalação foi bem-sucedida, você deverá ver a versão do PHP 8 sendo exibida.
Lembre-se de que o Magento 2 requer o PHP 8 ou uma versão posterior para funcionar corretamente.
Se você estiver usando uma versão anterior do PHP, pode ser necessário atualizar para o PHP 8 antes de instalar o Magento 2.
4. Configure o NGINX
Você pode configurar o Nginx para Magento criando um novo arquivo de configuração Nginx para seu site Magento.
Para fazer isso, execute o seguinte comando:
sudo nano /etc/nginx/sites-available/magento
Cole a seguinte configuração no arquivo, certificando-se de substituir your_domain.com pelo seu nome de domínio real:
server {
listen 80;
server_name your_domain.com;
root /var/www/html;
index index.php;
set $MAGE_ROOT /var/www/html;
set $MAGE_MODE developer;
location / {
try_files $uri $uri/ /index.php$is_args$args;
}
location ~ ^/(app|bin|errors|lib|php.ini|setup|var)/ {
deny all;
}
location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ {
expires max;
log_not_found off;
}
location ~ \.php$ {
fastcgi_index index.php;
fastcgi_param PHP_FLAG "session.auto_start=off \n suhosin.session.cryptua=off";
fastcgi_param PHP_VALUE "memory_limit=256M \n max_execution_time=600";
fastcgi_read_timeout 600s;
fastcgi_pass unix:/var/run/php/php8.2-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
Depois de colar a configuração no arquivo, salve-o e saia do editor Nano.
Para habilitar a nova configuração do Nginx, você precisa criar um link simbólico do diretório sites-available para o diretório sites-enabled.
Você pode fazer isso executando o seguinte comando:
sudo ln -s /etc/nginx/sites-available/magento /etc/nginx/sites-enabled/
Em seguida, teste a configuração do Nginx executando o seguinte comando:
sudo nginx -t
Reinicie o Nginx:
sudo systemctl restart nginx
Verifique se o Nginx está sendo executado usando o comando:
systemctl status nginx
Se o Nginx estiver sendo executado, você verá uma mensagem como “Active: active (running)“.
Mas se não estiver sendo executado, use o comando “systemctl start nginx” para iniciá-lo.
5. Instale e configure um SSL da Let’s Encrypt
Para instalar um certificado SSL da Let’s Encrypt, você precisará usar o utilitário Certbot.
O Certbot é uma ferramenta que automatiza o processo de obtenção e renovação de certificados SSL da Let’s Encrypt.
Use os comandos abaixo instalar e configurar um certificado SSL da Let’s Encrypt usando o Certbot:
sudo apt-get install software-properties-common
sudo add-apt-repository ppa:certbot/certbot
sudo apt-get install certbot python3-certbot-nginx
Obtenha um certificado SSL:
sudo certbot --nginx -d example.com -d www.example.com
Substitua “example.com” pelo seu nome de domínio.
Atualize sua configuração do Nginx para usar o certificado SSL:
server {
listen 80;
listen 443 ssl;
server_name example.com;
root /var/www/html;
index index.php index.html index.htm;
# SSL Settings
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
# Gzip Settings
gzip on;
gzip_min_length 1000;
gzip_proxied expired no-cache no-store private auth;
gzip_types text/plain text/css text/xml application/json application/javascript application/x-javascript image/svg+xml;
# Cache Settings
location ~* \.(?:css|js|svg|gif|png|html|ico|woff|ttf)$ {
expires 1y;
add_header Pragma public;
add_header Cache-Control "public, must-revalidate, proxy-revalidate";
}
# HTTPS Redirection
if ($scheme = http) {
return 301 https://$server_name$request_uri;
}
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~ \.php$ {
try_files $uri =404;
fastcgi_pass unix:/var/run/php/php8.2-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
# Error Pages
error_page 404 /404.html;
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}
Este arquivo de configuração inclui configurações para habilitar SSL e também inclui a compactação gzip, cache, redirecionamento HTTPS e páginas de erro personalizadas.
6. Instale o Composer
Instale o Composer executando o seguinte comando:
php -r "readfile('https://getcomposer.org/installer');" | php
ou
curl -sS https://getcomposer.org/installer | sudo php -- --install-dir=/usr/local/bin --filename=composer
Este último comando é útil se você deseja instalar o Composer em um local específico ou se deseja usar um nome de arquivo diferente para o executável do Composer.
7. Crie um banco de dados MySQL
Chegou a hora de criar um banco de dados MySQL para o Magento 2.
Para isso, usaremos o seguinte comando para criar um banco de dados chamado “magento“:
mysql -u root -p
Digite a senha do usuário root quando solicitado.
Crie um novo banco de dados para o Magento 2 usando o seguinte comando:
CREATE DATABASE magento;
Crie um novo usuário para o Magento 2 com permissões de acesso ao banco de dados criado.
Por exemplo, você pode criar um usuário chamado “magento” com a senha “minhasenha” usando o seguinte comando:
CREATE USER 'magento'@'localhost' IDENTIFIED BY 'minhasenha';
Conceda todas as permissões ao usuário para o banco de dados criado.
Por exemplo, você pode conceder todas as permissões ao usuário “magento” para o banco de dados “magento” usando o seguinte comando:
GRANT ALL PRIVILEGES ON magento.* TO 'magento'@'localhost';
Atualize as permissões para que as alterações entrem em vigor:
FLUSH PRIVILEGES;
Saia do MySQL:
exit
Agora você criou e configurou um banco de dados MySQL para o Magento 2. Você pode usar o usuário e senha criados para se conectar ao banco de dados a partir do Magento 2.
Quando você instalar o Magento 2, será solicitado que forneça essas informações de banco de dados para que o Magento 2 possa se conectar ao banco de dados e usá-lo para armazenar informações.
8. Instale o Elasticsearch
Para instalar o Elasticsearch, adicione o repositório Elastic ao seu servidor e instale o Elasticsearch usando o comando apt-get:
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-7.x.list
sudo apt-get update
sudo apt-get install elasticsearch
Se preferir, você também pode usar o Composer para instalar o Elasticsearch:
composer require elasticsearch/elasticsearch
Por padrão, o Elasticsearch escuta no host local (127.0.0.1) e na porta 9200.
Se você deseja vincular o Elasticsearch a um endereço IP ou porta diferente, pode editar as configurações network.host e http.port no arquivo de configuração do Elasticsearch: /etc/elasticsearch/elasticsearch.yml
Uma vez instalado o Elasticsearch, você pode iniciá-lo executando o seguinte comando:
sudo service elasticsearch start
ou
sudo systemctl start elasticsearch
Verifique se o Elasticsearch está em execução:
curl -X GET "localhost:9200"
Isso deve retornar uma resposta JSON contendo informações e estatísticas do Elasticsearch.
9. Baixe a última versão do Magento 2
a) Baixe a última versão do Magento 2 a partir do site oficial. Você pode fazer isso usando o comando wget:
wget https://www.magentocommerce.com/downloads/assets/2.4.1/magento-2.4.1.tar.gz
Veja as instruções no site oficial (https://magento.com/tech-resources/download).
b) Descompacte o arquivo baixado:
tar -xzvf magento-2.4.1.tar.gz
Ou use comando abaixo caso tenha baixado a última versão:
tar xvzf magento.tar.gz
c) Crie um diretório para a instalação do Magento e mova os arquivos extraídos para lá. Por exemplo, vamos criar um diretório chamado “magento” na raiz do documento do servidor Nginx:
sudo mkdir /var/www/html/magento
d) Use o comando mv para mover os arquivos:
sudo mv magento/* /var/www/html/magento
e) Defina as permissões corretas para os arquivos e diretórios do Magento. Você pode fazer isso executando os seguintes comandos:
sudo chown -R www-data:www-data /var/www/html/magento
sudo chmod -R 775 /var/www/html/magento
f) Abra o seu navegador e vá para “http://seudominio.com” usando seu nome de domínio para concluir a instalação do Magento 2.
Depois que o assistente de configuração terminar de instalar e configurar o Magento, você poderá acessar o back-end do Magento inserindo http://seudominio/admin seu navegador da Web.
Opção de instalação do Magento usando o Composer
Para instalar o Magento usando o Composer, pule a etapa 9 deste tutorial.
Navegue até o diretório onde deseja instalar o Magento, por exemplo /var/www/html
Execute o seguinte comando para criar um novo projeto Magento usando o Composer:
composer create-project --repository-url=https://repo.magento.com/ magento/project-community-edition=2.4.1 magento
Para obter suas chaves de autenticação, siga estas etapas:
- Vá para a página de login da conta Magento Commerce ( https://account.magento.com/customer/account/login/ ).
- Faça login na sua conta do Magento Commerce.
- Uma vez logado, clique na aba Marketplace.
- Clique em My Profile (Meu perfil).
- Depois clique em Access Keys.
- Por fim crie suas chaves clicando no botão Create A New Access Key.
Você precisará usar essas chaves para autenticar quando acessar o repositório do Magento Commerce Composer.
Para adicionar ao arquivo auth.json localizado no diretório auth.json do projeto:
nano /path/to/auth.json
Aqui está um exemplo de como seu arquivo auth.json deve ficar:
{
"http-basic": {
"repo.magento.com": {
"username": "YOUR_PUBLIC_KEY",
"password": "YOUR_PRIVATE_KEY"
}
}
}
Agora você tem o Magento em um novo diretório chamado “magento”.
Não se esqueça de alterar o diretório na configuração do NGINX:
sudo nano /etc/nginx/sites-available/default
Dentro do arquivo, altere somente a parte destacada:
server {
listen 80;
server_name www.example.com;
root /var/www/html/magento/pub;
...
}
Mude para o diretório Magento (/var/www/html/magento) e execute o seguinte comando para instalar o Magento:
php bin/magento setup:install
Este comando solicitará seus detalhes de conexão com o banco de dados e outras opções de configuração.
Quando a instalação estiver concluída, você terá uma loja Magento totalmente funcional.
Tradução do Magento 2 para o Português
Basta usar os comandos abaixo:
php bin/magento deploy:mode:set developer
composer require community-engineering/language-pt_br
php bin/magento setup:static-content:deploy {pt_BR,en_US} -f
php bin/magento c:f
Dicas de Otimização para Desempenho do Magento
Existem algumas maneiras de otimizar o Magento para melhorar o desempenho da sua loja, veja algumas abaixo:
- Ativar cache: o cache pode melhorar significativamente o desempenho de sua loja, reduzindo o número de consultas ao banco de dados e o processamento PHP necessário para gerar uma página. O Magento possui várias opções de cache integradas, incluindo cache de página inteira e cache de bloco.
- Use um CDN: pode ajudar a reduzir a carga em seu servidor servindo ativos estáticos (como imagens e arquivos JavaScript) de uma rede de servidores em todo o mundo.
- Otimize suas imagens: imagens grandes podem tornar sua loja mais lenta, por isso é importante otimizá-las para reduzir o tamanho do arquivo. Você pode usar ferramentas como ImageOptim ou Kraken.io para compactar suas imagens.
- Ativar compactação Gzip: a compactação Gzip pode reduzir o tamanho dos dados transferidos entre seu servidor e o cliente, o que pode melhorar a velocidade de carregamento de sua loja.
- Use um acelerador PHP: os aceleradores PHP, como OPcache ou APC, podem melhorar o desempenho do PHP armazenando em cache a versão compilada dos scripts PHP na memória.
Ativar a compactação Gzip
Para ativar a compactação Gzip no Nginx, você pode adicionar as seguintes linhas ao seu arquivo de configuração Nginx:
gzip on;
gzip_comp_level 6;
gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;
Ativar um acelerador PHP
Para instalar e ativar um acelerador PHP, como OPcache ou APC, você precisará seguir as etapas abaixo.
Para instalar o OPcache, você precisará habilitar o módulo php-opcache.
Isso pode ser feito executando o seguinte comando:
sudo apt-get install php-opcache
Para instalar o APC, você precisará instalar o pacote php-apcu. Isso pode ser feito executando o seguinte comando:
sudo apt-get install php-apcu
Para habilitar qualquer um deles, acesse seu arquivo php.ini pelo comando (substitua php8.2-fpm pela versão do seu PHP):
sudo nano /etc/php/8.2/fpm/php.ini
O OPcache, você pode habilitar ao adicionar as seguintes linhas ao seu arquivo php.ini:
zend_extension=opcache.so
opcache.enable=1
E o APC, você precisará adicionar as seguintes linhas ao seu arquivo php.ini:
extension=apcu.so
apc.enabled=1
Reinicie o serviço PHP-FPM (substitua php8.2-fpm pela versão do seu PHP):
sudo systemctl restart php8.2-fpm
Instale o Varnish e o Redis
1. Siga as etapas abaixo para instalar e configurar o Varnish e Redis.
Instale o Varnish e o Redis com o comando abaixo:
sudo apt-get install varnish redis-server
Edite o arquivo de configuração do Varnish (geralmente localizado em /etc/varnish/default.vcl) para especificar o servidor de back-end e outras configurações para a instalação do Magento.
sudo nano /etc/varnish/default.vcl
Localize o bloco backend no arquivo e atualize as configurações .host e .port para especificar o servidor de back-end para sua instalação do Magento:
backend default {
.host = "127.0.0.1";
.port = "8080";
...
}
Substitua 127.0.0.1 pelo endereço IP do seu servidor de back-end e 8080 pela porta na qual o servidor de back-end está escutando.
Atualize a função vcl_recv para especificar quaisquer configurações adicionais para o Varnish, como o cache TTL (time-to-live) e a lista de URLs a serem excluídos do armazenamento em cache:
sub vcl_recv {
...
set req.grace = 15m;
if (req.url ~ "^/api") {
return (pass);
}
...
}
Este exemplo define o período de tolerância do cache para 15 minutos e exclui URLs que começam com /api do armazenamento em cache.
Salve as alterações no arquivo de configuração do Varnish e saia do editor de texto.
Reinicie o serviço Varnish para aplicar as alterações:
sudo service varnish restart
2. Atualize o arquivo de configuração NGINX (geralmente localizado em /etc/nginx/sites-available/magento) para ouvir na porta 8080 em vez da porta 80 e incluir as diretivas proxy_cache_path e proxy_temp_path.
sudo nano /etc/nginx/sites-available/magento
3. Localize o bloco server no arquivo e atualize a diretiva listen para especificar a porta 8080 em vez da porta 80:
server {
listen 8080;
...
}
4. Adicione as diretivas proxy_cache_path e proxy_temp_path ao bloco do servidor:
server {
listen 8080;
...
proxy_cache_path /var/www/magento/var/cache/nginx levels=1:2 keys_zone=magento_cache:10m max_size=10g inactive=60m use_temp_path=off;
proxy_temp_path /var/www/magento/var/tmp;
...
}
OBS: Substitua /var/www/magento caso o caminho da sua instalação do Magento seja outro.
Reinicie o serviço NGINX para aplicar as alterações:
sudo service nginx restart
Configuração do Redis
Para configurar o Redis, edite o arquivo de configuração (geralmente localizado em /etc/redis/redis.conf) para especificar as configurações de cache do Redis para sua instalação do Magento.
sudo nano /etc/redis/redis.conf
Localize as configurações de maxmemory e maxmemory-policy no arquivo e atualize-as para especificar a quantidade máxima de memória que o Redis pode usar para armazenamento em cache:
maxmemory 256mb
maxmemory-policy allkeys-lru
Substitua 256mb pela quantidade máxima de memória que você deseja permitir que o Redis use para armazenamento em cache.
A configuração maxmemory-policy especifica qual ação o Redis deve executar quando o limite máximo de memória for atingido.
E a política allkeys-lru significa que o Redis removerá as chaves usadas menos recentemente para liberar espaço para novas chaves.
Salve as alterações no arquivo de configuração do Redis e saia do editor de texto. Reinicie o serviço Redis para aplicar as alterações:
sudo service redis-server restart
Atualize o arquivo de configuração do Magento (geralmente localizado em app/etc/env.php) para habilitar o cache Redis e especificar o servidor e a porta Redis.
sudo nano app/etc/env.php
Localize a seção cache no arquivo e atualize as configurações de front-end e back-end para especificar o cache do Redis:
'cache' =>
array (
'frontend' =>
array (
'default' =>
array (
'backend' => 'Cm_Cache_Backend_Redis',
'backend_options' =>
array (
'server' => '127.0.0.1',
'port' => '6379',
'database' => '0',
'password' => '',
),
),
'page_cache' =>
array (
'backend' => 'Cm_Cache_Backend_Redis',
'backend_options' =>
array (
'server' => '127.0.0.1',
'port' => '6379',
'database' => '1',
'password' => '',
),
),
),
'backend' =>
array (
'default' => 'Cm_Cache_Backend_Redis',
),
),
Substitua 127.0.0.1 pelo endereço IP do seu servidor Redis e 6379 pela porta na qual o Redis está escutando.
No Redis, a porta padrão é 6379 e no no Varnish, a porta padrão é 6081.
Você pode usar essas portas padrão em suas configurações de Redis e Varnish, a menos que haja um motivo específico para usar uma porta diferente.
Salve as alterações no arquivo de configuração do Magento e saia do editor de texto. Limpe o cache do Magento:
php bin/magento cache:clean
Agora sua Loja Magento está pronta para decolar!
Mas ainda falta uma coisa, um bom Tema!
Se quiser melhorar a aparência da sua Loja, temos um Artigo com os melhores Temas para Magento.
É basicamente isso! Se tiver dúvidas, deixe um comentário!