Deploy Bagisto Laravel: E-commerce Open Source na VPS

9 min de leitura E-commerce

Se você busca flexibilidade, controle total e escalabilidade para sua loja virtual, a combinação de um **framework e-commerce** robusto como o Bagisto rodando em uma infraestrutura de nuvem é a escolha ideal para desenvolvedores e sysadmins exigentes. O Bagisto é uma solução ecommerce open source baseada no popular Laravel, oferecendo funcionalidades poderosas de gestão de produtos, pedidos e canais de venda sem as taxas mensais pesadas de plataformas SaaS proprietárias.

Migrar para um ambiente self-hosted em uma VPS otimizado permite que você ajuste recursos conforme a demanda, implemente caches personalizados e garanta alta disponibilidade. Neste tutorial, vamos guiar você pelo processo completo de instalar bagisto vps, configurando desde o servidor Linux até a validação final da loja virtual linux.

1. Preparação do Ambiente: Requisitos de Sistema

Antes de iniciar o download e a configuração, é fundamental garantir que sua VPS otimizado atenda aos requisitos técnicos do Bagisto. Como o sistema roda sobre o PHP e utiliza um banco de dados relacional, recursos insuficientes podem causar lentidão crítica durante a indexação de produtos ou processamento de pagamentos.

Recomendamos os seguintes mínimos para um ambiente de produção estável:

  • CPU: Mínimo de 2 vCPUs para garantir resposta rápida nas requisições AJAX do painel administrativo.
  • RAM: 2 GB ou mais. O processo de compilação do Laravel e a execução do PHP-FPM consomem memória significativamente durante o pico de tráfego.
  • Armazenamento: SSD NVMe é preferível para melhorar a velocidade de leitura/gravação das sessões e uploads de mídia.
  • Sistema Operacional: Ubuntu 22.04 LTS ou Debian 11/12 são as distribuições mais estáveis e bem documentadas para este setup.

Conecte-se ao seu servidor via SSH usando um usuário com privilégios sudo. A primeira etapa é atualizar o sistema operacional para garantir que todas as bibliotecas base estejam seguras e atualizadas.

sudo apt update && sudo apt upgrade -y

2. Instalação do Stack LEMP (Linux, Nginx, MySQL, PHP)

O Bagisto não possui um servidor web embutido para produção; ele depende de um proxy reverso eficiente. O Nginx é a escolha padrão da indústria por sua baixa latência e alto throughput. Além disso, precisaremos do PHP com extensões específicas e um banco de dados MySQL ou MariaDB.

2.1. Instalando o Banco de Dados

Vamos instalar o MySQL Server, que armazenará todas as informações de clientes, produtos e configurações da sua loja virtual linux.

sudo apt install mysql-server -y

Após a instalação, execute o script de segurança para definir uma senha forte para o root do banco de dados e remover acessos anônimos.

sudo mysql_secure_installation

2.2. Instalando o PHP e Extensões Necessárias

O Bagisto exige várias extensões do PHP para funcionar corretamente, incluindo suporte a JSON, OpenSSL, PDO, Mbstring, XML e Ctype. Instale o PHP 8.1 ou 8.2 (versões recomendadas) junto com o gerenciador de pacotes Composer.

sudo apt install php8.1-fpm php8.1-mysql php8.1-curl php8.1-mbstring php8.1-xml php8.1-gd php8.1-zip php8.1-bcmath php8.1-json php8.1-tokenizer -y

Também é necessário instalar o Composer, a ferramenta de gerenciamento de dependências do PHP.

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

2.3. Instalando e Configurando o Nginx

Instale o servidor web e crie um arquivo de configuração para o seu domínio. Substitua seudominio.com pelo nome real do seu domínio.

sudo apt install nginx -y
sudo nano /etc/nginx/sites-available/bagisto.conf

Cole a seguinte configuração básica no arquivo. Ela define o root do projeto, configura o suporte a PHP-FPM e garante que todas as requisições passem pelo index.php (regra padrão de frameworks MVC).

server {
    listen 80;
    server_name seudominio.com www.seudominio.com;
    root /var/www/bagisto/public;
    index index.php index.html;

    charset utf8mb4;

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

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/var/run/php/php8.1-fpm.sock;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }

    location ~ /\.ht {
        deny all;
    }
}

Ative a configuração e teste se há erros de sintaxe antes de reiniciar o serviço.

sudo ln -s /etc/nginx/sites-available/bagisto.conf /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl restart nginx

3. Configuração do Banco de Dados para o Bagisto

Agora que a infraestrutura está pronta, precisamos criar um banco de dados dedicado e um usuário com permissões limitadas para aumentar a segurança da sua hospedagem ecommerce.

sudo mysql -u root -p

