Pesquisa de site

Como instalar Shopware com NGINX e Lets Encrypt no Fedora 30


Nesta página

  1. Requisitos
  2. Pré-requisitos
  3. Etapa 1 - Instale o PHP e as extensões do PHP
  4. )
  5. Etapa 3 - Instale MariaDB e crie um banco de dados para Shopware
  6. Etapa 4 - Instalar o cliente Acme.sh e obter o certificado Lets Encrypt (opcional)
  7. Etapa 5 - Instalar e configurar NGINX
  8. Etapa 6 - Instalar Shopware
  9. Etapa 7 - Conclua a configuração do Shopware
  10. Links

Shopware é a próxima geração de software de comércio eletrônico de código aberto. Baseado em tecnologias de ponta como Symfony 3, Doctrine2 e Zend Framework Shopware vem como a plataforma perfeita para seu próximo projeto de e-commerce. Este tutorial acompanhará você na instalação do Shopware Community Edition (CE) no sistema Fedora 30 usando o NGINX como um servidor web.

Requisitos

Certifique-se de que seu sistema atenda aos seguintes requisitos mínimos:

  • Sistema operacional baseado em Linux com servidor da web NGINX ou Apache 2.x (com mod_rewrite) instalado.
  • PHP 5.6.4 ou superior com extensões ctype, gd, curl, dom, hash, iconv, zip, json, mbstring, openssl, session, simplexml, xml, zlib, fileinfo e pdo/mysql. PHP 7.1 ou superior é fortemente recomendado.
  • MySQL 5.5.0 ou superior.
  • Possibilidade de configurar tarefas cron.
  • Mínimo de 4 GB de espaço disponível no disco rígido.
  • IonCube Loader versão 5.0.0 ou superior (opcional).

OBSERVAÇÃO: atualmente, o Shopware 5 é compatível com PHP 7.2.x .

Pré-requisitos

  • Um sistema operacional rodando Fedora 29.
  • Um usuário não root com privilégios sudo.

Usarei o nome de domínio example.com neste tutorial. Substitua a palavra example.com pelo seu próprio nome de domínio sempre que ocorrer nos comandos e arquivos de configuração abaixo (especialmente no arquivo de configuração nginx e nos comandos Lets encrypt).

Etapas iniciais

Verifique sua versão do Fedora:

cat /etc/fedora-release
# Fedora release 29 (Twenty Nine)

Configure o fuso horário:

timedatectl list-timezones
sudo timedatectl set-timezone 'Region/City'

Atualize seus pacotes de sistema operacional (software). Este é um primeiro passo importante porque garante que você tenha as atualizações e correções de segurança mais recentes para os pacotes de software padrão do seu sistema operacional:

sudo dnf upgrade -y

Instale alguns pacotes essenciais que são necessários para a administração básica do sistema operacional Fedora:

sudo dnf install -y curl wget vim git sudo unzip socat bash-completion

Etapa 1 - Instale o PHP e as extensões do PHP

Instale o PHP, bem como as extensões PHP necessárias para Shopware:

sudo dnf install -y php php-cli php-fpm php-common php-mysqlnd php-curl php-json php-zip php-gd php-xml php-mbstring php-opcache

Para mostrar o PHP compilado em módulos, você pode executar:

php -m

ctype
curl
exif
fileinfo
. . .
. . .

Verifique a versão do PHP:

php --version

# PHP 7.2.16 (cli) (built: Apr 30 2019 08:37:17) ( NTS )
# Copyright (c) 1997-2018 The PHP Group
# Zend Engine v3.3.5, Copyright (c) 1998-2018 Zend Technologies
# with Zend OPcache v7.3.5, Copyright (c) 1999-2018, by Zend Technologies

Inicie e habilite o serviço PHP-FPM:

sudo systemctl start php-fpm.service
sudo systemctl enable php-fpm.service

Podemos passar para a próxima etapa, que é a instalação do IonCube Loader.

Etapa 2 - Instalar o IonCube Loader (opcional)

Esta etapa é opcional porque o Shopware funciona sem o IonCube agora, mas ainda pode haver extensões ou temas que usam o IonCube, portanto, não custa instalá-lo. Baixe o carregador IonCube:

cd /tmp && wget https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz

Extraia o carregador:

