GNU/Linux >> Linux Esercitazione >  >> Panels >> Panels

Installa Django CMS su Ubuntu 12.04 con MariaDB, Gunicorn e Nginx

In questo post del blog ti mostreremo come installare il Django CMS su un VPS Ubuntu con MariaDB, Nginx e Gunicorn .

Django CMS è un sistema di gestione dei contenuti open source basato sul framework Web Django. Alcune delle caratteristiche principali includono:basato su plug-in, URL graziosi, gestione delle autorizzazioni, app, modifica frontend, analisi, blog ..ecc.

Il comando seguente installerà tutti i pacchetti necessari

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

Installa l'ultima versione di Nginx

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

Installa MariaDB e crea un database.

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

Installa pip

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

Crea un virtualenv usando pip

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

Crea un file Requirements.txt con i seguenti contenuti

# 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

Installa django CMS

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

Crea il tuo progetto CMS django

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

Apri il file ~/projects/mynewproject/mynewproject/settings.py e aggiungi quanto segue nella parte superiore del file:

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

Aggiungi i dettagli del tuo database:

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

Aggiungi le seguenti app 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'
)

Aggiungi le seguenti righe all'elenco 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',
)

Aggiungi quanto segue alla fine del file:

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',
)

Modifica le direttive STATIC_ROOT e MEDIA_ROOT in:

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

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

Modifica la direttiva 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"),
)

Aggiungi almeno un modello a CMS_TEMPLATES

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

Limita all'inglese

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

Infine salva il file settings.py.

Definisci percorsi per il nostro progetto

Apri il file mynewproject/mynewproject/urls.py e sostituisci il contenuto con il seguente

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

Crea modelli

Crea un nuovo modello di directory

mkdir ~/projects/mynewproject/templates

Apri il tuo editor preferito e crea i seguenti file:

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>

modello_1.html

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

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

modello_2.html

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

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

Inizializza il database e crea un nuovo superutente

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

Verifica se tutto è impostato correttamente

python manage.py cms check

Se vedi "Installazione corretta", significa che tutto è impostato correttamente.

Raccogli file statici

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

Installa e configura gunicorn

pip install gunicorn

crea un nuovo file di configurazione (~/.virtualenvs/djangocms/gunicorn_config.py) come segue

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

Avvia il gunicorn con il seguente comando:

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

Configura Nginx

Crea un nuovo host virtuale 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

Questo è tutto. Ora apri il tuo browser e accedi al tuo dominio.

Per ulteriori informazioni su Django CMS, visitare:http://docs.django-cms.org/

Ovviamente non devi fare nulla di tutto questo se usi uno dei nostri servizi di hosting VPS Linux, nel qual caso puoi semplicemente chiedere ai nostri esperti amministratori Linux di installarlo per te. Sono disponibili 24 ore su 24, 7 giorni su 7 e si prenderanno immediatamente cura della tua richiesta.

PS . Se questo post ti è piaciuto condividilo con i tuoi amici sui social network utilizzando i pulsanti a sinistra o semplicemente lascia una risposta qui sotto. Grazie.


Panels
  1. Installa WordPress con HHVM, Nginx e MariaDB su Ubuntu 12.04 LTS

  2. Come installare phpMyAdmin con HHVM, Nginx e MariaDB su un VPS Ubuntu 14.04

  3. Installa gpEasy CMS con NGINX e PHP5-FPM su un Ubuntu 14.04 VPS

  4. Installa Croogo su un VPS Ubuntu con Nginx e MariaDB

  5. Installa HumHub su un VPS Ubuntu con Nginx e MariaDB

Come installare Grav CMS con Nginx su Ubuntu 16.04

Come installare Wordpress con Nginx, MariaDB e HHVM su Ubuntu 16.04 LTS

Come installare Django con PostgreSQL e Nginx su Ubuntu 16.04

Come installare Wordpress con Nginx, MariaDB e HHVM in Ubuntu 15.04

Configura Django con Postgres, Nginx e Gunicorn su Ubuntu 18.04

Come configurare Django con Postgres, Nginx e Gunicorn su Ubuntu 20.04