GNU/Linux >> Tutoriales Linux >  >> Panels >> Panels

Instale Django CMS en Ubuntu 12.04 con MariaDB, Gunicorn y Nginx

En esta publicación de blog, le mostraremos cómo instalar Django CMS en un Ubuntu VPS con MariaDB, Nginx y Gunicorn .

Django CMS es un sistema de gestión de contenido de código abierto basado en el marco web Django. Algunas de las características principales incluyen:URL bonitas basadas en complementos, administración de permisos, aplicaciones, edición de interfaz, análisis, blog, etc.

El siguiente comando instalará todos los paquetes necesarios

apt-get update
apt-get install -y python-software-properties python python-dev

Instalar la última versión de Nginx

add-apt-repository ppa:nginx/stable
apt-get update && sudo apt-get install nginx

Instala MariaDB y crea una base de datos.

apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xcbcb082a1bb943db
add-apt-repository 'deb http://ftp.osuosl.org/pub/mariadb/repo/5.5/ubuntu precise main'
apt-get update
echo -e "Package: *\nPin: origin ftp.osuosl.org\nPin-Priority: 1000" | tee /etc/apt/preferences.d/mariadb
apt-get install mariadb-server libmariadbclient-dev
mysql -uroot -p
MariaDB [(none)]> CREATE DATABASE dcms;
MariaDB [(none)]> GRANT ALL PRIVILEGES ON dcms.* TO 'dcmsuser'@'localhost' IDENTIFIED BY 'pa33W0rd';
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> \q

Instalar pip

curl https://raw.github.com/pypa/pip/master/contrib/get-pip.py | python -

Crear un virtualenv usando pip

sudo pip install --upgrade virtualenv
mkdir -p ~/.virtualenvs/djangocms
virtualenv ~/.virtualenvs/djangocms
source ~/.virtualenvs/djangocms/bin/activate

Cree un archivo de requisitos.txt con el siguiente contenido

# Bare minimum
django-cms==2.4.1

#These dependencies are brought in by django-cms, but if you want to lock-in their version, specify them
Django==1.5.1
django-classy-tags==0.4
South==0.8.1
html5lib==1.0b1
django-mptt==0.5.2
django-sekizai==0.7
six==1.3.0
mysql-python==1.2.5

#Optional, recommended packages
Pillow==2.0.0
django-filer==0.9.4
cmsplugin-filer==0.9.5
django-reversion==1.7

Instalar django CMS

pip install --upgrade --download-cache=~/.pip-cache -r requirements.txt

Cree su proyecto CMS de Django

mkdir ~/projects
cd  ~/projects
django-admin.py startproject mynewproject

Abra el archivo ~/projects/mynewproject/mynewproject/settings.py y agregue lo siguiente en la parte superior del archivo:

# -*- coding: utf-8 -*-
import os
gettext = lambda s: s
PROJECT_PATH = os.path.split(os.path.abspath(os.path.dirname(__file__)))[0]

Agregue los detalles de su base de datos:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'dcms', 
        'USER': 'dcms',
        'PASSWORD': 'pa33W0rd',
        'HOST': '',
        'PORT': '',
    }
}

Agregue las siguientes aplicaciones a INSTALLED_APPS.

'django.contrib.admin',
INSTALLED_APPS = (
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.sites',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'django.contrib.admin',
    'django.contrib.admindocs',
    'cms',
    'mptt',
    'menus',
    'south',
    'sekizai'
)

Agregue las siguientes líneas a la lista MIDDLEWARE_CLASSES.

MIDDLEWARE_CLASSES = (
    'django.middleware.common.CommonMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    # Uncomment the next line for simple clickjacking protection:
    # 'django.middleware.clickjacking.XFrameOptionsMiddleware',
    'cms.middleware.page.CurrentPageMiddleware',
    'cms.middleware.user.CurrentUserMiddleware',
    'cms.middleware.toolbar.ToolbarMiddleware',
    'cms.middleware.language.LanguageCookieMiddleware',
)

Agregue lo siguiente al final del archivo:

TEMPLATE_CONTEXT_PROCESSORS = (
    'django.contrib.auth.context_processors.auth',
    'django.core.context_processors.i18n',
    'django.core.context_processors.request',
    'django.core.context_processors.media',
    'django.core.context_processors.static',
    'cms.context_processors.media',
    'sekizai.context_processors.sekizai',
)

Cambie las directivas STATIC_ROOT y MEDIA_ROOT a:

STATIC_ROOT = os.path.join(PROJECT_PATH, "static")
STATIC_URL = "/static/"

MEDIA_ROOT = os.path.join(PROJECT_PATH, "media")
MEDIA_URL = "/media/"

Modifique la directiva TEMPLATE_DIRS:

TEMPLATE_DIRS = (
    # The docs say it should be absolute path: PROJECT_PATH is precisely one.
    # Life is wonderful!
    os.path.join(PROJECT_PATH, "templates"),
)

Agregue al menos una plantilla a CMS_TEMPLATES

CMS_TEMPLATES = (
    ('template_1.html', 'Template One'),
    ('template_2.html', 'Template Two'),
)

