Como instalar Magento 2 com Nginx e Letsencrypt no Ubuntu 18.04
Este tutorial existe para estas versões do sistema operacional
- Ubuntu 11.04 (Natty Narwhal)
Nesta página
- Pré-requisitos
- O que faremos
- Etapa 1 - Instale o Nginx no Ubuntu 18.04 LTS
- Etapa 2 - Instalar e configurar o PHP-FPM 7.1
- Etapa 3 - Instalar e configurar o servidor MySQL
- Etapa 4 - Instalar e configurar o Magento 2
- - Instalar PHP Composer
- - Baixar Magento 2
- - Instalar componentes do Magento
- - Gerar SSL Letsencrypt
- - Configurar host virtual Nginx
- - Pós-instalação do Magento
- Adicional:
Magento é um software de comércio eletrônico de código aberto amplamente utilizado e um sistema de gerenciamento de conteúdo para sites de comércio eletrônico baseado no PHP Zend Framework. Ele usa MySQL ou MariaDB como backend de banco de dados. O desenvolvimento do Magento foi iniciado em 2008 pela Varien.
Neste tutorial, mostrarei como instalar o Magento 2 com Nginx, PHP 7.1 FPM e MySQL como banco de dados. Usarei o ubuntu 18.04 (Bionic Beaver) como sistema operacional do servidor. Se você ainda não possui uma configuração mínima de servidor, consulte este tutorial para obter uma configuração básica adequada.
Pré-requisitos
- Ubuntu 18.04
- 2 GB ou mais de memória RAM
- Privilégios de root
O que nos faremos
- Instale o Nginx no Ubuntu 18.04
- Instalar e configurar o PHP-FPM 7.1
- Instalar e configurar o servidor MySQL
- Instalar e configurar o Magento 2
- Instalar o PHP Composer
- Faça o download do Magento 2
- Instalar componentes do Magento
- Gerar SSL Letsencrypt
- Configurar host virtual Nginx para Magento
- Pós-instalação do Magento
Passo 1 - Instale o Nginx no Ubuntu 18.04 LTS
Neste tutorial, usaremos o servidor web Nginx para nossa instalação do Magento.
Efetue login no servidor, atualize o repositório e atualize todos os pacotes.
sudo apt update
sudo apt upgradeAgora instale o servidor web Nginx usando o comando apt abaixo.
sudo apt install nginx -y
Após a conclusão da instalação, inicie o serviço Nginx e habilite-o para iniciar sempre na inicialização do sistema.
systemctl start nginx
systemctl enable nginxO servidor da Web Nginx foi instalado, verifique-o usando o comando netstat e certifique-se de que a porta HTTP 80 esteja no estado LISTEN. Outra maneira é usar o comando curl conforme abaixo.
netstat -plntu
curl -I localhostEtapa 2 - Instalar e configurar o PHP-FPM 7.1
Após a instalação do servidor web Nginx, instalaremos o PHP 7.1 no servidor, pois o Magento ainda não suporta o PHP 7.2. Instalaremos o PHP-FPM com todas as extensões necessárias para o Magento 2.
Lista de extensões PHP necessárias para a instalação do Magento 2:
- bc-matemática
- ctype
- ondular
- dom
- gd, ImageMagick 6.3.7 (ou posterior) ou ambos
- intl
- mbstring
- mcrypt
- hash
- openssl
- PDO/MySQL
- SimpleXML
- sabão
- spl
- libxml
- xsl
- zip
- json
- iconv
Para este guia, instalaremos pacotes PHP-FPM do repositório PPA. Estaremos usando o repositório ondrej/php.
Instale o pacote software-properties-common e adicione o repositório ondrej/php usando os comandos abaixo.
sudo apt install software-properties-common -y
sudo add-apt-repository ppa:ondrej/php -yAgora instale o PHP-FPM 7.1 com todas as extensões necessárias.
sudo apt install php7.1-fpm php7.1-mcrypt php7.1-curl php7.1-cli php7.1-mysql php7.1-gd php7.1-xsl php7.1-json php7.1-intl php-pear php7.1-dev php7.1-common php7.1-mbstring php7.1-zip php7.1-soap php7.1-bcmath -y
Após a conclusão da instalação, verifique a versão do PHP e as extensões instaladas usando os comandos do PHP.
php -v
php -meEm seguida, configuraremos o arquivo php.ini para PHP-FPM e PHP-CLI.
Edite os arquivos php.ini usando o vim.
vim /etc/php/7.1/fpm/php.ini
vim /etc/php/7.1/cli/php.iniAltere o valor dessas linhas conforme abaixo.
memory_limit = 512M max_execution_time = 180 zlib.output_compression = On
Salvar e sair.
Agora reinicie o serviço PHP-fpm e habilite-o para iniciar toda vez na inicialização do sistema.
systemctl restart php7.1-fpm
systemctl enable php7.1-fpmA instalação e configuração do PHP-FPM 7.1 foram concluídas, verifique o serviço usando o comando netstat.
netstat -pl | grep php
E você obterá o arquivo de meias PHP-fpm conforme abaixo.
Etapa 3 - Instalar e configurar o servidor MySQL
O software Magento requer MySQL 5.6.x, e o Magento 2.1.2 ou posterior requer MySQL 5.7.x. Neste tutorial, instalaremos o servidor MySQL 5.8 mais recente no sistema Ubuntu 18.04.
Instale o MySQL 5.8 usando o comando apt abaixo.
sudo apt install mysql-server mysql-client -y
Após a conclusão da instalação, inicie o serviço MySQL e habilite-o para iniciar sempre na inicialização do sistema.
systemctl start mysql
systemctl enable mysqlAgora vamos configurar a senha root do MySQL usando o comando mysql_secure_installation.
mysql_secure_installation
Nesta versão do MySQL 5.8, há uma melhoria de segurança para a política de senha do MySQL. Você precisa escolher a política de senha - 0 para a política BAIXA, 1 para a política MÉDIA e 2 para uma política de senha FORTE.
Para este guia, usaremos a política de senha MÉDIA e é recomendável usar a política de senha FORTE no servidor de produção.
Escolha o número 1 e pressione Enter, depois digite sua nova senha root do MySQL.
Remove anonymous users? (Press y|Y for Yes, any other key for No) : Y
Disallow root login remotely? (Press y|Y for Yes, any other key for No) : Y
Remove test database and access to it? (Press y|Y for Yes, any other key for No) : Y
Reload privilege tables now? (Press y|Y for Yes, any other key for No) : YA senha root do MySQL foi configurada.
Em seguida, criaremos um novo banco de dados para nossa instalação do Magento. Criaremos um novo banco de dados chamado magentodb com o usuário magentouser e a senha é [email #.
Faça login no shell do MySQL usando o usuário root.
mysql -u root -p
Agora execute as consultas MySQL abaixo para criar o banco de dados e o usuário.
create database magentodb;
create user #';
flush privileges;A instalação e configuração do servidor MySQL para a instalação do Magento foi concluída.
Etapa 4 - Instalar e configurar o Magento 2
Nesta etapa, instalaremos a versão mais recente do Magento 2.2.4 do repositório Github. Vamos instalar o compositor PHP para instalar os componentes do Magento, baixar o Magento do repositório Github, configurar o host virtual Nginx para o Magento e instalar o Magento usando a pós-instalação baseada na web.
- Instalar PHP Composer
Instale o PHP Composer no Ubuntu 18.04 usando o comando apt abaixo.
sudo apt install composer -y
Após a conclusão da instalação, verifique a versão do composer instalada no sistema.
composer -V
A versão mais recente do PHP Composer foi instalada.
- Baixar Magento 2
Vá para o diretório /var/www e baixe o código-fonte do arquivo Magento do Github usando o comando wget.
cd /var/www/
wget https://github.com/magento/magento2/archive/2.2.4.tar.gzAgora extraia o arquivo Magento e renomeie o diretório para magento2.
tar -xf 2.2.4.tar.gz
mv magento2-2.2.4/ magento2/O código-fonte Magento foi baixado e o diretório /var/www/magento2 será a raiz da web para o site Magento.
- Instalar componentes do Magento
Instale os componentes do Magento usando o compositor PHP. Vá para o diretório magento2 e instale todos os componentes PHP necessários para o Magento usando o comando composer.
cd /var/www/magento2
composer install -vApós a conclusão da instalação, você obterá o resultado conforme mostrado abaixo.
- Gerar SSL Letsencrypt
Protegeremos nossa instalação do Magento usando SSL da Letsencrypt. Instale o Letsencrypt usando o comando apt abaixo.
sudo apt install letsencrypt -y
Após a conclusão da instalação, interrompa o serviço nginx.
systemctl stop nginx
Agora gere os certificados SSL para o nome de domínio usando o comando certbot conforme abaixo.
certbot certonly --standalone -d magento.hakase-labs.pw
Digite seu endereço de e-mail, aceite o Letsencrypt TOS e digite N para compartilhamento de e-mail.
Quando estiver completo, você obterá o resultado abaixo.
Os arquivos de certificado Letsencrypt SSL foram gerados no diretório /etc/letsencrypt/live.
- Configurar host virtual Nginx
Vá para o diretório /etc/nginx/sites-available e crie um novo arquivo de host virtual magento usando o vim.
cd /etc/nginx/sites-available/
vim magentoCole a seguinte configuração lá.
upstream fastcgi_backend { server unix:/run/php/php7.1-fpm.sock; } server { listen 80; listen [::]:80; server_name magento.hakase-labs.pw; return 301 https://$server_name$request_uri; } server { listen 443 ssl; server_name magento.hakase-labs.pw; ssl on; ssl_certificate /etc/letsencrypt/live/magento.hakase-labs.pw/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/magento.hakase-labs.pw/privkey.pem; set $MAGE_ROOT /var/www/magento2; set $MAGE_MODE developer; include /var/www/magento2/nginx.conf.sample; }
Salve a configuração e saia.
Agora ative o host virtual criando o link simbólico para o arquivo do host virtual Magento para o diretório habilitado para sites.
ln -s /etc/nginx/sites-available/magento /etc/nginx/sites-enabled/
Teste o arquivo de configuração nginx e verifique se não há erro.
nginx -t
Agora reinicie o serviço PHP-FPM e Nginx.
systemctl restart php7.1-fpm
systemctl restart nginxE altere o proprietário do diretório web-root do Magento para o usuário e grupo www-data.
chown -R www-data:www-data /var/www/magento2/
O host virtual nginx para Magento foi adicionado.
- Pós-instalação do Magento
Abra o navegador da Web e digite a URL do Magento. O meu é:
Para os Termos e Acordo, clique no botão Concordar e Configurar Magento.
Agora verifique todas as configurações do sistema e do servidor para Magento Readlines Check e certifique-se de que ele passe em todas as verificações de sistema e configuração conforme abaixo.
Agora clique no botão Avançar.
Configuração do banco de dados para Magento - digite todas as informações do nosso banco de dados e clique em Avançar.
Para a configuração da web, altere o endereço da loja para HTTPS, Magento Admin Address com o URL do caminho do administrador e desmarque o Apache Rewrites, porque estamos usando o servidor da web Nginx.
Clique no botão Avançar novamente.
Deixe Personalizar sua loja como padrão e clique em Avançar.
Digite seu usuário administrador e senha e clique em Avançar.
E clique no botão Instalar agora para instalar o Magento.
E quando a instalação estiver concluída, você obterá o resultado de sucesso conforme abaixo.
Agora precisamos desabilitar o acesso de gravação para o diretório /var/www/magento2/app/etc. Execute o comando abaixo.
sudo chmod -w /var/www/magento2/app/etc
O Magento foi instalado no servidor Ubuntu 18.04 Bionic Beaver.
Passo 5 - Teste
Digite o endereço inicial da URL do Magento e certifique-se de obter a página inicial padrão do Magento. O meu é: https://magento.hakase-labs.pw/
Agora faça login no painel de administração do Magento visitando o URL definido durante a instalação admin_hakase. O meu é:
Digite o nome de usuário e a senha e clique no botão Entrar.
E você obterá o painel de administração do Magento conforme abaixo.
Magento 2 foi instalado no Ubuntu 18.04 com servidor web Nginx, banco de dados MySQL e PHP-FPM 7.1.
Adicional:
Se você receber um erro sobre um cronjob do indexador Magento ausente, poderá resolvê-lo gerando o script crontab usando o comando abaixo:
cd /var/www/magento2
sudo -u www-data php bin/magento cron:install --forceAgora verifique o script crontab da lista para o usuário www-data.
crontab -u www-data -l
Referência
- https://devdocs.magento.com/