UbuntuにDjango1.6を使用してDjangoCMSバージョン3ベータ3をインストールする方法
序章
半年以上前の初期リリース以来、 DjangoCMSのバージョン3は継続的に開発されています。 利用可能な最新の開発者向けパッケージ(ベータ3)には、信頼できるAPIが含まれています。これは、RC1の公開から大きく変わることはないと予想されます。
このDigitalOceanの記事では、この強力なコンテンツ管理システム(CMS)をインストールして開始する方法を説明します。このシステムは、常連客が手に入れるのを待つことはできません。 さらに、バージョン2からDjangoCMSをアップグレードするという大きな課題を解決するのに役立ついくつかのガイドラインを提供しようとします。
注: Django CMSの現在安定しているバージョン(2014年3月現在のバージョン2)のインストールに興味がある場合は、記事 DjangoCMSのセットアップとインストール方法を確認してください。
用語集
1. DjangoとDjangoCMS
- Django
- Django CMS
2. はじめに:Ubuntuドロップレットの準備
3. DjangoCMSバージョン3ベータ3のインストール
- DjangoCMS用のPython仮想環境
- DjangoCMSと依存関係
- バージョン2からバージョン3へのアップグレード
4. DjangoCMS3の構成
- 新しいプロジェクトの作成
settings.py
の構成urls.py
の構成- テンプレートの構成
- データベースと移行
- DjangoCMSの実行
5. 生産の準備
6. 概要
DjangoとDjangoCMS
Django
Djangoは、Pythonプログラミング言語ベースのWeb開発フレームワークです。 非常に大規模なプロジェクトとライブラリであるため、すぐに開始することを楽しみにしている開発者に大量のツールと機能をパックして出荷します。
Django CMS
Django CMSは、真に開発者に優しいコンテンツ管理システムであり、Django上に構築されたWeb開発フレームワークです。 Djangoの高度な機能を最大限に活用し、あらゆる種類のWebサイトを作成するためのプラグイン可能な開発インターフェイスを提供します。
成熟したビジネス指向のアプリケーションであるDjangoCMSは、何が価値があるかを知っています。 何年にもわたって、プロジェクトは、ツールをハッキングする開発者とシステム管理者の両方の生活を楽にするために、重要な領域に大きく焦点を合わせてきました。
バージョン3のリリースにより、Django CMSはゲームの変更を目指しており、必要に応じて、大幅に改善されたインターフェイスと印象的な機能セットを提供します。
はじめに:UbuntuVPSの準備
Django CMSはPythonプロジェクトであり、グリッチやエラーなしでWebサイトをセットアップして実行するには、システムを正しく調整する必要があります。
ドロップレットの準備がまだ整っていない場合は、Ubuntu/Pythonの記事にすばやくアクセスしてください。
PythonWebアプリケーション用にUbuntuクラウドサーバーを準備する方法
そして、以下にあるDjango CMSのインストール(またはアップグレード)手順を続行します。
DjangoCMSバージョン3ベータ3のインストール
DjangoCMS用のPython仮想環境
まだ作成していない場合は、仮想環境を作成します。
virtualenv django_env
cd django_env
またはそれをアクティブにします:
# Remember to enter the directory:
# cd [django_env]
source bin/activate
DjangoCMSと依存関係
Django CMSバージョン3はまだリリースされていないため、Gitリポジトリの開発ブランチからアプリケーションをインストールする必要があります。
次のコマンドを実行して、pip
を使用してDjangoCMS3をインストールします。
pip install git+git://github.com/divio/django-cms.git@develop#egg=django_cms
そして、使用したいデータベースドライバをインストールします。例:
# PostgreSQL:
pip install psycopg2
依存関係に最も依存しているものの1つは、 Python Imaging Library (PIL)です。 PILは、画像を処理するためにDjango CMSによって使用されます(例: トリミング、サイズ変更など)
そうは言っても、PILを直接インストールすることは控え、「枕」と呼ばれる、より収容力のあるPILのフォークを選択します。 このパッケージはsetuptoolsと互換性があり、pilを使用しようとした場合に発生する可能性のあるいくつかの問題を自動的に解決します。
次のコマンドを実行して、枕をインストールします。
pip install pillow
バージョン2からバージョン3へのアップグレード
次のコマンドを実行して、pip
を使用してDjangoCMS3をアップグレードします。
pip install --upgrade git+git://github.com/divio/django-cms.git@develop#egg=django_cms
注:アップグレードの場合、すべてが下位互換性があるわけではなく、問題が発生する可能性があることを考慮してください。 したがって、バージョン3ベータブログ投稿をチェックして、追加の役立つアップグレードのヒントを入手してください。
DjangoCMS3の構成
Django CMSの使用を開始するのは簡単なプロセスですが、いくつかの設定が必要です。 まず、構成をブートストラップし、作業を開始するために使用できるいくつかのサンプルテンプレートファイルを作成します。
新しいプロジェクトの作成
DjangoベースのアプリケーションであるDjangoCMSには、自動化、管理、および管理ツールもいくつか付属しています。
django-admin
を使用して新しいプロジェクトを作成するには、次のコマンドを実行します。
# Usage: python django-admin.py startproject [project name]
# Example:
django-admin.py startproject dcms
# And enter the application directory:
cd dcms
settings.py
の構成
Djangoと同様に、メインの構成ファイルであるsettings.py
を使用していくつかの変更を加える必要があります。
次のコマンドを実行して、nanoテキストエディタを使用してsettings.py
の編集を開始します。
# Usage: nano [project dir. name]/settings.py
# Example:
nano dcms/settings.py
以下のコードブロックをコピーしてファイルの先頭に貼り付け(または変更)して、ベースプロジェクトディレクトリの場所を指す変数を作成します。
# -*- coding: utf-8 -*-
import os
BASE_DIR = os.path.dirname(os.path.dirname(__file__))
PROJECT_PATH = BASE_DIR
下にスクロールして、INSTALLED_APPSで始まる列を見つけます。
次のように修正します。つまり、次のようになります。
INSTALLED_APPS = (
# Additional plugin examples
# e.g.:
# Django CMS CK Editor:
# https://github.com/divio/djangocms-text-ckeditor
# 'djangocms_text_ckeditor',
# Django CMS:
'cms',
# Utilities:
'mptt',
'menus',
'south',
'sekizai',
# Other CMS modules:
'djangocms_admin_style',
# Django:
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'django.contrib.sites',
)
続けて、MIDDLEWARE_CLASSES
を見つけて、以下のように変更します。
MIDDLEWARE_CLASSES = (
# Django:
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
'django.middleware.locale.LocaleMiddleware',
'django.middleware.doc.XViewMiddleware',
# Django CMS:
'cms.middleware.page.CurrentPageMiddleware',
'cms.middleware.user.CurrentUserMiddleware',
'cms.middleware.toolbar.ToolbarMiddleware',
'cms.middleware.language.LanguageCookieMiddleware',
)
次のステップは、TEMPLATE_CONTEXT_PROCESSORS
設定を追加することです。
以下のコードブロックをファイルに追加します。
TEMPLATE_CONTEXT_PROCESSORS = (
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
'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_URL
という行を見つけます。 それを削除し、代わりにニーズに合わせて以下を追加します。
SITE_ID = 1
STATIC_ROOT = os.path.join(PROJECT_PATH, 'static')
STATIC_URL = '/static/'
MEDIA_ROOT = os.path.join(PROJECT_PATH, 'media')
MEDIA_URL = '/media/'
TEMPLATE_DIRS = (
# List of template directories.
# Example:
os.path.join(PROJECT_PATH, 'templates'),
)
CMS_TEMPLATES = (
# List of templates.
# Example:
('template_1.html', 'Template One'),
)
LANGUAGES = (
# List of languages.
# Example:
('en-us', 'English'),
)
CTRL + Xを押し、Yで確定して、保存して終了します。
urls.pyの構成
次のステップは、urls.py
ファイル内に構成されているいくつかのURLを設定することです。
以下を実行して、nanoを使用したurls.py
の編集を開始します。
# Usage: nano [project dir. name]/urls.py
# Example:
nano dcms/urls.py
コンテンツを次の例のようなものに置き換えます。
# Django CMS 2:
# from django.conf.urls.defaults import *
# Django CMS 3:
from django.conf.urls import patterns, include, url
from django.conf.urls.i18n import i18n_patterns
from django.contrib import admin
from django.conf import settings
admin.autodiscover()
urlpatterns = i18n_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
CTRL + Xを押し、Yで確定して、保存して終了します。
テンプレートの構成
データベースを作成してインストール(またはアップグレード)をテストする前に、いくつかのテンプレートを作成しましょう。
注:最初にsettings.py
ファイル内でテンプレートを定義してから、それに応じてテンプレートを作成してください。
以下を実行して、テンプレートディレクトリとファイルを作成します。
mkdir templates
touch templates/base.html
touch templates/template_1.html
nanoを使用してtemplates/base.html
を編集します。
nano 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>
CTRL + Xを押し、Yで確定して、保存して終了します。
nanoを使用してtemplates/template_1.html
を編集します。
nano templates/template_1.html
次の例では:
{% extends "base.html" %}
{% load cms_tags %}
{% block base_content %}
{% placeholder template_1_content %}
{% endblock %}
CTRL+X
を押し、Y
で確定して、保存して終了します。
データベースと移行
新規プロジェクトをインストールする場合は、次のコマンドを実行してデータベースを開始(またはセットアップ)します。
python manage.py syncdb --all
python manage.py migrate --fake
そして、整合性のチェックをいくつか実行します。
python manage.py cms check
# OVERALL RESULTS
# ===============
# 1 checks skipped!
# 8 checks successful!
# Installation okay
注:アップグレードの場合、必要に応じて移行を実行します。例:
python manage.py syncdb
python manage.py migrate
# For schema migrations:
python manage.py schemamigration dcms --auto
# ! Remember to replace dcms with your project name.
DjangoCMSの実行
Django CMSの動作を確認するには、テストサーバーを使用できます。
次のコマンドを実行して、アプリケーションを実行します。
python manage.py runserver 0.0.0.0:8000
そして訪問:
- Django CMSホーム:
http:// [ドロップレットのIP]:8000 / en-us
- Django CMS管理者:
http:// [ドロップレットのIP]:8000 / en-us / admin
生産の準備
Django CMSプロジェクトの作成が終了したら、アプリケーションに付属しているテストサーバーに依存しないようにする必要があります。
展開の場合、本格的なWebアプリケーションサーバー(例: Unicorn)を使用する必要があります。できれば、リクエストの初期処理と静的ファイル(画像など)の配布を処理するリバースプロキシの背後で使用する必要があります。
本番環境に移行する方法の全体像をすばやく把握するには、記事の「本番環境の準備」のセクションタイトルを確認してください:PythonWebアプリケーション用にUbuntuクラウドサーバーを準備する方法。
概要
すでにこの記事を読んでいる場合、またはインストール手順の簡単な要約が必要な場合は、次のようにします。
# Preare the system and install Python tools:
aptitude update
aptitude -y upgrade
aptitude install -y build-essential
aptitude install -y cvs subversion git-core mercurial
aptitude install python-setuptools python-dev python2.7-dev python-software-properties libpq-dev
aptitude install libtiff4-dev libjpeg8-dev zlib1g-dev libfreetype6-dev liblcms2-dev libwebp-dev tcl8.5-dev tk8.5-dev
curl https://bitbucket.org/pypa/setuptools/raw/bootstrap/ez_setup.py | python -
curl https://raw.github.com/pypa/pip/master/contrib/get-pip.py | python -
export PATH="/usr/local/bin:$PATH"
pip install virtualenv
# Create a virtual environment:
virtualenv django_env
cd django_env
source bin/activate
pip install git+git://github.com/divio/django-cms.git@develop#egg=django_cms
pip install psycopg2
pip install pillow
# Create a Django CMS project:
django-admin.py startproject dcms
cd dcms