Como instalar o Magento 2 no Ubuntu 20.04 LTS

Um guia completo sobre como configurar e implantar a loja Magento2 em um servidor Ubuntu 20.04.

Magento é uma plataforma de comércio eletrônico popular construída e escrita em PHP, usada por muitas empresas de pequena escala para vender produtos e criar uma presença online. Ele permite que você crie uma loja online completa com recursos como gerenciamento de estoque, catálogos de produtos, remessa, faturamento e muito mais.

Se você está procurando construir uma plataforma de compras elegante e de nível empresarial para o seu negócio, o Magento deve ser um excelente ponto de partida. Portanto, neste guia, veremos como configurar a edição da comunidade Magento versão 2.3 com pilha LAMP em um servidor Ubuntu 20.04.

Pré-requisitos

Você precisará de um servidor Ubuntu 20.04 LTS e conectado como um sudo usuário habilitado. Você também precisará de um nome de domínio apontando para o IP do servidor Ubuntu 20.04. Nós vamos usar example.com sempre que o nome de domínio for necessário, substitua-o pelo seu domínio. Antes de começar, atualize a lista de pacotes e então atualize os pacotes em seu servidor Ubuntu 20.04.

sudo apt update && sudo apt update

Instale o Apache Web Server

Magento requer um servidor web para funcionar, neste guia escolhemos usar o aplicativo Magento sobre a pilha LAMP (Linux, Apache, MySQL, PHP). Portanto, vamos instalar todos os pacotes que consistem na pilha LAMP.

O servidor web Apache é um dos servidores web mais populares da Internet, com quase 37,2% do mercado total de servidores web. Você também pode optar por instalar o Magento sobre a pilha LEMP, que usa o servidor da web Nginx em vez do apache. Mas neste guia vamos implantar nosso servidor Megento com a ajuda do Apache.

Para instalar o servidor da web Apache, execute o comando abaixo:

sudo apt install apache2

Digite sua senha de usuário e pressione Y se solicitado. Quando a instalação for concluída, precisamos configurar o firewall simples do Ubuntu (UFW) para permitir o tráfego na porta 80 & 443.

O UFW vem com perfis pré-configurados que podem ser alternados para permitir que o aplicativo acesse as portas em seu servidor Ubuntu 20.04. Então, quando você instalou o servidor da web Apache, perfis UFW chamados ‘Apache’, ‘Apache Full’ e ‘Apache Secure’ foram adicionados à lista de aplicativos UFW. Permitir que o servidor da web Apache sirva na porta 80 & 443 Correndo:

sudo ufw allow 'Apache Full'

Agora, tudo o que precisamos fazer é habilitar o UFW, mas antes de fazer isso, certifique-se de que você permitiu a porta 22 (SSH). Se você não alterar as regras SSH UFW, você pode ser bloqueado do seu servidor Ubuntu 20.04.

sudo ufw allow 'OpenSSH'

Por fim, habilite o firewall UFW executando:

sudo ufw enable

pressione Y se você receber um prompt dizendo que o comando pode interromper as conexões SSH, pois já adicionamos uma regra para permitir SSH através dele. Agora você pode acessar o servidor web apache através do seu navegador, digite o endereço IP do seu servidor Ubuntu 20.04 na barra de URL e pressione Enter.

página padrão do apache2 ubuntu

Instale o servidor MySQL

Você também precisará de um servidor de banco de dados para executar o Magento, pois é onde todo o conteúdo da loja Magento é armazenado. Vamos instalar o servidor MySQL e criar um usuário chamado magentouser e um banco de dados chamado magento para o Magento.

O pacote MySQL é chamado de servidor mysql nos repositórios do Ubuntu, instale-o executando:

sudo apt install mysql-server

Em seguida, precisamos definir corretamente as configurações de segurança do MySQL. Felizmente, o pacote MySQL vem com um script de segurança que torna a configuração do servidor MySQL mais fácil. Portanto, execute este script executando o seguinte comando:

sudo mysql_secure_installation

