GNU/Linux >> Linux の 問題 >  >> Panels >> Panels

MariaDB、Gunicorn、Nginxを使用してUbuntu12.04にDjangoCMSをインストールします

このブログ投稿では、MariaDB、Nginx、Gunicornを使用してUbuntuVPSにDjangoCMSをインストールする方法を紹介します。

Django CMSは、WebフレームワークDjangoに基づくオープンソースのコンテンツ管理システムです。主な機能には、プラグインベース、プリティURL、権限管理、アプリ、フロントエンド編集、分析、ブログなどがあります。

次のコマンドは、必要なすべてのパッケージをインストールします

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

最新バージョンのNginxをインストールします

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

MariaDBをインストールし、データベースを作成します。

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

pipをインストールする

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

pipを使用してvirtualenvを作成する

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

次のコンテンツを含むrequirements.txtファイルを作成します

# 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

djangoCMSをインストールする

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

djangoCMSプロジェクトを作成する

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

ファイル〜/ projects / mynewproject / mynewproject / settings.pyを開き、ファイルの先頭に次を追加します。

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

データベースの詳細を追加します:

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

次のアプリを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'
)

次の行を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',
)

ファイルの最後に以下を追加します:

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

STATIC_ROOTおよびMEDIA_ROOTディレクティブを次のように変更します。

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

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

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

少なくとも1つのテンプレートをCMS_TEMPLATESに追加します

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

英語に限定

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

最後に、settings.pyファイルを保存します。

プロジェクトのルートを定義する

mynewproject / mynewproject / urls.pyファイルを開き、コンテンツを次のように置き換えます

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

テンプレートを作成

新しいディレクトリテンプレートを作成する

mkdir ~/projects/mynewproject/templates

お気に入りのエディタを開き、次のファイルを作成します。

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>

template_1.html

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

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

template_2.html

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

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

データベースを初期化し、新しいスーパーユーザーを作成します

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

すべてが正しく設定されているかどうかを確認します

python manage.py cms check

「インストールは正常です」と表示されている場合は、すべてが正しく設定されていることを意味します。

静的ファイルを収集する

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

gunicornをインストールして構成する

pip install gunicorn

次のように新しい構成ファイル(〜/ .virtualenvs / djangocms / gunicorn_config.py)を作成します

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

次のコマンドでgunicornを起動します:

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

Nginxを構成する

新しい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

それでおしまい。次に、ブラウザを開いてドメインに移動します。

Django CMSの詳細については、http://docs.django-cms.org/

にアクセスしてください。

もちろん、Linux VPSホスティングサービスのいずれかを使用している場合は、これを行う必要はありません。その場合は、専門のLinux管理者にインストールを依頼するだけです。 24時間年中無休でご利用いただけます。リクエストはすぐに処理されます。

PS 。この投稿が気に入った場合は、左側のボタンを使用してソーシャルネットワーク上の友達と共有するか、下に返信を残してください。ありがとう。


Panels
  1. Ubuntu 12.04 LTSにHHVM、Nginx、MariaDBを使用してWordPressをインストールする

  2. Ubuntu 14.04 VPSにHHVM、Nginx、MariaDBを使用してphpMyAdminをインストールする方法

  3. NginxとMariaDBを使用してUbuntuVPSにHumHubをインストールします

  1. NginxとPHP-FPMを使用してUbuntu14.04VPSにOpenCart2をインストールします

  2. MariaDB、Puma、Nginxを使用してUbuntu14.04サーバーにRedmineをインストールします。

  3. Nginx、PHP-FPM、MySQLを使用してUbuntu14.04VPSにFuelCMSをインストールします

  1. UbuntuにNginx、MySQL、PHP-FPMを使用してProsper202をインストールします

  2. UbuntuにVarnishとNginxを使用してWordPressをインストールする

  3. UbuntuにMemcachedとNginxを使用してWordPressをインストールする