Pesquisa de site

Como instalar o Magento 2.1 no CentOS 7


Este tutorial existe para estas versões do sistema operacional

  • CentOS 8
  • CentOS 7

Nesta página

  1. Etapa 1 - Instalar o Nginx
  2. Etapa 2 - Instalar e configurar o PHP-FPM
  3. Etapa 3 - Instalar servidor MySQL 5.7
  4. Etapa 4 Instalar e configurar o Magento
  5. Etapa 5 - Configurar SELinux e Firewalld
  6. Etapa 6 - Teste
  7. Referência

Magento é uma loja de código aberto (software de comércio eletrônico) e sistema de gerenciamento de conteúdo para sites de comércio eletrônico baseado no PHP Zend Framework. Magento aplica as convenções de programação orientada a objetos e arquitetura MVC (Model-View-Controller) e usa MySQL/MariaDB como banco de dados. O software desenvolvido foi iniciado em 2008 pela Varien Inc. Nos últimos anos, o Magento tornou-se uma plataforma confiável para software de comércio eletrônico que impulsiona negócios online em todo o mundo.

Neste tutorial, guiarei você pela instalação do Magento 2.1. Instalaremos Magento 2.1 com Nginx e Php7.0-fpm e MySQL como banco de dados. Para isso, usarei um servidor CentOS 7 com SELinux habilitado.

Passo 1 - Instale o Nginx

Nesta etapa, instalaremos o Nginx a partir do repositório epel. O Epel não está disponível por padrão, então precisamos instalar o repositório epel antes de instalar o Nginx.

Instale o repositório epel com este comando yum.

yum -y install epel-release

Agora podemos instalar o Nginx a partir do repositório epel.

yum -y install nginx

Após a conclusão da instalação, inicie o Nginx e adicione-o para iniciar no momento da inicialização.

systemctl start nginx
systemctl enable nginx

O Nginx é iniciado na porta 80, você pode verificar isso com o comando netstat abaixo.

netstat -plntu

Caso você veja o comando de resultado não encontrado, você pode instalar net-tools como este.

yum -y install net-tools

Etapa 2 - Instalar e configurar o PHP-FPM

Neste tutorial, usaremos o PHP-FPM 7 para a instalação do Magento. Usarei pacotes PHP 7 do repositório Webtatic.

Baixe e adicione um novo repositório webtatic ao sistema.

rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm

Agora execute o comando abaixo para instalar o PHP-FPM7 com todos os pacotes e extensões necessários para a instalação do Magento.

yum -y install php70w-fpm php70w-mcrypt php70w-curl php70w-cli php70w-mysql php70w-gd php70w-xsl php70w-json php70w-intl php70w-pear php70w-devel php70w-mbstring php70w-zip php70w-soap

Quando uma instalação do PHP-FPM7 estiver concluída, precisamos configurá-la. Vamos configurar o arquivo php.ini e o arquivo www.conf de configuração do php-fpm.

Edite php.ini com o vim.

vim /etc/php.ini

Descomente a linha cgi.fix_pathinfo 762 e altere o valor para 0.

cgi.fix_pathinfo=0

Configure o limite de memória, o tempo máximo de execução e ative a compactação de saída zlib, certifique-se de definir os valores conforme mostrado abaixo.

memory_limit = 512M
max_execution_time = 1800
zlib.output_compression = On

Remova o comentário do diretório do caminho da sessão e altere o diretório conforme abaixo.

session.save_path = "/var/lib/php/session"

Salvar e sair.

Em seguida, edite o arquivo de configuração php-fpm www.conf com o comando vim.

vim /etc/php-fpm.d/www.conf

O PHP-FPM7 será executado sob o usuário e grupo nginx, altere o valor para nginx para as linhas de usuário e grupo.

user = nginx
group = nginx

Executaremos o php-fpm em um arquivo de soquete, não em uma porta do servidor. Altere o valor da linha de escuta para o caminho do arquivo de soquete.

listen = /var/run/php/php-fpm.sock

O arquivo de soquete precisa pertencer ao usuário e grupo nginx, remova o comentário das linhas de escuta e altere os valores conforme mostrado abaixo.

listen.owner = nginx
listen.group = nginx
listen.mode = 0660

Finalmente, remova o comentário das linhas 366-370 do ambiente PHP-FPM.

env[HOSTNAME] = $HOSTNAME
env[PATH] = /usr/local/bin:/usr/bin:/bin
env[TMP] = /tmp
env[TMPDIR] = /tmp
env[TEMP] = /tmp