Várias perguntas serão feitas a você, estas são as configurações ideais para o servidor MySQL:

  • Gostaria de configurar o componente VALIDATE PASSWORD? [S / n]: Enter Y
  • Existem três níveis de política de validação de senha.
    • Insira 0 = BAIXO, 1 = MÉDIO e 2 = FORTE: Insira 2
  • Defina a senha do root aqui.
    • Nova senha: digite uma senha para o usuário root do MySQL.
    • Digite novamente a nova senha: Repita a senha escolhida.
  • Remover usuários anônimos? [s / n]: Insira Y
  • Desautorizar login de root remotamente? [s / n]: Insira Y
  • Remover banco de dados de teste e acesso a ele? [s / n]: Insira Y
  • Recarregar tabelas de privilégios agora? [s / n]: Insira Y

Em seguida, para verificar e validar se o servidor MySQL está instalado e funcionando corretamente, faça login no servidor MySQL como usuário root:

sudo mysql

Insira o seu sudo senha do usuário quando for solicitado e pressione Enter. O usuário root do MySQL usa o unix_socket para autenticar o login. O que isso significa essencialmente é que você precisa ser um sudo usuário para fazer login no servidor MySQL como seu usuário root.

Crie um novo banco de dados e usuário para Magento

Agora podemos criar um usuário MySQL para Magento e se você seguiu cada passo deste guia, deve ter o console MySQL aberto. Crie um banco de dados chamado magento inserindo a seguinte consulta no console MySQL:

CRIAR BANCO DE DADOS magento;

Para criar um novo usuário MySQL chamado magentouser, execute esta consulta no console:

CRIAR USUÁRIO 'magentouser' @ '%' IDENTIFICADO COM mysql_native_password POR 'senha';

Observação: Substitua o senha na consulta com uma senha forte de sua escolha.

Em seguida, conceda o novo magentouser acesso total ao magento base de dados:

GRANT ALL ON magento. * TO 'magentouser' @ '%' COM GRANT OPTION;

Precisamos definir o log_bin_trust_function_creators parâmetro como 1, pois está desabilitado na versão mais recente do MySQL e sem habilitá-lo Magento lança alguns erros durante a instalação. Para fazer isso, execute a seguinte consulta:

SET GLOBAL log_bin_trust_function_creators = 1;

Por fim, recarregue os privilégios e configurações do banco de dados que alteramos e saia do console usando estas consultas:

PRIVILÉGIOS DE FLUSH; SAÍDA;

Instale o PHP e as extensões necessárias

Magento requer PHP e algumas extensões PHP para funcionar. No momento em que este artigo foi escrito, a versão da edição da comunidade Magento 2.3 não funciona com a versão mais recente do PHP 7.4 e, portanto, precisamos instalar a versão PHP 7.3.

Precisamos adicionar um PPA PHP de terceiros para que possamos instalar a versão PHP 7.3 como os repositórios do Ubuntu têm apenas os mais recentes 7.4 pacotes. Adicione o PPA e atualize a lista de pacotes executando estes comandos:

sudo add-apt-repository ppa: ondrej / php && sudo apt update

Em seguida, instale o PHP 7.3 e todos os módulos PHP que o Magento requer executando o seguinte comando:

sudo apt install php7.3 php7.3-common php7.3-mysql php7.3-fpm php7.3-gmp php7.3-curl php7.3-intl php7.3-mbstring php7.3-xmlrpc php7.3- gd php7.3-xml php7.3-cli php7.3-zip php7.3-bcmath php7.3-soap libapache2-mod-php7.3

Após a instalação do PHP 7.3, precisamos definir algumas configurações básicas que são recomendadas pelo Magento para funcionar corretamente. Execute este comando para abrir o arquivo de configuração da extensão FPM usando o nano

sudo nano /etc/php/7.3/fpm/php.ini

Aqui estão algumas das configurações recomendadas para a maioria dos sites Magento.

file_uploads = Ligado allow_url_fopen = Ligado short_open_tag = Ligado memory_limit = 256M cgi.fix_pathinfo = 0 upload_max_filesize = 100M max_execution_time = 360

Salve as alterações pressionando Ctrl + O em seguida, saia do editor nano pressionando Ctrl + X. Agora temos o PHP e todas as extensões necessárias e, portanto, podemos prosseguir para obter o Magento.

