Instalación y configuración de Django en cPanel

Django es un framework basado en el lenguaje Python que permite crear sitios webs de forma fácil y rápida.

El primer paso consta de: Crear una aplicación Python en Panel:

1. Ingresa a cPanel con tus datos de acceso.

2. Dirigete a la sección “software” y luego haz clic en “Setup python app”.

Configuración de la aplicación de python:

3. Ahora haz clic en la pestaña “create application”.

4. En la versión de python selecciona la 3.9.7.

5. En el siguiente campo “Application root” ingresa el directorio de la aplicación (/home/cpanel_username/), por ej: myapp.

6. App Domain/URL seleccione el dominio o subdominio que va a usar.

Nota: En este caso, cPanel creará automáticamente el archivo Passenger_wsgi.py y el entorno de arranque interpretado predeterminado.

7. En el campo passenger log file, puede ingresar el nombre del archivo de logs que te ayudará a solucionar problemas en el futuro.

8. Haz clic en el botón “Crear” que se encuentra arriba a la derecha.

cPanel creará la aplicación de Python y configurará las variables de entorno.

9. En Existing applications, ve a Command for entering the virtual environment, y copia el comando. Necesitarás esta información para más adelante.


El segundo paso consta de configurar el proyecto de Django:

Después de crear la aplicación de Python, deberán realizarse las siguientes tareas desde linea de comandos. Puedes usar el acceso a terminal que se encuentra en cPanel para tal propósito o bien también puedes conectarse via SSH. Puede seguir el siguiente tutorial para ello.

  • Instalaremos Django.
  • Crearemos y configuraremos el proyecto de Django.
  • Configuraremos el passenger.

Pasos:

1. Conectate vía SSH.

2. Activa el entorno virtual, usando el comando explicado en el paso 7) anterior.

Nota: La linea de comandos empieza con (myapp:3.9) para indicar que está trabajando en el entorno virtual myapp con la versión Python 3.9. Todos los comandos de este artículo asumen que está trabajando en el entorno virtual de Python. Si cierras la sesión de SSH (o desactivas el entorno virtual con el comando deactivate), asegurate de reactivar el entorno virtual para continuar con los siguientes pasos y comandos.

3. Para instalar Django utiliza los siguientes comandos:

cd ~

pip install django==2.1.8

Nota: Para verificar la versión de Django instalada ejecuta:

django-admin --versión

4. Crea el proyecto de Django utilizando el siguiente comando:

django-admin startproject application ~/application

5. Crea los siguientes directorios estáticos:

mkdir -p ~/application/templates/static_pages

mkdir ~/application/static_files

mkdir ~/application/static_media

6. Utilizando un editor de texto abre el archivo: ~/application/application/settings.py y realiza las siguientes modificaciones:

1). Encuentra la linea ALLOWED_HOSTS. Luego reemplaza example.com por tu nombre de dominio:

ALLOWED_HOSTS = [‘example.com’]

2). Localiza el bloque TEMPLATES y modifica lo siguiente:

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [os.path.join(BASE_DIR,'templates')],
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': [
                'django.template.context_processors.debug',
                'django.template.context_processors.request',
                'django.contrib.auth.context_processors.auth',
                'django.contrib.messages.context_processors.messages',
            ],
        },
    },
]

3). Encuentra la linea STATIC_URL y agrega las siguientes:

STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, 'static_files')

MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, "static_media")

7. Con el editor de texto, abre el archivo ~/application/application/urls.py. Luego elimina todo el contenido y pega lo siguiente:

from django.contrib import admin
from django.urls import path, include
from django.conf import settings
from django.conf.urls.static import static
from django.conf.urls import url
from django.views.generic.base import TemplateView

urlpatterns = [
    path('admin/', admin.site.urls),
    url(r'^$', TemplateView.as_view(template_name='static_pages/index.html'), name='home'),
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)

8. Abre el siguiente archivo con el editor de texto ~/application/passenger_wsgi.py. Luego elimine todo el contenido y pegue el siguiente contenido:

import os
import sys

import django.core.handlers.wsgi
from django.core.wsgi import get_wsgi_application

# Set up paths and environment variables
sys.path.append(os.getcwd())
os.environ['DJANGO_SETTINGS_MODULE'] = 'alkalmazas.settings'

# Set script name for the PATH_INFO fix below
SCRIPT_NAME = os.getcwd()

class PassengerPathInfoFix(object):
    """
        Sets PATH_INFO from REQUEST_URI because Passenger doesn't provide it.
    """
    def __init__(self, app):
        self.app = app

    def __call__(self, environ, start_response):
        from urllib.parse import unquote
        environ['SCRIPT_NAME'] = SCRIPT_NAME
        request_uri = unquote(environ['REQUEST_URI'])
        script_name = unquote(environ.get('SCRIPT_NAME', ''))
        offset = request_uri.startswith(script_name) and len(environ['SCRIPT_NAME']) or 0
        environ['PATH_INFO'] = request_uri[offset:].split('?', 1)[0]
        return self.app(environ, start_response)

# Set the application
application = get_wsgi_application()
application = PassengerPathInfoFix(application)

9. Luego cree un archivo index.html predeterminado dentro del directorio ~/application/templates/static_pages. Este archivo, es un archivo estático predeterminado que muestra el texto “Hello World”.

10. Ejecute el siguiente comando:

python ~/application/manage.py migrate

11. Creación de un usuario administrador:

Para hacer esto, ejecuta el siguiente comando:

python ~/application/manage.py createsuperuser

Cuando se le solicite el username, ingrese el nombre de usuario y luego presione Enter.

Cuando se le solicite el email address, ingrese su correo electrónico y luego presione Enter.

Cuando se le solicite la contraseña de administrador, escribalo y luego presione Enter.

12. Puedes compilar contenido estático ejecutando el siguiente comando:

python ~/application/manage.py collectstatic

Nota: Cuando se le solicite sobrescribir los archivos existentes, escriba “yes” y luego presione Intro.

13. Reinicie Python en la interfaz de cPanel.

Para hacer esto, haga clic en Python Setup en cPanel.

En la pestaña “web applications”, localice la aplicación y luego haga clic en “restart application” en la columna “Acciones”.

14. El último paso comprende probar la aplicación a través de la URL establecida:

1). En un navegador, abra el sitio web (http://www.example.com/) donde debería aparecer el archivo index.html. Reemplace el nombre de dominio ejemplo.com con el nombre de dominio que está utilizando.

2). El siguiente paso es ejecutar la dirección http://www.example.com/admin/ donde debe aparecer la interfaz de administración de la aplicación Django. Reemplace el nombre de dominio ejemplo.com con el nombre de dominio que este utilizando.

Nota: Si la web no aparece, intente ejecutar el archivo passenger_wsgi.py manualmente:

python ~/application/passenger_wsgi.py

En este caso, la consola mostrará la causa del error. Si especificó la ruta del log al configurar Python, los errores también se registraran en el archivo de registro.

Recursos:

Con esto finalizamos. Y recordá que si tenés dudas o consultas podés escribirnos a soporte@baehost.com

Hasta la próxima!

Deja una respuesta