Limitar a inglés

LANGUAGES = [
    ('en', 'English'),
]

Finalmente guarde el archivo settings.py.

Definir rutas para nuestro proyecto

Abra el archivo mynewproject/mynewproject/urls.py y reemplace el contenido con lo siguiente

from django.conf.urls.defaults import *
from django.conf.urls.i18n import i18n_patterns
from django.contrib import admin
from django.conf import settings

admin.autodiscover()

urlpatterns = patterns('',
  url(r'^admin/', include(admin.site.urls)),
  url(r'^', include('cms.urls')),
)
if settings.DEBUG:
    urlpatterns = patterns('',
    url(r'^media/(?P<path>.*)$', 'django.views.static.serve',
        {'document_root': settings.MEDIA_ROOT, 'show_indexes': True}),
    url(r'', include('django.contrib.staticfiles.urls')),
) + urlpatterns

Crear plantillas

Crear un nuevo directorio de plantillas

mkdir ~/projects/mynewproject/templates

Abre tu editor favorito y crea los siguientes archivos:

base.html

{% load cms_tags sekizai_tags %}
<html>
  <head>
      {% render_block "css" %}
  </head>
  <body>
      {% cms_toolbar %}
      {% placeholder base_content %}
      {% block base_content %}{% endblock %}
      {% render_block "js" %}
  </body>
</html>

plantilla_1.html

{% extends "base.html" %}
{% load cms_tags %}

{% block base_content %}
  {% placeholder template_1_content %}
{% endblock %}

plantilla_2.html

{% extends "base.html" %}
{% load cms_tags %}

{% block base_content %}
  {% placeholder template_2_content %}
{% endblock %}

Inicialice la base de datos y cree un nuevo superusuario

python manage.py syncdb --all
python manage.py migrate --fake

Compruebe si todo está configurado correctamente

python manage.py cms check

Si ve "Instalación correcta", significa que todo está configurado correctamente.

Recopilar archivos estáticos

cd ~/projects/mynewproject
./manage.py collectstatic

Instalar y configurar gunicorn

pip install gunicorn

cree un nuevo archivo de configuración (~/.virtualenvs/djangocms/gunicorn_config.py) de la siguiente manera

command = '~/.virtualenvs/djangocms/bin/gunicorn'
pythonpath = '~/projects/mynewproject'
bind = '127.0.0.1:8011'
workers = 3
user = nobody

Inicie el gunicornio con el siguiente comando:

cd ~/projects/mynewproject && gunicorn -c ~/.virtualenvs/djangocms/gunicorn_config.py mynewproject.wsgi

Configurar Nginx

Crear un nuevo host virtual nginx

vim /etc/nginx/sites-available/your_domain.com
server {
 listen       80;
 server_name  your_domain.com;

    location /static/ {
        alias /<your_username>/projects/mynewproject/static/;
    }

    location / {
        proxy_pass_header Server;
        proxy_set_header Host $http_host;
        proxy_redirect off;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Scheme $scheme;
        proxy_connect_timeout 10;
        proxy_read_timeout 10;
        proxy_pass http://localhost:8011/;
    }
 }

ln -s /etc/nginx/sites-available/your_domain.com /etc/nginx/sites-enabled/your_domain.com
/etc/init.d/nginx restart

Eso es todo. Ahora abra su navegador y navegue hasta su dominio.

Para obtener más información sobre Django CMS, visite:http://docs.django-cms.org/

Por supuesto, no tiene que hacer nada de esto si utiliza uno de nuestros servicios de alojamiento VPS de Linux, en cuyo caso simplemente puede pedirle a nuestros administradores expertos de Linux que lo instalen por usted. Están disponibles las 24 horas del día, los 7 días de la semana y atenderán su solicitud de inmediato.

PD . Si te gustó esta publicación, compártela con tus amigos en las redes sociales usando los botones de la izquierda o simplemente deja una respuesta a continuación. Gracias.


Panels
  1. Instale WordPress con HHVM, Nginx y MariaDB en Ubuntu 12.04 LTS

  2. Cómo instalar phpMyAdmin con HHVM, Nginx y MariaDB en un Ubuntu 14.04 VPS

  3. Instale gpEasy CMS con NGINX y PHP5-FPM en un Ubuntu 14.04 VPS

  4. Instale Croogo en un Ubuntu VPS con Nginx y MariaDB

  5. Instale HumHub en un Ubuntu VPS con Nginx y MariaDB

Cómo instalar Grav CMS con Nginx en Ubuntu 16.04

Cómo instalar Wordpress con Nginx, MariaDB y HHVM en Ubuntu 16.04 LTS

Cómo instalar Django con PostgreSQL y Nginx en Ubuntu 16.04

Cómo Instalar Wordpress con Nginx, MariaDB y HHVM en Ubuntu 15.04

Configure Django con Postgres, Nginx y Gunicorn en Ubuntu 18.04

Instale Fuel CMS en un Ubuntu 14.04 VPS con Nginx, PHP-FPM y MySQL