Deploy de aplicação Django em ambiente de produção baseado no Debian 8

Passo 1: Instalar o servidor HTTP Apache, o módulo adaptador WSGI Python para Apache e a interface Python para MySQL.

# apt-get install apache2 libapache2-mod-wsgi python-mysqldb

Passo 2: Instalar o pip (sistema de gerenciamento de pacotes escritos em Python).

~# wget https://bootstrap.pypa.io/get-pip.py
~# python get-pip.py

Passo 3: Instalar o Django e verificar versão.

# pip install django
# python -m django --version
1.10.4

Passo 4: Criar um projeto.

/home# django-admin startproject projeto

Passo 5: Editar /home/projeto/projeto/settings.py.

#Autorizar servidor a utilizar a aplicação Django
ALLOWED_HOSTS = ['ip_do_servidor_web']
...
...
#Configurar a funcionalidade de banco de dados da API do Django (utilizado SGBD MySQL neste exemplo)
DATABASES = {
        'default': {
                'ENGINE': 'django.db.backends.mysql',
                'NAME': 'banco',
                'USER': 'usuario',
                'PASSWORD': 'senha',
                'HOST': 'ip_do_servidor_mysql',
                'PORT': '3306',
                'OPTIONS': {
                        'init_command': 'SET default_storage_engine=INNODB',
                        'init_command': "SET sql_mode='STRICT_TRANS_TABLES'",
                }
        }
}

Passo 6: Sincronizar modelo e banco de dados.

/home/projeto# python manage.py migrate

Passo 7: Criar /etc/apache2/conf-available/projeto.conf com o conteúdo abaixo.

WSGIScriptAlias / /home/projeto/projeto/wsgi.py
WSGIPythonPath /home/projeto

<Directory /home/projeto/projeto>
<Files wsgi.py>
Require all granted
</Files>
</Directory>

Passo 8: Editar /etc/apache2/conf-available/projeto.conf e incluir configuração para servir conteúdo estático utilizado pela aplicação de administração do Django.

Alias /static/ /usr/local/lib/python2.7/dist-packages/django/contrib/admin/static/

<Directory /usr/local/lib/python2.7/dist-packages/django/contrib/admin/static>
Require all granted
</Directory>

WSGIScriptAlias / /home/projeto/projeto/wsgi.py
WSGIPythonPath /home/projeto

<Directory /home/projeto/projeto>
<Files wsgi.py>
Require all granted
</Files>
</Directory>

Passo 9: Criar link simbólico, dentro do diretório definido como document root do VirtualHost (/var/www/html), para os arquivos estáticos da interface de administração do Django que residem no diretório (django/contrib/admin/static/admin) da distribuição Django.

/var/www/html# ln -s /usr/local/lib/python2.7/dist-packages/django/contrib/admin/static/admin/ admin

Passo 10: Habilitar configuração do projeto e reiniciar Apache.

/etc/apache2/conf-available# a2enconf projeto
# /etc/init.d/apache2 restart

Leave a Reply

Your email address will not be published. Required fields are marked *