Ir para o conteúdo

cPanel: Como hospedar um projeto feito com o framework web Django

Como utilizar cPanel para hospedar um projeto web que utiliza a linguagem de programação Python e o framework Django.

Importante

Este procedimento foi realizado na hospedagem Super Domínios, acho importante explicar isso porque cada hospedagem pode oferecer recursos ou mesmo painéis de gerenciamento diferentes.

Esse não é um texto patrocinado é apenas a minha experiencia ao tentar hospedar um projeto web com a linguagem de programação Python e o framework Django.

Domínio

Para utilizar o domínio principal o projeto será criado na pasta public_html que fica na raiz da hospedagem (pasta raiz do usuário).

No caso de um subdomínio o projeto será criado na pasta que foi gerada ao se criar o subdomínio.

Para esse tutorial foi criado o subdomínio:

Após definir se o projeto será criado no domínio principal ou em um subdomínio, devemos antes de mais nada acessar o mesmo para verificar se o servidor está funcionando de forma adequada:

Acessando o site sem ter criado o projeto em Python

Com base na image podemos verificar que o servidor está funcionado sem problema e o mesmo está servindo o diretório django.codigoninja.dev (diretório raiz onde o projeto será criado).


Criando um projeto Python

Faça login no cPanel, procure pelo painel Software e clique na opção Setup Python App:

cPanel: Opção Setup Python App

Será aberta a tela onde podemos gerenciar projetos já existentes ou criar um novo projeto, clique em CRIAR APLICAÇÃO:

cPanel: Tela para criar ou gerenciar projetos Python

Na tela que é exibida realize as seguintes configurações:

  • Python version: Versão do interpretador Python que será utilizado no projeto.
  • Raiz do aplicativo: Nome da pasta onde o projeto será criado.
    • public_html se for o domínio principal. Se for um subdomínio coloque o nome da pasta que foi criada para o mesmo.
  • URL do aplicativo: URL onde o projeto estará disponível. (Deixe em branco).
  • Arquivo de inicialização do aplicativo: Caminho até o arquivo passenger_wsgi.py (Deixe em branco).
  • Application Entry point: Nome do objeto, variável ou função que carrega o WSGI (Deixe em branco).
  • Passenger log file: Local onde será criado o arquivo de log do Passenger.
    • Ex: /home/NomeDoUsuário/logs/passengar.log .
  • Variáveis de ambiente: Aqui podem ser adicionadas as variáveis de ambiente do seu projeto. Configure conforme as suas necessidades.

Ao finalizar as configurações clique em CRIAR:

cPanel: Tela de configuração do projeto Python

Assim que o projeto for criado somos levados para tela de gestão do projeto:

cPanel: Tela com os detalhes das configurações do projeto

Nessa tela podemos realizar diversas configurações do projeto, dentre as principais configurações que podemos destacar estão:

  • Na parte superior em destaque o comando que permite a ativação do ambiente virtual e realiza o acesso a pasta do projeto.
  • O campo Execute python script que permite a execução de um script Python.
    • Deve ser passado o caminho completo até o interpretador Python mais o nome do arquivo que se deseja executar. Ex: ``.

Testando o projeto

Antes de continuar, vamos tentar novamente a URL do projeto:

Repare que no lugar de:

Acessando o site sem ter criado o projeto em Python

O navegador está exibindo:

Acessando o site após ter criado o projeto em Python

Isso significa que o projeto foi criado corretamente e o servidor utilizando o arquivo passenger_wsgi.py para servir a aplicação.


Instalando o framework Django

Importante notar que a forma de instalar o framework Django irá depender das ferramentas que a hospedagem fornece.

No caso a Super Domínios mesmo no plano mais basico me fornece 3 formas para realizar a instalação.

Nesse texto vou abordar as 3, contudo escolha o método que melhor se adequa a sua hospedagem.

Via tela de gestão do projeto

Para realizar a instalação do framework Django via tela de gestão do projeto devemos primeiro criar um arquivo chamado requirements.txt na raiz do projeto.

Para isso vá no cPanel, procure pelo painel Arquivos e clique Gerenciador de arquivos:

cPanel: Acessando o Gerenciador de arquivos

Ao acessar o gerenciador de arquivos:

  • Navegue até a raiz do projeto e crie um arquivo de texto com o nome requirements.txt.
  • Edite o arquivo e adicione o Django como dependência. Ex: django==3.1.7.

cPanel: Criando o arquivo requirements na raiz do projeto

Agora vá para a tela de gestão do projeto e no campo Execute python script digite:

1
2
/home/NomeDoUsuario/virtualenv/NomeDoProjeto/3.7/bin/pip install \
-r requirements.txt

Nota

