Thứ ba, 12/11/2013 | 00:00 GMT+7

Cách thiết lập và cài đặt Django CMS trên VPS Debian 7 hoặc Ubuntu 13

Django CMS là một trong những hệ thống quản lý nội dung hướng tới việc làm việc với các ứng dụng web dựa trên khuôn khổ Django. Đây có lẽ là lựa chọn phổ biến nhất trong số gần ba chục tùy chọn khác hiện có. Là một hệ thống sẵn sàng production trưởng thành được một số thương hiệu quan trọng trên thế giới tin tưởng và có một công ty chuyên nghiệp hỗ trợ sự phát triển của nó chắc chắn làm cho nó trở thành một sự lựa chọn hấp dẫn cho các dự án.


Trong bài viết DigitalOcean này, ta sẽ hướng dẫn bạn cách cài đặt Django CMS trên VPS Debian 7 / Ubuntu 13, đã sẵn sàng để được cấu hình và sử dụng. Nếu bạn quan tâm đến việc sử dụng Django [CMS] nhưng không có nhiều kinh nghiệm với khung công tác hoặc chính ngôn ngữ Python, đừng lo lắng: Django CMS đi kèm với một tài liệu tương đối thẳng và khá phong phú để phát triển, điều này sẽ là quá đủ để giúp bạn tiếp tục sau khi hoàn thành hướng dẫn này. Bạn có thể truy cập version mới nhất bằng cách nhấp vào đây .

Cài đặt Django CMS


Trình quản lý gói Python: pip


pip là một trình quản lý gói sẽ giúp ta cài đặt các gói phần mềm (công cụ, thư viện, ứng dụng, v.v.) mà ta cần một cách rất dễ dàng.

Tiện ích phân phối gói Python: setuptools


Một phụ thuộc của pip, setuptools thư viện được xây dựng trên các chức năng của tiện ích phân phối phần mềm chuẩn của Python công cụ distutils.

Trình tạo môi trường Python ảo: virtualenv


Nhiều thứ cực kỳ đơn giản để đạt được trong Python và cài đặt các gói và ứng dụng cũng không ngoại lệ. Tuy nhiên, một số lượng đáng kể các gói này cũng tùy thuộc vào những gói khác. Sau khi cài đặt, cùng với phần còn lại, chúng trở nên khả dụng trên toàn hệ thống: bất kỳ ứng dụng Python nào đều có thể liên kết đến các thư viện đó và sử dụng chúng.

Trong một số trường hợp nhất định, điều này có thể gây đau đầu nghiêm trọng với ứng dụng đã được cấu hình và ổn định ngừng hoạt động do một số vấn đề phụ thuộc. Vì bất kỳ thứ gì bạn cài đặt hoặc xóa đều ảnh hưởng đến toàn bộ hệ thống, version thư viện hoặc module sai có thể phá vỡ mọi thứ. Vào một thời điểm khác, bạn có thể bắt đầu phát triển một dự án mới và thấy mình cần một môi trường làm việc trong lành.

Đây là những gì công cụ virtualenv có và chính xác lý do tại sao ta sẽ sử dụng nó: để cô lập kho ứng dụng Django CMS của ta và các phụ thuộc phức tạp của nó khỏi phần còn lại của hệ thống, cho phép ta có mọi thứ theo thứ tự, đồng thời giảm bớt việc bảo trì. thời gian.

Quy trình cài đặt 5 bước của ta


1 - Chuẩn bị hệ điều hành


Xin lưu ý: Ta sẽ sử dụng một VPS mới được tạo cho bài viết này. Điều này ngăn chặn mọi vấn đề liên quan đến phần mềm hoặc bảo mật có thể xảy ra từ các lần cài đặt trước.

Đầu tiên, ta cần cập nhật hệ điều hành của bạn . Hãy bắt đầu với việc cập nhật danh sách repository , sau đó nâng cấp các công cụ đã cài đặt trên máy của ta lên các version mới hơn:

