開発者ドキュメント

Debian7またはUbuntu13VPSにDjangoCMSをセットアップしてインストールする方法

序章


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

これで、途中で必要になる他のソフトウェアツールやライブラリのインストールを続行できます。

必要なものは次のとおりです。

ダウンロードしてインストールするには、次のコマンドを実行します。

aptitude install libpq-dev python-dev libjpeg-dev libpng-dev

2-仮想環境をインストールします


必要なものはすべてPythonで実行されます。 デフォルトのDebian7インストールには、Python version2.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

データベースの同期中に作成したユーザーでログインする必要があります。 そこからCMSのカスタマイズを続けることができます。

詳細な手順、チュートリアル、およびドキュメントについては、http://docs.django-cms.org/en/2.4.2/にアクセスしてください。 Django CMSのサポートをさらに受けるには、https://www.django-cms.org/en/support/にあるサポートページにアクセスしてください。

投稿者: https ://twitter.com/ostezer
モバイルバージョンを終了