tar xfz ioncube_loaders_lin_*.gz

Encontre o diretório de extensões do PHP no sistema executando o comando abaixo:

php -i | grep extension_dir
# extension_dir => /usr/lib64/php/modules => /usr/lib64/php/modules

Copie o ionCube Loader para o diretório de extensões do PHP:

sudo cp /tmp/ioncube/ioncube_loader_lin_7.2.so /usr/lib64/php/modules

Inclua o carregador via configuração do PHP:

sudo vim /etc/php.ini

Em seguida, adicione uma linha no arquivo para incluir o carregador ionCube. Pode estar em qualquer lugar no arquivo abaixo da linha [PHP] :

zend_extension = /usr/lib64/php/modules/ioncube_loader_lin_7.2.so

Salve o arquivo e reinicie o PHP-FPM:

sudo systemctl restart php-fpm.service

Passo 3 - Instale MariaDB e crie um banco de dados para Shopware

Instale o servidor de banco de dados MariaDB:

sudo dnf install -y mariadb-server

Verifique a versão do MariaDB:

mysql --version
# mysql  Ver 15.1 Distrib 10.2.23-MariaDB, for Linux (x86_64) using readline 5.1

Inicie e ative o serviço MariaDB:

sudo systemctl start mariadb.service
sudo systemctl enable mariadb.service

Execute o script de instalação mysql_secure para melhorar a segurança do MariaDB e defina a senha para o usuário root do MariaDB:

sudo mysql_secure_installation

Responda a cada uma das perguntas:

Would you like to setup VALIDATE PASSWORD plugin? N
New password: your_secure_password
Re-enter new password: your_secure_password
Remove anonymous users? [Y/n] Y
Disallow root login remotely? [Y/n] Y
Remove test database and access to it? [Y/n] Y
Reload privilege tables now? [Y/n] Y

Conecte-se ao shell MariaDB como usuário root:

sudo mysql -u root -p
# Enter password

Crie um banco de dados MariaDB vazio e um usuário para Shopware e lembre-se das credenciais:

mysql> CREATE DATABASE dbname;
mysql> GRANT ALL ON dbname.* TO 'username' IDENTIFIED BY 'password';
mysql> FLUSH PRIVILEGES;

Sair do MariaDB:

mysql> exit

Substitua dbnameusername e password pelos seus próprios nomes.

Etapa 4 - Instale o cliente Acme.sh e obtenha o certificado Lets Encrypt (opcional)

Proteger seu site com HTTPS não é necessário, mas é uma boa prática proteger o tráfego do site. Para obter um certificado TLS da Lets Encrypt, usaremos o cliente acme.sh. Acme.sh é um software de shell Unix puro para obter certificados TLS da Lets Encrypt com zero dependências.

Baixe e instale acme.sh:

sudo su - root
git clone https://github.com/Neilpang/acme.sh.git
cd acme.sh 
./acme.sh --install --accountemail 
source ~/.bashrc
cd ~

Verifique a versão do acme.sh:

acme.sh --version
# v2.8.1

Obtenha os certificados RSA e ECC/ECDSA para seu domínio/nome de host:<br>

# RSA 2048
acme.sh --issue --standalone -d example.com --keylength 2048
# ECDSA
acme.sh --issue --standalone -d example.com --keylength ec-256

Se você deseja certificados falsos para teste, pode adicionar o sinalizador --staging aos comandos acima.

Depois de executar os comandos acima, seus certificados e chaves estarão em:

  • Para RSA: /home/username/example.com diretório.
  • Para ECC/ECDSA: /home/username/example.com_ecc diretório.

Para listar seus certificados emitidos, você pode executar:

acme.sh --list

Crie um diretório para armazenar seus certificados. Usaremos um diretório /etc/letsencrypt.

mkdir -p /etc/letsecnrypt/example.com
sudo mkdir -p /etc/letsencrypt/example.com_ecc

Instale/copie os certificados para o diretório /etc/letsencrypt .

