Como implantar aplicativos Flask no CWP usando Apache e Nginx

Flask é uma estrutura leve de aplicativo da web WSGI. Ele foi projetado para tornar os primeiros passos rápidos e fáceis, com a capacidade de escalar para aplicativos complexos. Sendo uma estrutura da Web em Python, o Flask requer o Python. Neste guia, demonstraremos como instalar e configurar o flask. Em seguida, configuraremos o Nginx e o Apache para usar como proxy nosso aplicativo de flask.

Precisando de ajuda em preparar um ambiente seja de desenvolvimento ou produção para seu site ou sistema? Não perca tempo quebrando a cabeça configurando, a SOLOWEB possui especialistas para resolver este e outros problemas entre em contato conosco. Acesse www.soloweb.com.br

Primeiramente vamos instalar a versão 3.7 do python.

yum -y groupinstall "Development Tools"
yum -y install zlib-devel libffi-devel
cd /usr/local/src
wget https://www.python.org/ftp/python/3.7.3/Python-3.7.3.tgz
tar xvf Python-3.7.3.tgz
cd Python-3.7.3
./configure --with-ensurepip=install --enable-shared
make
make install
ln -s /usr/local/lib/libpython3.7m.so.1.0 /usr/lib64/libpython3.7m.so.1.0
pip3.7 install --upgrade pip

Em resumo estes comandos instala a versão 3.7.3 do python não vamos detalhar cada um, pois o foco esta apenas no funcionamento da aplicação.

 

Vamos agora instalar a ultima versão do módulo mod_wsgi.

cd /usr/local/src/
wget https://github.com/GrahamDumpleton/mod_wsgi/archive/4.8.0.zip

Depois de baixar vamos instalar com os seguintes comandos:

unzip 4.8.0.zip
cd mod_wsgi-4.8.0
./configure --with-python=/usr/local/bin/python3.7
make
make install

Agora vamos ativar o módulo no arquivo de configuração do Apache:

echo "LoadModule wsgi_module modules/mod_wsgi.so" >> /usr/local/apache/conf/httpd.conf

Vamos restartar agora o Apache e verificar se o módulo esta ativo:

service httpd restart
/usr/local/apache/bin/httpd -M | grep wsgi
# a saída do comando será possuirá o seguinte conteúdo
wsgi_module (shared)

Intamos agora o pip flask:

pip3.7 install flask

Com o Flask instalado, criaremos uma conta no CWP para hospedar nosso aplicativo Flask. CWP.Admin Menu esquerdo -> Contas de usuário -> Nova conta -> preencha os detalhes e clique em criar.

 

Crie um flask app chamado de myproj

Para executar seu aplicativo, você precisa de um arquivo suaaplicacao.wsgi(no nosso caso myproj). Este arquivo contém o código que mod_wsgi está executando na inicialização para obter o objeto do aplicativo. O objeto chamado aplicativo nesse arquivo é então usado como aplicativo.

myproj.wsgi

#!/usr/local/bin/python3.7
import sys
import logging
logging.basicConfig(stream=sys.stderr)
sys.path.insert(0,"/home/flask/public_html/")
from myproj import app as application
application.secret_key = 'welcome123dfhfhdfjdksls'

Nota: application.secret_key deve ser alterado para sua chave secreta gerada

Criando o arquivo create__init__.py

from flask import Flask
app = Flask(__name__)
@app.route("/")
def hello():
return "Hello, I love Flask!"
if __name__ == "__main__":
app.run()

A estrutura no diretorio root da aplicação deverá ficar assim:

|—-myproj.wsgi
|—-myproj.py
|—-__init__.py
|—-static
|—-templates

 

Acima, você precisa criar dois diretórios, estáticos – para hospedar seus css, js, imagens e modelos – para hospedar arquivos html

Nota: O __init__.py é na verdade um arquivo em branco, mas é muito importante sem o qual você não pode fazer isso funcionar. O __init__.py torna possível importar nosso aplicativo como um módulo python.

Agora vamos configurar o Apache e o Nginx.

CWP.Admin left Menu -> Webserver settings -> Webserver Domain Conf -> Select Username -> create configuration -> select the option – nginx->apache->php-cgi -> check the box – Rebuild Webservers conf for domain on save -> Salve as configurações

 

 

Configurar apache, edite o arquivo vhost para o seu domínio em /usr/local/apache/conf.d/vhosts/ e adicione o seguinte dentro do contêiner virtualhost:

WSGIDaemonProcess myproj user=username group=username threads=5
WSGIScriptAlias / /home/username/public_html/myproj.wsgi
WSGIScriptReloading On

 

Configurar Nginx, edite o arquivo vhost para o seu domínio em /etc/nginx/conf.d/vhosts/ e adicione o seguinte dentro do container do servidor:

location /static/ {
root /home/username/public_html/;
expires 1d;
}

Agora reinicie os serviços Apache e Nginx:

systemctl restart nginx httpd

Agora acesse sua aplicação a partir do endereço criado.

Então está ai a dica, e caso precise de ajuda para preparar um ambiente seja de desenvolvimento ou produção para seu site ou sistema, a SOLOWEB possui especialistas para resolver este e outros problemas entre em contato conosco. Acesse www.soloweb.com.br

Precisando de servidores dedicados para sua aplicação Flask? Acesse www.soloweb.com.br e escolha seu plano ideal. Possuímos serviços dedicados a partir de R$35,90.