aptitude update aptitude upgrade 

Bây giờ ta có thể tiếp tục cài đặt các công cụ và thư viện phần mềm khác mà ta cần trong quá trình này.

Đây là những gì ta cần :

  • python-dev : Gói này mở rộng cài đặt Python mặc định trên hệ thống của ta .

  • libjpeg-dev / libpng-dev : Các thư viện này cần thiết để xử lý hình ảnh với thư viện hình ảnh Python.

  • libpq-dev : Phiên bản phát triển của libpq (PostgreSQL), mà ta cần biết thêm ở phần sau của hướng dẫn.

Để download và cài đặt, hãy chạy lệnh sau:

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

2 - Cài đặt Môi trường ảo


Mọi thứ ta cần đều chạy trên Python. Cài đặt Debian 7 mặc định đi kèm với version Python 2.7 . Vì điều này phù hợp với yêu cầu của ta , ta có thể tiếp tục cài đặt pip mà ta cần để cài đặt virtualenv (và các gói khác ').

Trước khi nhận được pip, trước tiên ta cần cài đặt phụ thuộc của nó: setuptools .

2.1 - Cài đặt setuptools:


Ta sẽ download các file cài đặt một cách an toàn bằng cách sử dụng một công cụ có tên là curl . Các file cài đặt này sẽ không chỉ cho phép ta tự động hóa quá trình cài đặt mà còn đảm bảo ta có các version ổn định mới nhất đang chạy trên hệ thống của bạn . curl ở đây sẽ xác minh các certificate SSL từ nguồn và chuyển dữ liệu đến trình thông dịch Python.

Thực hiện lệnh sau:

$ curl https://bitbucket.org/pypa/setuptools/raw/bootstrap/ez_setup.py | python - 

Điều này sẽ cài đặt nó trên toàn hệ thống.

Bây giờ ta có thể cài đặt và cài đặt pip trên hệ thống của bạn .

2.2 - Cài đặt pip :


Hãy sử dụng lại curl để download và cài đặt an toàn. Chạy như sau:

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

Điều này sẽ cài đặt nó trên toàn hệ thống.

Theo mặc định, pip cài đặt các file của nó ở vị trí /usr/local/bin . Ta cần thêm nó vào PATH để có thể chạy nó bằng lệnh gọi pip trực tiếp.

Hãy cập nhật nó:

export PATH="/usr/local/bin:$PATH" 

Vì ta đã sử dụng trình quản lý gói pip, nên tất cả các cài đặt từ bây giờ trở đi dễ dàng như pip install package-name . Tuy nhiên, vì ta muốn bản phát hành virtualenv ổn định mới nhất, ta sẽ cung cấp địa chỉ pip.

2.3 - Cài đặt virtualenv :

Chạy phần sau để cài đặt pip virtualenv:

pip install https://github.com/pypa/virtualenv/tarball/1.9.X 

Điều này sẽ cài đặt nó trên toàn hệ thống.

Trong trường hợp bạn đang thắc mắc, cách cài đặt tiêu chuẩn sẽ là:

pip install virtualenv 

Điều này cũng sẽ cài đặt nó trên toàn hệ thống.

3 - Chuẩn bị Môi trường ảo của ta ( venv ) cho Django CMS


Tất cả các công cụ ta cần đã sẵn sàng và ta có thể bắt đầu chuẩn bị môi trường ảo nơi dự án Django CMS của ta sẽ cư trú.

Hãy bắt đầu với việc khởi tạo một venv (môi trường ảo) có tên “django_cms” bằng virtualenv và đi tới folder của dự án:

virtualenv django_cms cd django_cms 

Ta chọn “django_cms” làm tên folder của kho dự án. Bạn có thể thay đổi nó như bạn muốn. Lưu ý việc chọn một cái tên không liên quan có thể gây ra rắc rối khi bảo trì trong tương lai.

Khi tạo virtualenv, bạn cần kích hoạt nó để sử dụng.

source bin/activate 

Bạn có thể tìm hiểu thêm về cách kích hoạt virtualenv bằng cách nhấp vào đây .

Khi kích hoạt, để hủy kích hoạt, chỉ cần chạy lệnh deactivate khi cần.

4 - Cài đặt phụ thuộc Django CMS


4.1 - Lắp đặt gối (thay thế Pilot thả vào):


Một trong những phụ thuộc mà ta cần có được gọi là Thư viện ảnh Python (PIL). Cùng với một số thư viện khác mà ta đã cài đặt trước đó, PIL được Django [CMS] sử dụng để xử lý hình ảnh.

Điều đó đang được nói, ta sẽ bỏ qua PIL và sử dụng một fork dễ chịu hơn của PIL được gọi là gối . Gói này tương thích với setuptools và tự động giải quyết một số vấn đề sẽ phát sinh nếu ta thử và sử dụng pil bên trong một venv.

Chạy phần sau để download và cài đặt gối:

django_cms$ pip install pillow 

Khi ta đã kích hoạt venv, đây sẽ không phải là một cài đặt trên toàn hệ thống.

4.2 - Cài đặt trình điều khiển database


Django [CMS] cho phép bạn chọn một số công cụ database để cung cấp năng lượng cho ứng dụng của bạn. PostgreSQL, MySQL, Oracle và SQLite hiện đều được hỗ trợ. Theo đề xuất của dự án Django, ta sẽ chọn PostgreSQL và cài đặt các thư viện và trình điều khiển cần thiết sẽ cho phép ta sử dụng nó làm phần backend của ứng dụng của ta .

Bộ điều hợp database PostgreSQL được Django sử dụng được gọi là psycopg2 . Nó cần cài đặt thư viện libpq-dev và ta đã cài đặt nó ngay từ đầu. Do đó, ta có thể tiếp tục thực hiện lệnh sau để cài đặt psycopg2 trong venv:

django_cms$ pip install psycopg2 

Khi ta đã kích hoạt venv, đây sẽ không phải là một cài đặt trên toàn hệ thống.

Để biết thêm về psycopg2, bạn có thể truy cập http://initd.org/psycopg/docs/faq.html .

Xin lưu ý: Các lệnh này sẵn sàng PostgreSQL cho Django nhưng không cung cấp cho bạn cài đặt được cấu hình đầy đủ. Nếu bạn chọn làm việc với PostgreSQL và bạn cần hướng dẫn thêm về Django, bạn có thể cần truy cập hướng dẫn DigitalOcean sau đây về chủ đề chính xác bằng cách nhấp vào đây .

Dưới đây ta đang sử dụng database SQLite. Bạn cũng nên sửa đổi cài đặt đó để hoạt động với cài đặt PostgreSQL của bạn nếu bạn quyết định sử dụng nó.

5 - Cài đặt và cài đặt Django CMS bên trong Môi trường ảo Python của ta


5.1 - Cài đặt Django CMS


Django CMS đi kèm với một số phụ thuộc khác mà ta cần cài đặt. Tuy nhiên, nhờ vào pip, ta có thể tự động cài đặt và cài đặt phần còn lại với gói Django CMS: django-cms .

Chỉ cần chạy phần sau để kết thúc quá trình cài đặt:

django_cms$ pip install django-cms 

Khi ta đã kích hoạt venv, đây sẽ không phải là một cài đặt trên toàn hệ thống.

Bây giờ ta đã cài đặt mọi thứ: Django, django-Class-tags, south, html5lib, django-mptt, django-sekizai.

Để tìm hiểu thêm về các gói này, hãy nhấp vào đây .

5.2 - Cài đặt Django CMS


Tạo một dự án CMS Django bao gồm hai phần. Đầu tiên, ta sẽ bắt đầu một dự án Django thông thường trong môi trường ảo của ta và sau đó tiếp tục cài đặt nó để nó hoạt động như Django CMS.

Hãy bắt đầu với việc tạo dự án Django. Ta sẽ đặt tên nó là dcms , bạn có thể chọn nó cho phù hợp với nhu cầu của bạn.

Chỉ cần chạy như sau:

django_cms$ django-admin.py startproject dcms django_cms$ cd dcms 

Bạn sẽ thấy rằng dự án của ta được tạo ra. Để kiểm tra cài đặt trước khi tiếp tục với phần cấu hình, hãy chạy phần sau để bắt đầu một server phát triển đơn giản mà ta có thể truy cập từ bên ngoài:

django_cms$ python manage.py runserver 0.0.0.0:8000 

Truy cập URL từ trình duyệt của bạn, thay thế 0.0.0.0 bằng địa chỉ IP server của bạn.

Bây giờ ta có thể làm theo các hướng dẫn được liệt kê trong Hướng dẫn giới thiệu về Django CMS để hoàn thiện mọi thứ.

5.3 - Hoàn thiện cài đặt theo hướng dẫn giới thiệu


Hầu hết các cấu hình cho Django CMS diễn ra bên trong file settings.py nằm bên trong folder dự án.

Mở nó bằng trình soạn thảo yêu thích của bạn. Trong hướng dẫn này, ta sẽ sử dụng nano .

django_cms$ nano dcms/settings.py 

Thêm các dòng sau vào đầu file :

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

Để bắt đầu với loạt cài đặt đầu tiên, hãy cuộn file xuống và tìm phần INSTALLED_APPS . Ở đây, đến cuối danh sách các module hiện có, ta sẽ thêm tên của một số module khác mà ta đã cài đặt, bao gồm cả chính module Django CMS.

Như đã nêu trong tài liệu Django CMS:

Thêm các ứng dụng sau vào INSTALLED_APPS của bạn. Điều này bao gồm bản thân django CMS cũng như các phụ thuộc của nó và các ứng dụng / thư viện được đề xuất cao khác:

'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 

Xin lưu ý: Trước khi tiếp tục, hãy đảm bảo bỏ ghi chú django.contrib.admin khỏi danh sách. Mô-đun đó là cần thiết cho quy trình cài đặt .

Tiếp theo, hãy tìm MIDDLEWARE_CLASSES và thêm phần sau vào cuối danh sách:

'cms.middleware.page.CurrentPageMiddleware', 'cms.middleware.user.CurrentUserMiddleware', 'cms.middleware.toolbar.ToolbarMiddleware', 'cms.middleware.language.LanguageCookieMiddleware', 

Sau đó MIDDLEWARE_CLASSES của bạn sẽ trông giống như:

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

Như đã nêu trong tài liệu Django CMS, ta cần thêm một phần khối mã cài đặt còn thiếu vào file . Nó không tồn tại trong settings.py . Copy paste khối vào một vị trí miễn phí trong file :

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

Bây giờ, hãy tìm và sửa đổi các STATIC_ROOTMEDIA_ROOT tương tự như sau:

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

Tiếp tục sửa đổi chỉ thị TEMPLATE_DIRS thành:

TEMPLATE_DIRS = (     os.path.join(PROJECT_PATH, "templates"), ) 

Django CMS yêu cầu định nghĩa của ít nhất một mẫu cần được đặt trong CMS_TEMPLATES . Thêm khối mã sau vào file , sửa đổi nó nếu cần để phù hợp với nhu cầu của bạn:

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

Ta cũng cần cài đặt các ngôn ngữ dịch. Thêm khối mã sau:

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

Cuối cùng, hãy xác định một công cụ database . Bạn có thể sửa đổi cài đặt DATABASES để làm việc với PostgreSQL như được hiển thị hoặc sử dụng cách sau để tạm thời cài đặt database SQLite:

DATABASES = {     'default': {         'ENGINE': 'django.db.backends.sqlite3',         'NAME': os.path.join(PROJECT_PATH, 'database.sqlite'),     } } 

Ta đã hoàn thành với settings.py . Ta có thể lưu và đóng nó. (Nhấn CTRL + X và gõ Y để lưu và đóng).

Ta cần xác định các tuyến đường cho dự án của bạn .

Ta sẽ thực hiện việc này bằng cách chỉnh sửa file urls.py :

django_cms$ nano dcms/urls.py 

Thay thế tài liệu bằng đoạn mã sau:

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 

Xin lưu ý điều kiện cuối cùng được tạo trong đoạn mã trên hơi khác với cài đặt giới thiệu Django CMS, theo đó urlpatterns = patterns( được thay thế bằng urlpatterns += patterns( để khắc phục sự cố overrides urlpatterns đã đặt ở trên).

nhấn CTRL + X và nhập Y để lưu và đóng.

Ta sẽ tiếp tục chuẩn bị các mẫu.

Tạo folder mẫu :

django_cms$ mkdir templates 

Tạo một mẫu cơ sở mẫu để mở rộng những người khác đến:

django_cms$ nano templates/base.html 

Và điền vào nó bằng đoạn mã dưới đây:

{% 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> 

Hãy lưu và đóng và tiếp tục tạo mẫu đầu tiên của ta : template_1.html dựa trên base.html .

django_cms$ nano templates/template_1.html 

Điền vào câu hỏi này bằng đoạn mã ngắn sau:

{% extends "base.html" %} {% load cms_tags %}  {% block base_content %}   {% placeholder template_1_content %} {% endblock %} 

Hãy lưu và đóng cái này.

Thực hiện các lệnh sau để đồng bộ hóa database theo cài đặt của ta :

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

Để hoàn thành mọi thứ, ta nên kiểm tra xem ta đã cài đặt tất cả chính xác hay chưa bằng cách sử dụng kiểm tra cms :

django_cms$ python manage.py cms check 

Nếu bạn thấy “Cài đặt ổn”, điều đó nghĩa là mọi thứ đều ổn và ta có thể thử nó trên server thử nghiệm trước khi tiếp tục xây dựng trên dự án Django CMS của ta .

Hãy chạy lại server :

django_cms$ python manage.py runserver 0.0.0.0:8000 

Bạn cần đăng nhập với user bạn đã tạo trong quá trình đồng bộ hóa database ; bạn có thể tiếp tục tùy chỉnh CMS của bạn từ đó.

Để có thêm hướng dẫn, hướng dẫn và tài liệu, bạn có thể truy cập http://docs.django-cms.org/en/2.4.2/ . Để được hỗ trợ thêm về Django CMS, bạn có thể truy cập trang hỗ trợ tại https://www.django-cms.org/en/support/ .

<div class = “author”> Gửi bởi: <a href=osystemhttps://twitter.com/ostezerosystem> OS Tezer </div>


Tags:

Các tin liên quan

Cách cài đặt control panel Ajenti trên Ubuntu 13.04
2013-11-12
Cách cài đặt Dropplets trên Ubuntu 13.04 NGINX VPS
2013-10-25
Cách sử dụng HAProxy để thiết lập cân bằng tải HTTP trên VPS Ubuntu
2013-09-26
Cách tạo Omega 4 Drupal Subtheme trên Ubuntu VPS
2013-09-26
Cách sử dụng tính năng trùng lặp với GPG để tự động hóa an toàn các bản backup trên Ubuntu
2013-09-19
Cách cấu hình một cụm đa node với Cassandra trên VPS Ubuntu
2013-09-11
Cách theo dõi log xác thực hệ thống trên Ubuntu
2013-09-05
Cách bắt đầu với Jekyll trên VPS Ubuntu
2013-08-28
Cách sử dụng Dig, Whois và Ping trên Ubuntu VPS để truy vấn dữ liệu DNS
2013-08-23
Cách thiết lập Sass trên VPS của bạn đang chạy trên Ubuntu
2013-08-14