Dentro do prompt do MySQL, execute os comandos abaixo. Troque senha_forte_aqui por uma senha complexa.

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

4. Deploy Bagisto: Download e Configuração do Projeto

Com o servidor preparado, vamos baixar o código-fonte do bagisto laravel. O método mais limpo é utilizar o Composer para criar um novo projeto a partir do template oficial.

sudo mkdir -p /var/www/bagisto
sudo chown $USER:$USER /var/www/bagisto
cd /var/www/bagisto
composer create-project bagisto/bagisto .

O processo de download pode levar alguns minutos dependendo da sua conexão. Ao final, você terá todos os arquivos necessários na pasta /var/www/bagisto.

4.1. Gerenciamento de Permissões

O Bagisto precisa escrever logs e armazenar arquivos de upload em diretórios específicos. É crucial definir as permissões corretas para evitar erros de "Permission denied" no painel administrativo.

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

4.2. Configuração do Arquivo .env

Copie o arquivo de exemplo e edite as credenciais do banco de dados que criamos anteriormente.

cp .env.example .env
nano .env

Altere os seguintes campos:

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

Salve o arquivo e gere a chave de aplicação do Laravel.

php artisan key:generate --force

5. Instalação e Seed do Banco de Dados

Agora, vamos rodar as migrations para criar as tabelas necessárias e popular o banco com dados iniciais (categorias padrão, configurações do sistema, etc.). Isso é feito via Artisan, a ferramenta de linha de comando do Laravel.

php artisan bagisto:install

O script irá solicitar confirmação para instalar as tabelas e os dados. Pressione Enter ou digite 'yes' quando solicitado. Se tudo correr bem, você verá uma mensagem de sucesso indicando que o sistema está pronto.

6. Configuração de Segurança: SSL com Let's Encrypt

Uma loja virtual linux sem HTTPS não deve ser considerada em produção, pois navegadores modernos bloqueiam ou alertam os usuários sobre conexão "não segura". Vamos instalar o certificado SSL gratuito usando Certbot.

sudo apt install certbot python3-certbot-nginx -y
sudo certbot --nginx -d seudominio.com -d www.seudominio.com

O Certbot detectará automaticamente a configuração do Nginx criada anteriormente e solicitará o email para contato e aceitação dos termos. Em seguida, perguntará se deseja redirecionar todo o tráfego HTTP para HTTPS. Escolha a opção 2 (Redirecionar) para máxima segurança.

7. Otimização de Performance na VPS

Para garantir que seu deploy bagisto tenha alta performance, é necessário ajustar algumas configurações do PHP e do sistema operacional.

7.1. Ajustando o PHP-FPM

Edite o arquivo de pool do PHP-FPM para permitir um número adequado de processos filhos, dependendo da RAM disponível.

sudo nano /etc/php/8.1/fpm/pool.d/www.conf

Ajuste as diretrizes abaixo conforme a memória da sua VPS:

  • pm = dynamic
  • pm.max_children = 50 (Ajuste baseado na RAM: ex. 2GB de RAM suporta cerca de 40-50 processos se cada um consumir ~40MB)
  • pm.start_servers = 5
  • pm.min_spare_servers = 5
  • pm.max_spare_servers = 35

Reinicie o serviço para aplicar as mudanças.

sudo systemctl restart php8.1-fpm

7.2. Cache de Configuração e Rota

No ambiente de produção, nunca deixe o Laravel gerar caches em tempo real. Execute os comandos abaixo para otimizar o carregamento das rotas e configurações.

cd /var/www/bagisto
php artisan config:cache
php artisan route:cache
php artisan view:cache

8. Acesso ao Painel Administrativo

Parabéns! Sua instalar bagisto vps está concluída. Agora você pode acessar o painel de administração para gerenciar sua loja.

  • Admin URL: https://seudominio.com/admin
  • Usuário Padrão: admin@bagisto.com
  • Senha Padrão: admin123

Importante: Assim que fizer login pela primeira vez, altere imediatamente a senha e o email de administrador para evitar acessos não autorizados.

Considerações Finais sobre Manutenção

Manter um framework e-commerce self-hosted exige responsabilidade contínua. Diferente de plataformas SaaS, a segurança e a atualização do sistema são suas responsabilidades.

Mantenha o servidor atualizado regularmente com sudo apt update && sudo apt upgrade. Monitore os logs de erro do Nginx (/var/log/nginx/error.log) e as métricas de uso de CPU/RAM da sua VPS. Considere implementar um sistema de backup automatizado para a pasta storage/app (onde ficam os uploads de imagens) e o banco de dados diariamente.

Com essa infraestrutura sólida, você tem controle total sobre a experiência do usuário, tempo de carregamento e personalizações profundas, tornando sua solução de hospedagem ecommerce verdadeiramente competitiva no mercado digital.

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
WhatsApp