Deploy Bagisto Laravel: E-commerce Open Source na VPS

9 min de leitura E-commerce
Deploy Bagisto Laravel: E-commerce Open Source na VPS

Construir uma loja virtual robusta e escalável exige mais do que apenas um bom design; é fundamental ter uma infraestrutura estável e uma stack tecnológica moderna. Para desenvolvedores e sysadmins que buscam autonomia total, sem as limitações de plataformas SaaS fechadas, a combinação de VPS Linux com o framework Laravel oferece um controle absoluto sobre performance, segurança e personalização.

Neste tutorial, vamos guiar você pelo processo completo de instalar Bagisto, uma solução de e-commerce open source baseada em Laravel. O Bagisto destaca-se por sua arquitetura modular, suporte nativo ao Redis para cache e filas, e uma interface administrativa intuitiva. Aprenderemos a preparar o ambiente do servidor, configurar o banco de dados, definir permissões corretas e finalizar a instalação via linha de comando.

1. Pré-requisitos e Preparação do Servidor

Antes de começarmos o deploy bagisto laravel, é essencial garantir que seu ambiente atenda aos requisitos técnicos mínimos. Recomendamos uma VPS com pelo menos 2GB de RAM e 1 vCPU para ambientes de desenvolvimento ou pequenas lojas. Para produção, considere recursos maiores para lidar com picos de tráfego e processamento de filas.

O sistema operacional base será um Ubuntu 20.04 ou 22.04 LTS (recomendado), mas os comandos são facilmente adaptáveis para Debian ou CentOS. Você precisa ter acesso root ou um usuário com privilégios sudo.

Atualização do Sistema

O primeiro passo é garantir que todos os pacotes do sistema estejam atualizados para evitar vulnerabilidades de segurança e incompatibilidades.

sudo apt update
sudo apt upgrade -y

Instalação das Dependências do Sistema

O Laravel, e consequentemente o Bagisto, depende de várias bibliotecas para processar imagens, gerar certificados SSL e gerenciar extensões PHP. Vamos instalar o grupo básico de ferramentas necessárias.

sudo apt install -y curl wget unzip git zip composer nginx php-fpm php-cli php-mysql php-zip php-gd php-mbstring php-curl php-xml php-pear php-bcmath php-json php-redis

Note a inclusão do php-redis. O Bagisto utiliza o Redis para gerenciamento de cache e filas, o que é crucial para a performance de uma loja virtual self-hosted em produção.

2. Configuração do Banco de Dados

O Bagisto requer um banco de dados MySQL ou MariaDB. Vamos criar um usuário dedicado e um banco de dados isolado para garantir a segurança da aplicação.

sudo mysql -u root -p

Dentro do shell do MySQL, execute os seguintes comandos (substitua senha_forte por uma senha segura):

CREATE DATABASE bagisto_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'bagisto_user'@'localhost' IDENTIFIED BY 'senha_forte';
GRANT ALL PRIVILEGES ON bagisto_db.* TO 'bagisto_user'@'localhost';
FLUSH PRIVILEGES;
EXIT;

Com o banco configurado, vamos baixar o código fonte do projeto. O método mais limpo para projetos Laravel é utilizar o Composer para criar uma nova instância.

3. Instalação do Bagisto via Composer

Navegue até o diretório onde deseja hospedar sua loja virtual. Para servidores web padrão em Ubuntu/Debian, isso geralmente é /var/www/html.

cd /var/www/html

Agora, utilizamos o Composer para criar uma nova pasta chamada bagisto e baixar as dependências. Este comando cria a estrutura completa do projeto Laravel.

sudo composer create-project bagisto/bagisto --prefer-dist

Este processo pode levar alguns minutos, dependendo da velocidade da sua internet e da carga do servidor. Após a conclusão, você terá uma pasta /var/www/html/bagisto contendo todos os arquivos necessários.

4. Configuração de Permissões (Chave para Erros)

Um dos erros mais comuns ao instalar bagisto laravel envolve permissões de arquivo incorretas. O PHP precisa escrever logs, sessões e uploads na pasta storage e bootstrap/cache.

Execute os seguintes comandos para ajustar as propriedades dos diretórios:

sudo chown -R www-data:www-data /var/www/html/bagisto
sudo chmod -R 775 /var/www/html/bagisto/storage
sudo chmod -R 775 /var/www/html/bagisto/bootstrap/cache

O usuário www-data é o padrão do Nginx no Ubuntu. Garantir que ele tenha acesso de escrita evita erros "Permission Denied" durante a instalação ou quando uploads forem realizados.

5. Configuração do Ambiente (.env)

O Laravel utiliza um arquivo .env para armazenar variáveis de ambiente sensíveis, como credenciais do banco de dados e chaves de aplicação. Vamos gerar esse arquivo a partir do modelo.

cd /var/www/html/bagisto
cp .env.example .env

