🐍 Configurando Apache com Python (WSGI) 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 Flask utilizando Apache com WSGI dentro da plataforma SaveinCloud.
✅ Requisitos recomendados
Antes de iniciar o deploy, certifique-se de que o projeto contenha:
- Um arquivo
wsgi.py
configurado corretamente; - Um arquivo
requirements.txt
com as dependências da aplicação.
Parte 1 - Configurando o Apache Python na Topologia
🔧 Passo 1 – Montagem da Topologia
Adicione à camada de aplicação o Apache Python. Ajuste os cloudlets reservados e o limite de escalabilidade conforme a necessidade do seu projeto e aplique a alteração.
Opcional: Adicione um NGINX como Load Balancer e/ou um banco de dados (ex: MariaDB, MySQL).
Se utilizar o NGINX, siga a documentação específica.
📦 Passo 2 – Métodos de Deploy da Aplicação
A SaveinCloud oferece os seguintes métodos de deploy:
- Arquivo local (.zip, .tar, etc.)
- URL externa
- Repositórios Git/SVN
Neste guia, utilizaremos o método por arquivo .zip.
Selecione o nó Apache Python para realizar o deploy:
Em seguida, envie seu projeto compactado:
⚠️ O projeto utilizado neste exemplo já possui os arquivos
requirements.txt
ewsgi.py
configurados. Caso contrário, será necessário instalar manualmente as dependências via SSH.
📥 Passo 3 – Instalação das Dependências
Após o deploy, acesse o nó via SSH para instalar as dependências do projeto dentro de uma virtual environment.
Abra o terminal:
Acesse o diretório do projeto:
cd /var/www/webroot/ROOT
Caso NÃO exista requirements.txt
, crie manualmente:
source venv/bin/activate
pip freeze > requirements.txt
deactivate
Caso o projeto possua requirements.txt
:
mv venv venv-old # Opcional: renomeia a venv antiga
python -m venv venv # Cria nova venv
source venv/bin/activate # Ativa a venv
pip install -r venv-old/requirements.txt
deactivate
Instalação manual de pacotes (caso necessário):
mv venv venv-old
python -m venv venv
source venv/bin/activate
pip install flask pacote2 pacote3
deactivate
⚙️ Passo 4 – Configuração do WSGI (Apache)
Edite o arquivo wsgi.conf
no painel da plataforma para apontar para o caminho correto da aplicação e da venv.
Substitua as seguintes linhas:
Novas linhas:
WSGIDaemonProcess apache user=apache group=apache processes=2 threads=10 python-path=/var/www/webroot/ROOT/ python-home=/var/www/webroot/ROOT/venv/
ServerRoot "/var/www/webroot/ROOT/"
DocumentRoot "/var/www/webroot/ROOT/"
🧩 Passo 5 – Configurando o Arquivo wsgi.py
do Projeto
Acesse o arquivo wsgi.py
dentro do diretório do projeto.
⚠️ Caso o arquivo
wsgi.py
não exista, crie-o na raiz do projeto.
Exemplo 1:
from app import app as application
if __name__ == "__main__":
app.run()
Exemplo 2:
import sys
import os
sys.path.insert(0, '/var/www/webroot/ROOT')
from run import app as application
🔎 Passo 6 – Testando a Aplicação
Após salvar todas as configurações:
-
Acesse a URL pública do ambiente:
-
Verifique se a aplicação está rodando:
Se tudo estiver correto, sua aplicação Flask estará acessível.
📘 Documentação complementar:
🛠️ Troubleshooting
❌ 1. Erro 500 ao acessar a aplicação
Causa possível:
- Permissões incorretas no diretório ou arquivos da aplicação.
- Erros no código Python (ex:
ImportError
,SyntaxError
).
Como verificar:
Acesse os logs do Apache no terminal via SSH:
cat /var/log/httpd/error_log
Soluções:
- Corrija erros no código (ex: nome errado do módulo ou função).
- Dê permissão adequada ao diretório:
chown -R apache:apache /var/www/webroot/ROOT
chmod -R 755 /var/www/webroot/ROOT
❌ 2. Página em branco ou “Not Found”
Causa possível:
WSGIScriptAlias
configurado com caminho incorreto.wsgi.py
está ausente ou mal configurado.
Como verificar:
Edite o arquivo wsgi.conf
e valide o caminho com:
WSGIScriptAlias / /var/www/webroot/ROOT/wsgi.py
E confirme se wsgi.py
contém:
from app import app as application
❌ 3. Modificação no código não atualiza no navegador
Causa possível:
- Cache do navegador ou cache do Apache.
Solução:
-
Tente reiniciar o node do Apache pela própria plataforma.
-
Limpe o cache do navegador ou abra em modo anônimo.
❌ 4. Erro: ModuleNotFoundError
Causa possível:
- Ambiente virtual (
venv
) não está ativo corretamente. - Caminho para a
venv
não foi informado ao WSGI.
Solução:
- Verifique se
python-home
está correto nowsgi.conf
:WSGIDaemonProcess apache ... python-home=/var/www/webroot/ROOT/venv/
- Certifique-se de que a
venv
foi criada e ativada corretamente:source venv/bin/activate