In diesem Blogbeitrag zeigen wir Ihnen, wie Sie das Django-CMS auf einem Ubuntu-VPS mit MariaDB, Nginx und Gunicorn installieren.
Django CMS ist ein Open-Source-Content-Management-System, das auf dem Web-Framework Django basiert. Einige der Hauptfunktionen sind:Plugin-basiert, hübsche URLs, Berechtigungsverwaltung, Apps, Frontend-Bearbeitung, Analytics, Blog usw.
Der folgende Befehl installiert alle erforderlichen Pakete
apt-get updateapt-get install -y python-software-properties python python-dev
Installieren Sie die neueste Version von Nginx
add-apt-repository ppa:nginx/stableapt-get update &&sudo apt-get install nginx
Installieren Sie MariaDB und erstellen Sie eine Datenbank.
apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xcbcb082a1bb943dbadd-apt-repository 'deb http://ftp.osuosl.org/pub/mariadb/repo/5.5 /ubuntu präzise main'apt-get updateecho -e "Paket:*\nPin:Ursprung ftp.osuosl.org\nPin-Priorität:1000" | tee /etc/apt/preferences.d/mariadbapt-get install mariadb-server libmariadbclient-dev
mysql -uroot -pMariaDB [(keine)]> DATENBANK ERSTELLEN dcms;MariaDB [(keine)]> GEWÄHREN SIE ALLE PRIVILEGIEN AUF dcms.* AN 'dcmsuser'@'localhost' IDENTIFIED BY 'pa33W0rd';MariaDB [(keine )]> FLUSH PRIVILEGES;MariaDB [(keine)]> \q
Pip installieren
curl https://raw.github.com/pypa/pip/master/contrib/get-pip.py | python -
Erstellen Sie eine virtuelle Umgebung mit Pip
sudo pip install --upgrade virtualenvmkdir -p ~/.virtualenvs/djangocmsvirtualenv ~/.virtualenvs/djangocmssource ~/.virtualenvs/djangocms/bin/activate
Erstellen Sie eine requirements.txt-Datei mit folgendem Inhalt
# Bare minimumdjango-cms==2.4.1#Diese Abhängigkeiten werden von django-cms eingebracht, aber wenn Sie ihre Version sperren möchten, geben Sie sie anDjango==1.5.1django-classy-tags==0.4South ==0.8.1html5lib==1.0b1django-mptt==0.5.2django-sekizai==0.7six==1.3.0mysql-python==1.2.5#Optionale, empfohlene PaketePillow==2.0.0django-filer==0.9. 4cmsplugin-filer==0.9.5django-reversion==1.7
Django-CMS installieren
pip install --upgrade --download-cache=~/.pip-cache -r requirements.txt
Erstellen Sie Ihr Django-CMS-Projekt
mkdir ~/projectscd ~/projectsdjango-admin.py startproject mynewproject
Öffnen Sie die Datei ~/projects/mynewproject/mynewproject/settings.py und fügen Sie am Anfang der Datei Folgendes hinzu:
# -*- Codierung:utf-8 -*-import osgettext =lambda s:sPROJECT_PATH =os.path.split(os.path.abspath(os.path.dirname(__file__)))[0]Fügen Sie Ihre Datenbankdetails hinzu:
DATABASES ={ 'default':{ 'ENGINE':'django.db.backends.mysql', 'NAME':'dcms', 'USER':'dcms', 'PASSWORD':'pa33W0rd', ' HOST':'', 'PORT':'', }}Fügen Sie die folgenden Apps zu INSTALLED_APPS hinzu.
'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')Fügen Sie die folgenden Zeilen zur MIDDLEWARE_CLASSES-Liste hinzu.
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', # Entkommentieren Sie die nächste Zeile für einfachen Clickjacking-Schutz:# 'django.middleware.clickjacking.XFrameOptionsMiddleware', 'cms.middleware.page.CurrentPageMiddleware', 'cms.middleware.user. CurrentUserMiddleware', 'cms.middleware.toolbar.ToolbarMiddleware', 'cms.middleware.language.LanguageCookieMiddleware',)Fügen Sie am Ende der Datei Folgendes hinzu:
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',)Ändern Sie die Direktiven STATIC_ROOT und MEDIA_ROOT in:
STATIC_ROOT =os.path.join(PROJECT_PATH, "static")STATIC_URL ="/static/"MEDIA_ROOT =os.path.join(PROJECT_PATH, "media")MEDIA_URL ="/media/"Ändern Sie die Direktive TEMPLATE_DIRS:
TEMPLATE_DIRS =( # Die Dokumentation sagt, es sollte ein absoluter Pfad sein:PROJECT_PATH ist genau eins. # Das Leben ist wunderbar! os.path.join(PROJECT_PATH, "templates"),)Fügen Sie CMS_TEMPLATES mindestens eine Vorlage hinzu
CMS_TEMPLATES =( ('template_1.html', 'Template One'), ('template_2.html', 'Template Two'),)Auf Englisch beschränken
LANGUAGES =[ ('en', 'English'),]Speichern Sie abschließend die Datei settings.py.
Routen für unser Projekt definieren
Öffnen Sie die Datei mynewproject/mynewproject/urls.py und ersetzen Sie den Inhalt durch den folgenden
aus django.conf.urls.defaults import *aus django.conf.urls.i18n import i18n_patternsaus django.contrib import adminaus django.conf import settingsadmin.autodiscover()urlpatterns =pattern('', url(r'^admin /', include(admin.site.urls)), url(r'^', include('cms.urls')),)if settings.DEBUG:urlpatterns =pattern('', url(r'^media/ (?P.*)$', 'django.views.static.serve', {'document_root':settings.MEDIA_ROOT, 'show_indexes':True}), url(r'', include('django. contrib.staticfiles.urls')),) + URL-Muster Vorlagen erstellen
Erstellen Sie ein neues Verzeichnis templates
mkdir ~/projects/mynewproject/templatesÖffnen Sie Ihren bevorzugten Editor und erstellen Sie die folgenden Dateien:
base.html
{% cms_tags laden sekizai_tags %} {% render_block "css" %} {% cms_toolbar %} {% placeholder base_content %} {% block base_content %}{% endblock %} {% render_block "js" %}template_1.html
{% erweitert "base.html" %}{% cms_tags laden %}{% base_content blockieren %} {% placeholder template_1_content %}{% endblock %}template_2.html
{% erweitert "base.html" %}{% cms_tags laden %}{% base_content blockieren %} {% placeholder template_2_content %}{% endblock %}Initialisieren Sie die Datenbank und erstellen Sie einen neuen Superuser
python manage.py syncdb --allpython manage.pymigrate --fakeÜberprüfen Sie, ob alles richtig eingerichtet ist
python manage.py CMS-PrüfungWenn Sie „Installation okay“ sehen, bedeutet dies, dass alles richtig eingerichtet ist.
Statische Dateien sammeln
cd ~/projects/mynewproject./manage.py collectstaticGunicorn installieren und konfigurieren
pip install gunicornErstellen Sie eine neue Konfigurationsdatei (~/.virtualenvs/djangocms/gunicorn_config.py) wie folgt
command ='~/.virtualenvs/djangocms/bin/gunicorn'pythonpath ='~/projects/mynewproject'bind ='127.0.0.1:8011'workers =3user =niemandStarten Sie das Gunicorn mit dem folgenden Befehl:
cd ~/projects/mynewproject &&gunicorn -c ~/.virtualenvs/djangocms/gunicorn_config.py mynewproject.wsgiNginx konfigurieren
Erstellen Sie einen neuen virtuellen Nginx-Host
vim /etc/nginx/sites-available/ihre_domain.comServer { listen 80; server_name your_domain.com; Standort /statisch/ { Alias //projects/mynewproject/static/; } Standort / { Proxy_pass_header-Server; Proxy_set_header Host $http_host; Proxy-Weiterleitung aus; Proxy_Set_Header X-Real-IP $remote_addr; proxy_set_header X-Schema $schema; 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 Das ist es. Öffnen Sie nun Ihren Browser und navigieren Sie zu Ihrer Domain.
Weitere Informationen zum Django-CMS finden Sie unter:http://docs.django-cms.org/
Natürlich müssen Sie nichts davon tun, wenn Sie einen unserer Linux-VPS-Hosting-Dienste nutzen. In diesem Fall können Sie einfach unsere erfahrenen Linux-Administratoren bitten, dies für Sie zu installieren. Sie sind rund um die Uhr erreichbar und kümmern sich umgehend um Ihr Anliegen.
PS . Wenn Ihnen dieser Beitrag gefallen hat, teilen Sie ihn bitte mit Ihren Freunden in den sozialen Netzwerken über die Schaltflächen auf der linken Seite oder hinterlassen Sie einfach unten eine Antwort. Danke.