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.
E lembrando que a SOLOWEB além de oferecer Hospedagem de Sites, Servidores Dedicados, Servidores VPS com o menor custo do Brasil, também desenvolve soluções de software e realiza gerenciamento e monitoramento de servidores para sua empresa, faça uma cotação sem custo, acesse: www.soloweb.com.br