💎 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:
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
- Acesse a aba de Implementar Arquivo no Apache.
- Faça o upload do arquivo
.zip
contendo sua aplicação Ruby.
✅ 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