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