cerrar

Instalación y configuración de Django en cPanel

Ambito:
Software

PASO 1: CREE UNA APLI9CACIÓN PYTHON EN CPANEL

Siga los siguientes pasos:

  1. Ingrese a cPanel.
  2. En la sección SOFTWARE, click en Setup Python App.
  3. Debajo de Setup new application, en Python version seleccione 3.6.
  4. En App Directory ingrese myapp.
  5. En App Domain/URI seleccione el dominio o subdominio que va a usar, deje en blanco el campo URI.
  6. Clic en Setup.
  7. En Existing applications, vaya a Command for entering the virtual environment, y copie el comando. Necesitará esta información más adelante.

PASO 2: CONFIGURE EL PROYECTO EN DJANGO

Los pasos son:

  • Instalar Django.
  • Crear y configurar el proyecto.
  • Configurar Passenger para trabajar con el proyecto.

Siga estos pasos:

  1. Conecte usando SSH.
  2. Active el entorno virtual, usando el comando explicado en el paso 7. Ejemplo:
    source /home/username/virtualenv/myapp/3.6/bin/activate
    
    La linea de comandos empieza con (myapp:3.6) para indicar que está trabajando en el entorno virtual myapp  con la versión Python 3.6. Todos los comandos de este artículo asumen que está trabajando en el entorno virtual de Python. Si cierra su sesión de SSH (o desactiva el entorno virtual con el comando deactivate), debe reactivar el entorno virtual para continuar con los siguientes pasos y comandos.
  3. Para instalar Django ejecute los siguientes comandos:

    cd ~
    pip install django==2.1.8

    Verifique la versión instalada:

    django-admin --version
  4. Cree el proyecto en Django:

    django-admin startproject myapp ~/myapp
    
  5. Cree los directorios estáticos:

    mkdir -p ~/myapp/templates/static_pages
    mkdir ~/myapp/static_files
    mkdir ~/myapp/static_media
    
  6. Use el editor de texto para abrir el archivo ~/myapp/myapp/settings.py, luego ejecute los siguientes campos.

    • Ubique la línea ALLOWED_HOSTS, luego modifique como en el ejemplo. Reemplace ejemplo.com por su dominio o subdominio:
      ALLOWED_HOSTS = ['ejemplo.com']
    • Busque el bloque TEMPLATES y modifique:

      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',
                  ],
              },
          },
      ]
      
    • Busque la línea STATIC_URL, y agregue las siguientes líneas:

      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. Use el editor de texto para abrir el archivio ~/myapp/myapp/urls.py. Borre todo lo existente y remplace por 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. Use el editor de texto para abrir el archivo ~/myapp/passenger_wsgi.py, luego haga los siguientes cambios. Reemplace usuario con el nombre de usuario de su cuenta de cPanel:

    import myapp.wsgi
    SCRIPT_NAME = '/home/usuario/myapp'
    
    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)
    
    application = myapp.wsgi.application
    application = PassengerPathInfoFix(application)
    
  9. Use el editor de texto para crear el archivo index.html en el directorio ~/myapp/templates/static_pages. Simplemente agregue el texto Hola mundo.
  10. Escriba el siguiente comando:

    python ~/myapp/manage.py migrate
  11. Cree la cuenta superusuario:

    • Escriba el siguiente comando:
      python ~/myapp/manage.py createsuperuser
    • En Username, escriba el usuario y presione Enter.
    • En Email address escriba el correo y presione Enter.
    • En Password, escriba la contraseña y presione Enter.
  12. El siguiente comando le permitirá almacenar estadísticas.

    python ~/myapp/manage.py collectstatic
    Si le pregunta sobre reescribir, simplemente acepte.
  13. En cPanel, reinicie la aplicación en Python

    • Debajo de Existing applications, busque su aplicación, y presione en Restart.
  14. Pruebe su sitio en Django en el navegador:

    • Vaya a http://www.ejemplo.com, cambie ejemplo.com por su nombre de dominio, debería leer el index.html que ha creado.
    • Vaya a http://www.ejemplo.com/admin, cambie ejemplo.com por su nombre de dominio. Debería ingresar a la administración de Django, use las credenciales del superusuario que ha creado.

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

    python ~/myapp/passenger_wsgi.py
    

    Si hay algún error revise la sintaxis de los archivos de configuración.

IMPORTANTE

Aunque esta es una guía básica, tome en cuenta que nosotros no brindamos soporte sobre el despliegue de aplicaciones en Django, simplemente otorgamos un servicio que pueda correrlas, si necesita aprender más sobre Django, por favor aprenda más con los siguientes recursos.

RECURSOS

  • Ahora que tiene un sitio web habilitado para Django en funcionamiento, puede comenzar el verdadero trabajo de desarrollar sus propias aplicaciones. Los siguientes recursos pueden ayudar:
  • Para ver la documentación oficial de Django, visite http://docs.djangoproject.com
  • Para obtener información sobre las extensiones de Django, visite https://github.com/django-extensions/django-extensions.
  • La biblioteca sur es popular para completar migraciones de bases de datos. Para obtener más información sobre el sur, visite https://pypi.python.org/pypi/South.
  • La biblioteca de estructuras puede ayudar a optimizar la implementación de aplicaciones. Para obtener más información sobre la tela, visite http://docs.fabfile.org.