Instale o Composer

Composer é um gerenciador de dependências de PHP que torna a instalação de bibliotecas e frameworks PHP mais fácil. Precisamos do Composer para baixar e instalar o Magento em nosso servidor Ubuntu 20.04.

O Composer requer um pacote chamado descompactar para extrair as bibliotecas e estruturas baixadas, instale-as executando:

sudo apt install descompactar

Em seguida, instale o composer em todo o sistema executando este comando:

curl -sS //getcomposer.org/installer | sudo php - --install-dir = / usr / local / bin --filename = composer

O comando acima deve instalar o gerenciador de dependência Composer no servidor Ubuntu 20.04. Verifique se o Composer está instalado corretamente executando:

compositor
 SAÍDA:  ______ / ____ / ___ ____ ___ ____ ____ ________ _____ / / / __ \ / __ `__ \ / __ \ / __ \ / ___ / _ \ / ___ / / / ___ / / _ / / / / / / / / _ / / / _ / (__) __ / / \ ____ / \ ____ / _ / / _ / / _ / .___ / \ ____ / ____ / \ ___ / _ / / _ / Composer versão 1.10.8 2020-06- 24 21:23:30 Uso: comando [opções] [argumentos] 

Baixe e instale o Magento

Podemos agora prosseguir com o download e instalação do Magento, já que instalamos e configuramos todos os pacotes necessários exigidos pelo Magento.

Criação de uma conta Magento

Para baixar Magento em seu servidor Ubuntu 20.04, você precisará de uma chave de acesso Magento 2. Para obter esta chave de acesso, você precisará de uma conta Magento. Se você não está registrado e não tem uma conta Magento, vá até esta página e clique em ‘Registrar’.

Depois de criar uma conta Magento, você será capaz de criar uma nova chave de acesso para fazer o download do Magento 2 em sua máquina usando o composer. Você pode ver todas as suas chaves de acesso Magento nesta página. Se não houver uma chave de acesso na guia Magento 2, clique no botão ‘Criar uma nova chave de acesso’ e dê um nome a ela e pressione ‘OK’.

Essas chaves são suas credenciais usadas para baixar Magento 2 do repositório Magento via Composer. Usaremos essas chaves quando baixarmos o Magento, mas antes de fazer isso vamos configurar a propriedade do diretório e as permissões.

Propriedade de pré-instalação e configuração de permissão

As permissões de arquivo podem fazer ou quebrar a segurança de qualquer site, por isso é necessário definir corretamente a propriedade e a permissão do documento raiz do servidor Apache.

O proprietário padrão do / var / www / diretório é o usuário root, mas precisamos acessar e modificar os arquivos nesse diretório. Além disso, o servidor web também precisa acessar a raiz do documento para escrever de volta e modificar o conteúdo do site Magento.

Então, para resolver esse problema, vamos adicionar o usuário atual ao www-data grupo, para fazê-lo, execute:

sudo usermod -a -G www-data $ USER

O -uma-G as opções são importantes porque adicionam www-data como um grupo secundário para a conta do usuário, o que preserva o grupo primário do usuário. Depois de adicionar o usuário ao grupo do servidor da web, altere o proprietário do / var / www / e seus subdiretórios usando este comando:

sudo chown -R $ USUÁRIO: www-data / var / www /

Agora que configuramos as permissões de pré-instalação do Magento, podemos prosseguir para baixá-lo na raiz do documento do servidor web.

Baixando Magento

Agora, neste ponto, você deve ter uma conta Magento com chaves de acesso e permissões de pré-instalação configuradas corretamente. Portanto, usaremos o Composer para fazer o download do Magento na raiz do documento Apache e, em seguida, instalá-lo.

Mude o diretório atual para / var / www / então o terminal aponta para ele executando:

cd / var / www /

Execute o comando abaixo para criar um novo projeto usando o Composer conhecido como magento.

composer create-project --repository = // repo.magento.com/ magento / project-community-edition magento

Você será solicitado a fornecer o nome de usuário e a senha após usar o comando acima. As chaves de acesso que criamos devem ser usadas aqui. Copie a chave pública e cole-a como nome de usuário e, da mesma forma, copie sua chave privada e cole-a no terminal como senha. Então aperte Y para salvar as credenciais para uso futuro.

 Saída:  Criando um projeto "magento / project-community-edition" em "./magento" Aviso de repo.magento.com: Você não forneceu suas chaves de autenticação Magento. Para obter instruções, visite //devdocs.magento.com/guides/v2.3/install-gde/prereq/connect-auth.html Autenticação necessária (repo.magento.com): Nome de usuário: e8b6120dce14c3d982a85525264897c4 Senha: deseja armazenar credenciais para repo.magento.com em /home/ath/.config/composer/auth.json? [Yn] Y

Depois que o Magento e todas as suas dependências forem baixadas por meio do Composer, precisamos definir a propriedade e a permissão para o novo diretório do projeto magento e seus arquivos também. Mude o diretório para a raiz do projeto Magento:

cd / var / www / magento /

Em seguida, altere o proprietário do grupo do diretório do projeto Magento e seus subdiretórios executando:

encontre var gerado pelo pub / pub estático / aplicativo de mídia / etc -tipo f -exec chmod g + w {} + && encontre var gerado pelo fornecedor pub / estático pub / aplicativo de mídia / etc -tipo d -exec chmod g + ws {} + && chmod u + x bin / magento && sudo chown -R: dados-www. 

Este comando dará ao grupo do servidor web (www-data) permissões para gravar nos diretórios e arquivos do fornecedor, pub / estático, pub / media e app / etc. Além disso, fará o bin / magento arquivo executável, para que possamos executá-lo e instalar o Magento em nosso sistema.

Configurando Apache para Magento

Vamos instalar o Magento através da GUI, pois é mais intuitivo do que a instalação CLI neste caso. Portanto, precisamos criar um host virtual para o servidor web Apache antes de prosseguir com a instalação do Magento.

Abra o arquivo host virtual padrão do Apache com nano usando o seguinte comando:

sudo nano /etc/apache2/sites-available/000-default.conf

Altere a raiz do documento para / var / www / magento e adicione o seguinte trecho de código abaixo dele.

 AllowOverride All ServerName example.com ServerAlias ​​www.example.com

Substitua o example.com em ServerName e ServerAlias ​​com seu nome de domínio. As mudanças em seu 000-default.conf arquivo deve ser semelhante ao texto destacado mostrado abaixo. Salve as alterações pressionando Ctrl + O e saia do editor usando Ctrl + X chaves.

 ServerAdmin webmaster @ localhost DocumentRoot / var / www / magento AllowOverride All ServerName example.com ServerAlias ​​www.example.com ErrorLog $ {APACHE_LOG_DIR} /error.log CustomLog $ {APACHE_LOG_DIR} /access.log combinados 

Em seguida, precisamos habilitar um mod Apache chamado como mod_rewrite exigido pelo Magento. Ele fornece uma maneira flexível e poderosa de manipular URLs, então habilite o mod executando:

sudo a2enmod reescrever

Reinicie o servidor Apache para que todas as alterações feitas sejam aplicadas ao servidor:

sudo systemctl restart apache2

Instalando Magento

Podemos finalmente prosseguir com a instalação do Magento, pois temos tudo o que é necessário para o Magento funcionar. Digite o endereço IP do seu servidor Ubuntu 20.04 na barra de URL do seu navegador preferido.

Clique em ‘Agree and Setup Magento’ para continuar com a instalação do Magento. A primeira etapa do instalador do Magento Web é a verificação de prontidão, ele verificará se todos os requisitos do Magento foram atendidos. Clique em ‘Iniciar verificação de preparação’ e, após a conclusão do processo, pressione ‘Avançar’.

O próximo passo é configurar os detalhes e adicionar um banco de dados para Magento. Já criamos um usuário MySQL para Magento chamado magentouser e um banco de dados chamado magento na seção acima. Preencha os detalhes apropriados nesta seção, ou seja, o nome de usuário do servidor de banco de dados, sua senha e nome do banco de dados e, em seguida, pressione ‘Avançar’ para continuar.

A terceira etapa da configuração do Magento é a configuração da web. Substitua o endereço IP da entrada ‘Endereço de armazenamento’ em seu nome de domínio, se você tiver um. Não se esqueça de colocar uma barra (/) após o seu nome de domínio, caso contrário, o URL do endereço de administrador torna-se inacessível.

Em seguida, clique em Opções avançadas e marque ambas as opções HTTPS se quiser usar uma conexão segura para o seu site Magento. Mantenha o resto das configurações como estão e pressione a seguir.

Observação: Se você marcar as opções de HTTPS, precisará obter certificados SSL para ele. Veremos como obter certificados SSL na próxima seção deste tutorial.

Nas configurações de ‘Personalizar sua loja’, você só precisa alterar o fuso horário, a moeda padrão usada na loja e o idioma padrão da loja de acordo com suas necessidades. Olhe ao redor dessas configurações e defina-as se necessário, caso contrário, clique em Avançar para continuar.

Na quinta etapa, você precisará criar uma conta de administrador para o painel de administração do Magento. Digite um novo nome de usuário para o administrador e um endereço de e-mail fornecido por seu provedor de nome de domínio. Crie uma senha forte para a conta de administrador e clique em Avançar quando terminar.

A última e última etapa é apenas clicar no botão ‘Instalar’ para confirmar as configurações e iniciar o processo de instalação. Quando a instalação for concluída, a configuração do Magento mostrará o resumo e alguns detalhes importantes sobre o seu site Magento.

Anote esses detalhes em algum lugar seguro, como um registro em papel offline ou em um banco de dados seguro. O endereço de administrador do Magento e a chave de criptografia nunca devem ser compartilhados publicamente. A chave de criptografia é usada para criptografar o banco de dados Magento para que os dados do usuário estejam seguros, mesmo se houver um vazamento de dados.

Crie um certificado SSL para o seu site Magento

O site Magento é implantado e pode ser acessado logo após a conclusão da instalação. Mas se você deseja servir o tráfego da web em HTTPS, você precisará configurar o certificado SSL para seu domínio.

Letsencrypt é uma autoridade de certificação sem fins lucrativos que fornece certificados TLS gratuitamente. Vamos usar um pacote chamado certbot o que ajuda a obter o certificado e configurar o host virtual Apache automaticamente. Execute este comando no terminal para instalar o certbot:

sudo apt install certbot python3-certbot-apache

Para obter seu certificado do Letsencrypt e configurar o host virtual Apache, execute o seguinte comando:

sudo certbot --apache

O Certbot iniciará o processo de obtenção de certificados do Letsencrypt, forneça seu endereço de e-mail quando solicitado e pressione a tecla Enter. Em seguida, digite UMA concordar com os termos de serviço do Letsencrypt. Você será perguntado se deseja compartilhar seu endereço de e-mail com a EFF, digite Y ou N dependendo da sua escolha.

Em seguida, você receberá uma lista de nomes de domínio para os quais deseja ativar o HTTPS. Digite o número apropriado correspondente ao seu nome de domínio e pressione Enter.

Depois de selecionar seu nome de domínio, você será perguntado se deseja redirecionar o tráfego HTTP para HTTPS, digite 2 e pressione Enter. Certbot agora configurará automaticamente o host virtual Apache para o domínio example.com.

O pacote Certbot vem com cronjob que renova seus certificados de servidor automaticamente antes que eles expirem.Teste se a renovação automática está funcionando executando:

sudo certbot renew --dry-run

A saída acima significa que o cronjob de renovação automática está funcionando corretamente. Para confirmar se o Certbot funcionou, abra seu navegador e visite seu domínio //example.com.

Da mesma forma, você pode acessar a página de login do administrador usando o //example.com/admin_SecretString, este URL estava no final da instalação do Magento.

Você agora instalou com sucesso o Magento no servidor Ubuntu 20.04 LTS e agora você pode começar a personalizar sua loja de acordo com suas necessidades. Para saber mais sobre o Magento e aprender sobre o desenvolvimento da loja, vá para a página Magento Docs.