Agora, edite o arquivo .env para refletir as configurações que criamos anteriormente:

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=bagisto_db
DB_USERNAME=bagisto_user
DB_PASSWORD=senha_forte

Além disso, é altamente recomendável configurar o Redis para melhor performance:

REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379

Gere a chave da aplicação Laravel para garantir que as sessões e cookies sejam criptografados corretamente:

php artisan key:generate

6. Configuração do Nginx (Web Server)

O Bagisto não expõe o diretório público diretamente via URL de forma segura sem uma configuração adequada. Precisamos configurar o Nginx para servir os arquivos da pasta public e redirecionar todas as requisições através do index.php.

Crie um arquivo de configuração no servidor:

sudo nano /etc/nginx/sites-available/bagisto

Insira a seguinte configuração, ajustando o caminho se sua instalação estiver em outro lugar:

server {
    listen 80;
    server_name seu-dominio.com www.seu-dominio.com;
    root /var/www/html/bagisto/public;
    index index.php index.html index.htm;

    charset utf8mb4;

    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    location = /favicon.ico { access_log off; log_not_found off; }
    location = /robots.txt  { access_log off; log_not_found off; }

    error_page 404 /index.php;

    location ~ \.php$ {
        fastcgi_pass unix:/var/run/php/php8.1-fpm.sock; # Ajuste a versão do PHP se necessário
        fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
        include fastcgi_params;
    }

    location ~ /\.(?!well-known).* {
        deny all;
    }
}

Ative o site e teste a configuração do Nginx:

sudo ln -s /etc/nginx/sites-available/bagisto /etc/nginx/sites-enabled/
sudo nginx -t

Se o teste for bem-sucedido, reinicie o serviço:

sudo systemctl restart nginx

7. Instalação via Interface Web (UI)

Agora que a infraestrutura está pronta, podemos acessar a interface de instalação. Abra seu navegador e acesse http://seu-dominio.com.

Você verá uma tela de boas-vindas com os requisitos do sistema. Se configurou tudo corretamente conforme este tutorial, todos os itens (PHP Extensions, Storage Permissions, etc.) deverão aparecer como "Pass". Caso algum falhe, verifique as permissões listadas na seção 4.

Clique em "Next" para prosseguir para a configuração do banco de dados. O formulário já deve estar preenchido com as variáveis que colocamos no .env, mas é uma boa prática verificar se o teste de conexão ao banco de dados retorna sucesso antes de clicar em "Install".

Ao finalizar, o sistema criará o superadministrador. Defina um e-mail seguro e uma senha forte. Este será seu usuário root da loja virtual.

8. Configuração de Tarefas Agendadas (Cron Jobs)

Para que sua loja virtual self-hosted funcione corretamente, é necessário executar tarefas agendadas, como atualização de preços, envio de e-mails de pedidos e limpeza de caches antigos.

Abra o editor do crontab para o usuário root:

sudo crontab -e

Adicione a seguinte linha ao final do arquivo:

* * * * * cd /var/www/html/bagisto && php artisan schedule:run >> /dev/null 2>&1

Isso garantirá que o agendador do Laravel execute suas tarefas a cada minuto.

9. Segurança e Certificado SSL (Let's Encrypt)

Nunca deixe uma loja virtual open source rodando em HTTP puro em produção. A instalação do certificado SSL é obrigatória para proteger dados de clientes e pagamentos.

Utilize o Certbot para automatizar a obtenção e renovação do certificado:

sudo apt install certbot python3-certbot-nginx
sudo certbot --nginx -d seu-dominio.com -d www.seu-dominio.com

O assistente interativo configurará automaticamente o redirecionamento HTTPS e atualizará a configuração do Nginx. Selecione a opção 2 para forçar o redirecionamento de HTTP para HTTPS.

10. Otimizações Finais

Para garantir que seu deploy bagisto laravel esteja pronto para escala, execute os comandos de otimização do Laravel:

php artisan optimize
php artisan route:clear
php artisan config:clear
php artisan view:clear

Esses comandos limpam caches antigos e pré-carregam configurações, reduzindo drasticamente o tempo de resposta inicial das requisições.

Conclusão

Instalar Bagisto em uma VPS Linux oferece ao desenvolvedor um controle total sobre a stack tecnológica. Diferente de soluções prontas, você decide quando escalar recursos, como configurar o Redis e como estruturar seus backups. Seguindo este guia de instalar bagisto com precisão, você estabelece uma base sólida para uma loja virtual self-hosted performática.

Lembre-se de monitorar os logs do servidor (/var/log/nginx/error.log) nas primeiras horas após o deploy para identificar qualquer anomalia. Com a infraestrutura correta em place, seu e-commerce open source estará pronto para vender.

Compartilhar: Link copiado!
Esse tutorial foi útil?

Comentários (0)

Seja o primeiro a comentar.

Deixe seu comentário

Seu comentário será analisado antes de ser publicado.

0/2000