Salvar e sair.

Em seguida, crie um novo diretório para o caminho da sessão e o local do arquivo php sock. Em seguida, altere o proprietário para o usuário e grupo nginx.

Crie um novo diretório para o caminho da sessão.

mkdir -p /var/lib/php/session/
chown -R nginx:nginx /var/lib/php/session/

Crie um novo diretório para a localização do arquivo de soquete php-fpm.

mkdir -p /run/php/
chown -R nginx:nginx /run/php/

A configuração do PHP-FPM7 está concluída, inicie o daemon agora e habilite-o para iniciar no momento da inicialização com o comando systemctl abaixo.

systemctl start php-fpm
systemctl enable php-fpm

Quando não houver erros, você pode usar o comando abaixo para verificar se o php-fpm está sendo executado no arquivo de soquete.

netstat -pl | grep php-fpm.sock

Etapa 3 - Instale o servidor MySQL 5.7

O Magento 2.1 requer uma versão atual do MySQL, você pode usar o MySQL 5.6 ou 5.7 para a instalação. Neste tutorial, usaremos o MySQL 5.7 que pode ser instalado a partir do repositório oficial do MySQL. Portanto, precisamos primeiro adicionar o novo repositório MySQL.

Baixe e adicione o novo repositório MySQL para a instalação do MySQL 5.7.

yum localinstall https://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm

Agora instale o MySQL 5.7 do repositório MySQL com o comando yum abaixo.

yum install mysql-community-server

Quando a instalação estiver concluída, inicie o mysql e adicione-o para iniciar no momento da inicialização.

systemctl start mysqld
systemctl enable mysqld

O MySQL 5.7 foi instalado com uma senha root padrão, ela está armazenada no arquivo mysqld.log. Use o comando grep para ver a senha padrão do MySQL 5.7. Execute o comando abaixo.

grep 'temporary' /var/log/mysqld.log

Agora que você vê a senha root atual do MySQL, você deve alterar a senha padrão.

Conecte-se ao shell mysql com o usuário root e a senha padrão.

mysql -u root -p
TYPE DEFAULT PASSWORD

Altere a senha root padrão com a consulta abaixo. Usarei a nova senha [protegida por e-mail] aqui. Escolha uma senha segura.

ALTER USER 'root'@'localhost' IDENTIFIED BY '';
flush privileges;

A senha root padrão do MySQL foi alterada. Em seguida, precisamos criar um novo usuário e um novo banco de dados para a instalação do Magento.

Criaremos um novo banco de dados chamado magentodb e um novo usuário magentouser com senha [protegido por e-mail]. Em seguida, conceda todos os privilégios do banco de dados ao novo usuário. Execute a consulta mysql abaixo.

create database magentodb;
create user ';
flush privileges;

A instalação e configuração do MySQL 5.7 está concluída e um banco de dados para a instalação do Magento foi criado.

Etapa 4 Instalar e configurar o Magento

Nesta etapa, vamos começar a instalar e configurar o Magento. Para o diretório raiz da web, usaremos o diretório /var/www/magento2. Precisamos do compositor PHP para a instalação do pacote Magento.

Instalar PHP Composer

Usaremos o Composer para a instalação da dependência do pacote PHP. Instale o composer com o comando curl abaixo.

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

Quando a instalação estiver concluída, você pode verificar a versão do compositor conforme mostrado abaixo.

composer -v

O PHP Composer foi instalado.

Baixe e extraia o Magento

Vá para o diretório /var/www e baixe o código Magento com o comando wget.

cd /var/www/
wget https://github.com/magento/magento2/archive/2.1.zip

Instale descompacte com yum.

yum -y install unzip

Extraia o código Magento e renomeie o diretório para o diretório magento2.

unzip 2.1.zip
mv magento2-2.1 magento2

Instalar dependências do PHP

Vá para o diretório magento2 e instale todas as dependências do Magento com o comando composer.

cd magento2
composer install -v

Aguarde a conclusão da instalação do PHP Dependency.

Configurar Host Virtual Magento

Vá para o diretório Nginx e crie um novo arquivo de configuração de host virtual chamado magento.conf no diretório conf.d.

cd /etc/nginx/
vim conf.d/magento.conf

Cole a configuração do host virtual abaixo.

upstream fastcgi_backend {
        server  unix:/run/php/php-fpm.sock;
}