# RSA
acme.sh --install-cert -d example.com --cert-file /etc/letsencrypt/example.com/cert.pem --key-file /etc/letsencrypt/example.com/private.key --fullchain-file /etc/letsencrypt/example.com/fullchain.pem --reloadcmd "sudo systemctl reload nginx.service"
# ECC/ECDSA
acme.sh --install-cert -d example.com --ecc --cert-file /etc/letsencrypt/example.com_ecc/cert.pem --key-file /etc/letsencrypt/example.com_ecc/private.key --fullchain-file /etc/letsencrypt/example.com_ecc/fullchain.pem --reloadcmd "sudo systemctl reload nginx.service"

Todos os certificados serão renovados automaticamente a cada 60 dias.

Depois de obter os certificados, saia do usuário root e retorne ao usuário sudo normal:

exit

Etapa 5 - Instalar e configurar NGINX

Instale o servidor web NGINX:

sudo dnf install -y nginx

Verifique a versão do NGINX:

nginx -v
# nginx version: nginx/1.14.2

Inicie e ative o serviço NGINX:

sudo systemctl start nginx.service
sudo systemctl enable nginx.service

Configure NGINX para Shopware. Execute sudo vim /etc/nginx/conf.d/shopware.conf e adicione a seguinte configuração:

server {
    listen 80;
    listen [::]:80;
    
    server_name example.com;
    root /var/www/shopware;

    index shopware.php index.php;

    location / {
        try_files $uri $uri/ /shopware.php$is_args$args;
    }

    location /recovery/install {
      index index.php;
      try_files $uri /recovery/install/index.php$is_args$args;
    }

    location ~ \.php$ {
        include fastcgi.conf;
        fastcgi_pass unix:/run/php-fpm/www.sock;
    }
}

Verifique a configuração NGINX para erros de sintaxe:

sudo nginx -t

Recarregue o serviço NGINX :

sudo systemctl reload nginx.service

Etapa 6 - Instalar Shopware

Crie um diretório raiz de documentos para Shopware:

sudo mkdir -p /var/www/shopware

Altere a propriedade do diretório /var/www/shopware para {your_user}. Substitua {your_user} pelo nome de usuário do usuário com o qual você está conectado no momento:

sudo chown -R {your_user}:{your_user} /var/www/shopware

Navegue até o diretório raiz do documento:

cd /var/www/shopware

Baixe e descompacte a versão mais recente do Shopware via wget:

wget https://releases.shopware.com/install_5.5.8_d5bf50630eeaacc6679683e0ab0dcba89498be6d.zip?_ga=2.141661361.269357371.1556739808-1418008019.1556603459 -O shopware.zip
unzip shopware.zip
rm shopware.zip

OBSERVAÇÃO: Atualize o URL de download se houver uma versão mais recente.

Altere a propriedade do diretório /var/www/shopware para nginx.

sudo chown -R nginx:nginx /var/www/shopware

Execute sudo vim /etc/php-fpm.d/www.conf e defina o usuário e o grupo como nginx. Inicialmente, eles serão definidos como apache:

sudo vim /etc/php-fpm.d/www.conf
user = nginx
group = nginx

Crie o diretório /var/lib/php/session/ e altere a propriedade para nginx.

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

Aumente memory_limit=256M e upload_max_filesize=6M e defina allow_url_fopen=On se ainda não estiver definido em /etc/php/7.2/ fpm/php.ini arquivo.

sudo vim /etc/php.ini

Depois de fazer alterações no arquivo /etc/php.ini , recarregue php-fpm.service:

sudo systemctl reload php-fpm.service

Abra seu domínio/IP no navegador da Web e siga o assistente de instalação. O backend do Shopware está localizado em /backend exemplo: http://example.com/backend.

Etapa 7 - Conclua a configuração do Shopware

Comece selecionando o idioma e clique em Avançar:

Em seguida, certifique-se de atender a todos os requisitos do Shopware:

Concorde com Shopware TOS e clique em Avançar:

Insira as credenciais do banco de dados e clique em Avançar:

Inicie a instalação para criar tabelas de banco de dados:

Depois disso, você verá uma mensagem sobre a importação bem-sucedida do banco de dados:

Escolha uma licença e clique em Avançar:

Preencha algumas configurações básicas para concluir a configuração e clique em Avançar:

A instalação está concluída.

Para acessar a área administrativa, anexe /backend ao seu URL.

Você instalou o Shopware com sucesso. Desfrute da sua nova loja online!

links

  • https://en.shopware.com/
  • https://github.com/shopware/shopware

Artigos relacionados: