Pular para o conteúdo principal

💎 Deploy de Aplicação Ruby com Apache na SaveinCloud

⚠️ Todas as configurações demonstradas neste manual são exemplos simples e hipotéticos. Pode ser necessário realizar adaptações conforme a topologia do seu ambiente.

Este guia mostra como realizar o deploy de uma aplicação Ruby utilizando Apache + Passenger dentro da plataforma SaveinCloud.


✅ Requisitos recomendados

Antes de iniciar o deploy, certifique-se de que o projeto contenha:

  • Código-fonte Ruby pronto para execução (exemplo: aplicação Sinatra ou Rails);

  • Um arquivo config.ru válido para Rack;

  • Um Gemfile com as dependências listadas (exemplo: sinatra, rack, passenger);

  • Estrutura de diretórios bem organizada;

  • Arquivo .htaccess com a configuração do Passenger.


Parte 1 - Configurando a Topologia com Apache Ruby

🔧 Passo 1 – Montagem da Topologia

Adicione à camada de aplicação o serviço Apache.

Exemplo de uma topologia de Apache Ruby:

imagem

Load Balancer (opcional) → Apache → Aplicação Ruby

💡 Caso deseje utilizar HTTPS, configure diretamente no Apache o addon do Let's Encrypt ou utilize um Load Balancer com SSL.

Ajuste os cloudlets reservados conforme a necessidade da aplicação.


Parte 2 - Realizando deploy da aplicação

📁 Deploy via Upload ZIP

  1. Acesse a aba de Implementar Arquivo no Apache.

imagem

  1. Faça o upload do arquivo .zip contendo sua aplicação Ruby.

imagem

✅ O conteúdo será automaticamente extraído para o contexto selecionado no momento do deploy, Ex: /var/www/webroot/ROOT


Parte 3 - Configuração de Ambiente Ruby (Passenger)

📑 Customização de .htaccess

Para que o Passenger reconheça sua aplicação Ruby, crie um arquivo .htaccess dentro da raiz da aplicação.

ℹ️ Ajuste os caminhos conforme necessário.


📑 Instalação de Gems

Após o upload do projeto, acesse o ambiente via SSH e instale as dependências Ruby:

✅ Certifique-se de que o Gemfile contenha todas as dependências obrigatórias.


🛠️ Troubleshooting

❌ Passenger - Could not spawn process for application

Causa: Falta de gems ou erro de sintaxe no código.

Solução:

Verifique o log de erros do Apache:


/var/log/httpd/error_log


❌ Erro de sintaxe no config.ru

Causa: Configuração incorreta no arquivo config.ru.

Solução:

Verifique se o arquivo contém um require correto e uma instância de aplicação Rack válida.


❌ Incomplete response received from application

Causa: A aplicação Ruby não retornou uma resposta HTTP válida.

Solução:

Reveja o código Ruby, principalmente o app.rb e o config.ru. Teste localmente com rackup antes de fazer o deploy.


❌ Erro 500 - Internal Server Error

Causa: Problemas de permissão, gems faltando ou falha de inicialização do Passenger.

Solução:

Revisar os logs do Apache e do Passenger:


/var/log/httpd/error_log