server {

        listen 80;
        server_name magento.hakase-labs.com;
        set $MAGE_ROOT /var/www/magento2;
        set $MAGE_MODE developer;
        include /var/www/magento2/nginx.conf.sample;
}

Salvar e sair.

Agora teste a configuração. Quando não houver erro, reinicie o serviço Nginx.

nginx -t
systemctl restart nginx

Instale o Magento 2.1

Vá para o diretório magento2 para instalar o Magento na linha de comando.

cd /var/www/magento2

Execute o comando abaixo, certifique-se de ter a configuração correta. Os valores que precisam ser alterados por você são explicados abaixo.

bin/magento setup:install --backend-frontname="adminlogin" \
--key="biY8vdWx4w8KV5Q59380Fejy36l6ssUb" \
--db-host="localhost" \
--db-name="magentodb" \
--db-user="magentouser" \
--db-password=" \
--admin-firstname=admin \
--admin-lastname=user \
--cleanup-database

Alterar valor para:

  • --backend-frontname: página de login do administrador do Magento \adminlogin\
  • --key: gere sua própria chave
  • --db-host: Host localhost do banco de dados
  • --db-name: nome do banco de dados magentodb
  • --db-user: usuário do banco de dados magentouser
  • --db-password: senha do banco de dados [protegido por e-mail]
  • --base-url: URL do Magento
  • --admin-user: Seu usuário administrador
  • --admin-password: Sua senha de administrador do Magento
  • --admin-email: Seu endereço de e-mail

Quando não tiver nenhum erro no comando, você verá os resultados abaixo.

O Magento 2.1 está instalado. Execute o comando abaixo para alterar a permissão para o diretório etc e altere o proprietário do diretório magento2 para o usuário nginx.

chmod 700 /var/www/magento2/app/etc
chown -R nginx:nginx /var/www/magento2

Configurar Magento Cron

Este cronjob é necessário para o indexador Magento. Crie um novo cronjob como usuário nginx (porque o magento está sendo executado sob o usuário e grupo nginx).

crontab -u nginx -e

Cole a configuração abaixo.

* * * * * /usr/bin/php /var/www/magento2/bin/magento cron:run | grep -v "Ran jobs by schedule" >> /var/www/magento2/var/log/magento.cron.log
* * * * * /usr/bin/php /var/www/magento2/update/cron.php >> /var/www/magento2/var/log/update.cron.log
* * * * * /usr/bin/php /var/www/magento2/bin/magento setup:cron:run >> /var/www/magento2/var/log/setup.cron.log

Salvar e sair.

Etapa 5 - Configurar o SELinux e o Firewalld

Neste tutorial, deixaremos o SELinux no modo Enforcing. Execute os comandos abaixo para verificar o status do SELinux.

sestatus

O SELinux está no modo Enforcing.

Instale a ferramenta de gerenciamento SELinux policycoreutils-python com o comando yum abaixo.

yum -y install policycoreutils-python

Vá para o diretório /var/www/.

cd /var/www/

Execute os comandos abaixo para alterar o contexto de segurança dos arquivos e diretórios do Magento.

semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/magento2(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/magento2/app/etc(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/magento2/var(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/magento2/pub/media(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/magento2/pub/static(/.*)?'
restorecon -Rv '/var/www/magento2/'

A configuração do SELinux está concluída. Agora precisamos configurar o firewalld.

Instale o pacote firewalld se você ainda não o tiver em seu servidor.

yum -y install firewalld

Inicie o firewall e adicione firewalld para iniciar no momento da inicialização.

systemctl start firewalld
systemctl enable firewalld

Abra as portas para HTTP e HTTPS para que possamos acessar o URL do Magento a partir de um navegador da web.

firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --add-service=https
firewall-cmd --reload

Veja as portas abertas para serviços com o comando abaixo.

firewall-cmd --list-all

HTTP e HTTPS estão prontos para conexões.

Passo 6 - Teste

Abra seu navegador da Web e navegue pelo URL do Magento. O meu é:

magento.hakase-labs.com

E você verá a página inicial padrão do Magento.

Em seguida, faça login no painel do administrador abrindo o URL de login do administrador.

magento.hakase-labs.com/adminlogin

Entre com seu usuário administrador e senha.

Painel administrativo do Magento.

Magento 2.1 foi instalado com sucesso com Nginx, PHP-FPM7 e MySQL 5.7 em um servidor CentOS 7.

Referência

  • https://linux-console.net/tutorial/how-to-install-magento-with-nginx-on-ubuntu/

Artigos relacionados: