序章
Django CMS は、DjangoフレームワークベースのWebアプリケーションでの作業を目的としたコンテンツ管理システムの1つです。 これは、今日利用可能な他のほぼ3ダースのオプションの中でおそらく最も人気のあるものです。 世界中のいくつかの重要なブランドから信頼されている成熟した生産準備の整ったシステムであり、その開発を支援する専門企業を持つことは、プロジェクトにとって魅力的な選択肢になるはずです。
このDigitalOceanの記事では、 DjangoCMSをDebian7/ Ubuntu 13 VPSにインストールし、構成して使用できるようにする方法について説明します。 Django [CMS]の使用に興味があるが、フレームワークやPython言語自体の経験があまりない場合でも、心配する必要はありません。DjangoCMSには、開発用の比較的単純で非常に豊富なドキュメントが付属しています。このチュートリアルを完了したら、始めましょう。 こちらをクリックすると、最新バージョンにアクセスできます。
DjangoCMSのインストール
Pythonパッケージマネージャー: pip
pipは、必要なソフトウェアパッケージ(ツール、ライブラリ、アプリケーションなど)を非常に簡単にインストールするのに役立つパッケージマネージャーです。
Python Package Distribution Utility: setuptools
pipの依存関係であるsetuptoolsライブラリは、Pythonの標準ソフトウェアディストリビューションユーティリティツールセットdistutilsの機能に基づいています。
仮想Python環境ビルダー: virtualenv
Pythonで実現することは非常に簡単で、パッケージやアプリケーションのインストールも例外ではありません。 ただし、これらのパッケージのかなりの量は、他のパッケージにも依存しています。 インストールすると、他のライブラリと一緒に、システム全体で利用できるようになります。どのPythonアプリケーションも、これらのライブラリにリンクして使用できます。
特定の状況では、これにより、依存関係の問題が原因で、構成済みの安定したアプリケーションが機能しなくなるという深刻な頭痛の種が発生する可能性があります。 インストールまたは削除したものはすべてシステム全体に影響するため、ライブラリまたはモジュールのバージョンが間違っていると、すべてが破損する可能性があります。 また、新しいプロジェクトの開発を開始して、クリーンな作業環境が必要になる場合もあります。
これがvirtualenvツールの目的であり、まさにそれを利用する理由です。DjangoCMSアプリケーションリポジトリとその複雑な依存関係をシステムの他の部分から分離し、すべてを整理し、同時にメンテナンスを容易にするためです。時間。
5ステップのインストールプロセス
1-オペレーティングシステムを準備します
注意:この記事では、新しく作成したVPSを使用します。 これにより、過去のインストールで発生した可能性のあるソフトウェア関連の問題やセキュリティの問題を防ぐことができます。
まず、オペレーティングシステムを最新の状態にする必要があります。 ソフトウェアリポジトリリストの更新から始めて、マシンにインストールされているツールをより新しいバージョンにアップグレードします。
aptitude update
aptitude upgrade
これで、途中で必要になる他のソフトウェアツールやライブラリのインストールを続行できます。
必要なものは次のとおりです。
-
python-dev :このパッケージは、システムへのデフォルトのPythonインストールを拡張します。
-
libjpeg-dev / libpng-dev :これらのライブラリは、Pythonイメージングライブラリを使用した画像処理に必要になります。
-
libpq-dev :libpq(PostgreSQL)開発バージョン。これは、チュートリアルの後半でさらに必要になります。
ダウンロードしてインストールするには、次のコマンドを実行します。
aptitude install libpq-dev python-dev libjpeg-dev libpng-dev
2-仮想環境をインストールします
必要なものはすべてPythonで実行されます。 デフォルトのDebian7インストールには、Python version
2.7
が付属しています。 これは要件に合っているため、virtualenv(およびその他のパッケージ)のインストールに必要なpipのインストールを続行できます。
pipを取得する前に、まずその依存関係をインストールする必要があります:setuptools。
2.1- setuptools をインストールします:
curl というツールを使用して、セットアップファイルを安全にダウンロードします。 これらのセットアップファイルを使用すると、インストールプロセスを自動化できるだけでなく、システムで最新の安定したバージョンを実行できるようになります。 ここでのcurlは、ソースからのSSL証明書を検証し、データをPythonインタープリターに渡します。
次のコマンドを実行します。
$ curl https://bitbucket.org/pypa/setuptools/raw/bootstrap/ez_setup.py | python -
これにより、システム全体にインストールされます。
これで、システムにpipをインストールしてセットアップできます。
2.2-pipをインストールします。
もう一度curlを使用して、安全にダウンロードしてインストールしてみましょう。 次を実行します。
$ curl https://raw.github.com/pypa/pip/master/contrib/get-pip.py | python -
これにより、システム全体にインストールされます。
デフォルトでは、pipはファイルを/usr/local/bin
の場所にインストールします。 PATH
に追加して、pipコマンドを直接呼び出して実行できるようにする必要があります。
更新してみましょう:
export PATH="/usr/local/bin:$PATH"
パッケージマネージャーをpipしているので、これ以降のすべてのインストールはpip install package-name
と同じくらい簡単です。 ただし、virtualenvの最新の安定したリリースが必要なため、pipにアドレスを提供します。
2.3-virtualenvをインストールします。
以下を実行して、pipにvirtualenvをインストールさせます。
pip install https://github.com/pypa/virtualenv/tarball/1.9.X
これにより、システム全体にインストールされます。
ご参考までに、標準的なインストール方法は次のとおりです。
pip install virtualenv
これにより、システム全体にインストールされます。
3-Django CMS用の仮想環境( venv )の準備
必要なすべてのツールの準備が整い、DjangoCMSプロジェクトが存在する仮想環境の準備を開始できます。
virtualenvを使用して「django_cms」と呼ばれるvenv(仮想環境)を開始することから始めて、プロジェクトのフォルダーに移動しましょう。
virtualenv django_cms
cd django_cms
プロジェクトリポジトリのフォルダ名として「django_cms」を選択しました。 必要に応じて変更できます。 無関係な名前を選択すると、将来的にメンテナンスの問題が発生する可能性があることに注意してください。
virtualenvを作成したら、それを使用するためにアクティブ化する必要があります。
source bin/activate
こちらをクリックすると、virtualenvのアクティベーションについて詳しく知ることができます。
アクティブ化時に非アクティブ化するには、必要に応じてコマンド
deactivate
を実行するだけです。
4-DjangoCMSの依存関係を設定する
4.1-枕を取り付けます(ドロップイン枕の交換):
必要な依存関係の1つは、Python Imaging Library(PIL)と呼ばれます。 以前にインストールした他のいくつかのライブラリと一緒に、PILはDjango[CMS]によって画像を処理するために使用されます。
そうは言っても、PILを控え、枕と呼ばれるより収容力のあるPILのフォークを使用します。 このパッケージはsetuptoolsと互換性があり、venv内でpilを使用しようとした場合に発生するいくつかの問題を自動的に解決します。
次のコマンドを実行して、枕をダウンロードしてインストールします。
django_cms$ pip install pillow
venvがアクティブ化されているため、これはシステム全体のインストールではありません。
4.2-データベースドライバのインストール
Django [CMS]を使用すると、アプリケーションを強化するために複数のデータベースエンジンを選択できます。 現在、PostgreSQL、MySQL、Oracle、SQLiteがすべてサポートされています。 Djangoプロジェクトで推奨されているように、PostgreSQLを選択し、アプリケーションのバックエンドとして使用できるようにするために必要なライブラリとドライバーをインストールします。
Djangoで使用されるPostgreSQLデータベースアダプタはpsycopg2と呼ばれます。 libpq-devライブラリがインストールされている必要があり、最初にインストールしました。 したがって、次のコマンドの実行を続行して、venvにpsycopg2をインストールできます。
django_cms$ pip install psycopg2
venvがアクティブ化されているため、これはシステム全体のインストールではありません。
psycopg2の詳細については、http://initd.org/psycopg/docs/faq.htmlにアクセスしてください。
注意:これらのコマンドはPostgreSQL for Djangoの準備ができていますが、完全に構成されたインストールは提供しません。 PostgreSQLを使用することを選択し、Djangoの詳細な手順が必要な場合は、ここをクリックして、正確な主題に関する次のDigitalOceanチュートリアルにアクセスすることをお勧めします。
以下では、SQLiteデータベースを使用しています。 また、PostgreSQLインストールを使用する場合は、その設定を変更してPostgreSQLインストールで機能するようにする必要があります。
5-Python仮想環境内でのDjangoCMSのインストールとセットアップ
5.1-DjangoCMSのインストール
Django CMSには、まだインストールする必要のある他の多くの依存関係があります。 ただし、pipのおかげで、残りを自動的にインストールして、DjangoCMSパッケージdjango-cmsでセットアップすることができます。
以下を実行して、インストールを完了します。
django_cms$ pip install django-cms
venvがアクティブ化されているため、これはシステム全体のインストールではありません。
これで、すべてがインストールされました:Django、django-classy-tags、south、html5lib、django-mptt、django-sekizai。
これらのパッケージの詳細については、ここをクリックをクリックしてください。
5.2-DjangoCMSのセットアップ
Django CMSプロジェクトの作成は、2つの部分で構成されています。 まず、仮想環境で通常のDjangoプロジェクトを開始し、DjangoCMSとして機能するように設定を続けます。
Djangoプロジェクトの作成から始めましょう。 dcmsという名前を付けます。ニーズに合わせて選択できます。
以下を実行するだけです。
django_cms$ django-admin.py startproject dcms
django_cms$ cd dcms
プロジェクトが作成されたことがわかります。 構成部分に進む前にインストールをテストするために、以下を実行して、外部からアクセスできる単純な開発サーバーを起動しましょう。
django_cms$ python manage.py runserver 0.0.0.0:8000
ブラウザからURLにアクセスし、0.0.0.0
をサーバーのIPアドレスに置き換えます。
これで、DjangoCMS入門チュートリアルにリストされている手順に従ってすべてを完成させることができます。
5.3-入門チュートリアルに従ってセットアップを完了します
Django CMSの構成のほとんどは、プロジェクトフォルダー内にあるsettings.py
ファイル内で行われます。
お気に入りのエディターで開きます。 このチュートリアルでは、nano
を使用します。
django_cms$ nano dcms/settings.py
ファイルの先頭に次の行を追加します。
# -*- coding: utf-8 -*-
import os
gettext = lambda s: s
PROJECT_PATH = os.path.split(os.path.abspath(os.path.dirname(__file__)))[0]
設定の最初のバッチを開始するには、ファイルを下にスクロールして、INSTALLED_APPSセクションを見つけます。 ここでは、現在存在するモジュールのリストの最後に、Django CMSモジュール自体を含め、すでにインストールされているいくつかのモジュールの名前を追加します。
Django CMSドキュメントに記載されているように:
次のアプリをINSTALLED_APPSに追加します。 これには、django CMS自体、その依存関係、およびその他の強く推奨されるアプリケーション/ライブラリが含まれます。
'cms', # django CMS itself
'mptt', # utilities for implementing a modified pre-order traversal tree
'menus', # helper for model independent hierarchical website navigation
'south', # intelligent schema and data migrations
'sekizai', # for javascript and css management
注意:先に進む前に、リストからdjango.contrib.admin
もコメント解除してください。 そのモジュールは、セットアップ手順に必要です。
次に、MIDDLEWARE_CLASSES
を見つけて、リストの一番下に以下を追加しましょう。
'cms.middleware.page.CurrentPageMiddleware',
'cms.middleware.user.CurrentUserMiddleware',
'cms.middleware.toolbar.ToolbarMiddleware',
'cms.middleware.language.LanguageCookieMiddleware',
その後、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',
)
Django CMSのドキュメントに記載されているように、不足している設定コードブロックをファイルに追加する必要があります。 settings.py
には存在しません。 ブロックをコピーしてファイル内の空き場所に貼り付けます。
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
ディレクティブを見つけて変更しましょう。
MEDIA_ROOT = os.path.join(PROJECT_PATH, "media")
MEDIA_URL = "/media/"
STATIC_ROOT = os.path.join(PROJECT_PATH, "static")
STATIC_URL = "/static/"
TEMPLATE_DIRS
ディレクティブを次のように変更し続けます。
TEMPLATE_DIRS = (
os.path.join(PROJECT_PATH, "templates"),
)
Django CMSでは、CMS_TEMPLATES
で設定する必要のあるテンプレートを少なくとも1つ定義する必要があります。 次のコードブロックをファイルに追加し、必要に応じて必要に応じて修正します。
CMS_TEMPLATES = (
('template_1.html', 'Template One'),
)
翻訳言語も設定する必要があります。 次のコードブロックを追加します。
LANGUAGES = [
('en-us', 'English'),
]
最後に、データベースエンジンを定義しましょう。 DATABASES 設定を変更して、示されているようにPostgreSQLで動作するようにするか、以下を使用してSQLiteデータベースを一時的にセットアップすることができます。
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': os.path.join(PROJECT_PATH, 'database.sqlite'),
}
}
settings.py
で完了です。 保存して閉じることができます。 (CTRL + Xを押し、Yと入力して保存して閉じます)。
プロジェクトのルートを定義する必要があります。
これを行うには、urls.pyファイルを編集します。
django_cms$ nano dcms/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 = 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
上記のスニペットで作成された最後の条件は、Django CMSの導入設定とは少し異なることに注意してください。これにより、
urlpatterns = patterns(
がurlpatterns += patterns(
に置き換えられ、上記のurlpatterns
がオーバーライドされる問題が修正されます。 。
もう一度CTRL+Xを押し、Yと入力して保存して閉じます。
テンプレートの作成を続けます。
templatesフォルダーを作成します。
django_cms$ mkdir templates
模範的なbaseテンプレートを作成して、他のテンプレートを拡張します。
django_cms$ 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>
保存して閉じて、最初のテンプレートbase.html
に基づくtemplate_1.html
の作成を続けましょう。
django_cms$ nano templates/template_1.html
これに次の短いスニペットを入力します。
{% extends "base.html" %}
{% load cms_tags %}
{% block base_content %}
{% placeholder template_1_content %}
{% endblock %}
これも保存して閉じましょう。
次のコマンドを実行して、設定に従ってデータベースを同期します。
django_cms$ python manage.py syncdb --all
django_cms$ python manage.py migrate --fake
すべてを完了するには、 cmscheckを使用してすべてが正しく設定されているかどうかを確認する必要があります。
django_cms$ python manage.py cms check
「インストールは正常です」と表示されている場合は、すべてが正常であることを意味し、DjangoCMSプロジェクトのビルドを続行する前にテストサーバーで試すことができます。
サーバーをもう一度実行してみましょう。
django_cms$ python manage.py runserver 0.0.0.0:8000
-
Django CMSのウェルカム画面を表示するには、次のURLにアクセスしてください。
http:// your_servers_ip_addr:8000 / en-us
-
管理パネルを使用するには、次の場所に移動します。
http:// your_servers_ip:8000 / en-us / admin
データベースの同期中に作成したユーザーでログインする必要があります。 そこからCMSのカスタマイズを続けることができます。
詳細な手順、チュートリアル、およびドキュメントについては、http://docs.django-cms.org/en/2.4.2/にアクセスしてください。 Django CMSのサポートをさらに受けるには、https://www.django-cms.org/en/support/にあるサポートページにアクセスしてください。