Lembre-se de adequar o comando ao seu projeto!

cPanel: Instalando o framework Django via tela de gestão do projeto

Via terminal

Acesse o cPanel procure pelo painel Avançado e clique em Terminal:

cPanel: Terminal Linux no cPanel

Ao acessar o terminal utilize o comando que é exibido na interface de gestão do projeto para ativar o ambiente virtual e acessar a pasta do projeto.

Exemplo:

1
2
3
source \
/home/NomeDoUsuario/virtualenv/NomeDoProjeto/3.7/bin/activate \
&& cd /home/NomeDoUsuario/NomeDoProjeto

Com o ambiente virtual ativo execute pip install django ou pip install -r requirements.txt :

Instalando o framework django através do terminal do cPanel

Via SSH

É possível criar ou importar chaves SSH existentes, vá até o cPanel, procure pelo painel Segurança e em seguida clique em Acesso SSH:

cPanel: Painel de configuração do ssh

Nota

Caso não tenha familiaridade com chaves SSH utilize o acesso com usuário e senha.

Após realizar as configurações necessárias:

  • Acesse o servidor.
  • Utilize o comando para ativação do ambiente virtual e acesso da pasta do projeto que está disponível na tela de gestão do projeto.
  • Execute pip install django ou pip install -r requirements.txt .

cPanel: Instalando o framework Django via ssh


Criando um projeto com o framework Django

Lembre-se de utilizar o método que melhor se adequa a sua hospedagem.

Via tela de gestão do projeto

Acesse a tela de gestão e no campo Execute python script insira o comando:

1
2
/home/NomeDoUsuario/virtualenv/NomeDoProjeto/3.7/bin/django-admin.py \
startproject NomeDoProjeto .

E clique no botão Run Script:

cPanel: Criando um novo projeto do Django via tela de gestão do projeto

Nota

Adeque o comando acima com base nas suas configurações de projeto e repare que há um ponto (.) no final do comando.

Via SSH ou terminal do cPanel

Para ssh ou terminal do cPanel o comando será o mesmo, lembre-se apenas de estar com o ambiente virtual ativo e dentro da pasta do projeto:

1
django-admin startproject NomeDoProjeto .

Nota

No final do comando tem uma ponto ( . ) esse ponto é porque queremos que o arquivo manage.py seja criado na raiz projeto.


Configurando o Django

Para que o Django funcione de forma adequada, é necessário configurar a variável ALLOWED_HOSTS que está no arquivo settings.py.

Neste arquivo vamos alterar a variável ALLOWED_HOSTS de:

1
ALLOWED_HOSTS = []

Para:

1
ALLOWED_HOSTS = ['Nome.Dominio', 'www.Nome.Dominio']

Cuidado

Utilize o nome do seu domínio ou subdomínio.


Configurando o arquivo passenger_wsgi.py

O Phusion Passenger é uma biblioteca do tipo web application server (servidor de aplicação web) cabe a ela lidar com:

  • Solicitações HTTP.
  • Gerenciar processos e recursos.
  • Permite administração, monitoramento e diagnóstico de problemas.

Para que os aplicativos que utilizam WSGI (Web Server Gateway Interface) funcionem corretamente é necessário fazer a configuração desse arquivo passenger_wsgi.py .

Esse arquivo é criado automaticamente sempre que um novo projeto web com Python é criado.

Inicialmente ele possui o seguinte conteúdo:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
import os
import sys

sys.path.insert(0, os.path.dirname(__file__))

def application(environ, start_response):
    start_response('200 OK', [('Content-Type', 'text/plain')])
    message = 'It works!\n'
    version = 'Python %s\n' % sys.version.split()[0]
    response = '\n'.join([message, version])
    return [response.encode()]

Nota

Reparem que a mensagem que temos no método def application() é a mesma que é exibida no navegador quando acessamos a URL do projeto.

Para configurar este arquivo para o framework Django basta apagar o conteúdo atual e inserir:

1
2
3
from python_django import wsgi

application = wsgi.application

Após realizar essa alteração vá até a tela de gestão de projetos ou mesmo a tela de gestão do projeto e reinicie o aplicativo:

cPanel: Reiniciando o projeto após a configuração

Depois que o aplicativo reiniciar abrar o navegador e acesse a URL do projeto:

cPanel: Framework Django sendo hospedado/executado

No navegador será exibida a página de boas vidas do framework Django, isso significa que todas as configurações iniciais estão correta.

Com isso já é possível iniciar o desenvolvimento do projeto ou mesmo hospedar um projeto existente.

Por fim deixo o link do Github onde estão os arquivos que estão sendo utilizados atualmente no endereço https://django.codigoninja.dev/:


Comentários