Wagtail installieren: Unterschied zwischen den Versionen

Aus Hostsharing Wiki
Zur Navigation springen Zur Suche springen
K
K (Kategorie CMS ergänzt)
 
(4 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
 +
== Allgemein ==
 +
=== Beschreibung ===
 +
[https://wagtail.io/ Wagtail] ist eine freie Content Management Software (CMS).
  
{{Textkasten|gelb|bitte nicht als Paketuser|Dieser Artikel beschreibt kurz und knapp die Installation eine Python-basieren CMS auf der Hostsharing-Plattform. Allerdings sind unsere Best-practices nicht berücksichtigt.  
+
Wagtail ist in Python geschrieben und läuft auf der Django Plattform.
  
Bitte nicht die Paket-Domain verwenden. Sie wird abgekündigt und künftig für interne Zwecke genutzt.
+
Wagtail steht unter der BSD Lizenz.
  
Bitte keine Anwendungen als Paket-User betreiben: Für jede Anwendung erst einen eigenen User anlegen und für den User eine Domain aufschalten.}}
+
== Installation ==
  
Am Beispiel der Domain xyz00.hostsharing.net des Users xyz00.
+
=== Design ===
Die Installation in diesem Beispiel wird mit dem Paketadmin xyz00 durchgeführt
 
  
xyz00 ist durch das tatsächliche Paketkürzel zu ersetzen.
+
Diese Installationsanleitung beschreibt, wie Wagtail in einer eigens dafür [[Domainverwaltung#Lokale_Subdomains_durch_Aufschalten.3B_Delegieren|aufgeschalteten Subdomain]] über SSL betrieben wird.
 +
 
 +
Der Vorteil einer Installation in einer aufgeschalteten Subdomain ist, daß die Installation leicht von anderen Domaininhalten, Passenger-Konfigurationen, oder sogar von anderen Domain-Administratoren, isoliert werden kann.
 +
 
 +
=== Vorbereitung in HSAdmin ===
 +
 
 +
Mit Hilfe von HSAdmin werden angelegt:
 +
 
 +
* ein User mit der Shell '/bin/bash', im Beispiel "xyz00-wagtail"
 +
* beim User wird eine Domain aufgeschaltet, mein Beispiel ist: "wagtail.example.org"
 +
* ein PostgreSQL-User und eine PostgreSQL-Datenbank, beide heißen hier: "xyz00_wagtail"
 +
 
 +
=== Installation von Wagtail ===
 +
 
 +
Als Domain-Admin <tt>xyz00-wagtail</tt> folgende Schritte ausführen:
  
 
Installation einer eigenen Pythonumgebung und Installation von wagtail:   
 
Installation einer eigenen Pythonumgebung und Installation von wagtail:   
<pre>
+
<pre><nowiki>
mkdir wagtail
+
xyz00-wagtail$ mkdir ~/wagtail
cd wagtail/
+
xyz00-wagtail$ cd ~/wagtail
virtualenv -p python3 virtualenv
+
xyz00-wagtail$ python3 -m venv virtualenv
virtualenv/bin/pip install wagtail
+
xyz00-wagtail$ source virtualenv/bin/activate
</pre>
+
(virtualenv) xyz00-wagtail$ pip install wagtail
 +
(virtualenv) xyz00-wagtail$ pip install psycopg2-binary
 +
</nowiki></pre>
  
 
Anlegen des Projekts "mysite":
 
Anlegen des Projekts "mysite":
<pre>
+
<pre><nowiki>
virtualenv/bin/wagtail start mysite
+
(virtualenv) xyz00-wagtail$ wagtail start mysite
</pre>
+
</nowiki></pre>
 +
 
 +
=== Einrichtung der Datenbank ===
  
 
Zusätzlich sind individuelle Settings in der Anwendungskonfiguration
 
Zusätzlich sind individuelle Settings in der Anwendungskonfiguration
 
(z.B. production.py) zu hinterlegen, z.B. die zu verwendende Datenbank.
 
(z.B. production.py) zu hinterlegen, z.B. die zu verwendende Datenbank.
 +
 +
Beispiel Inhalt von <code>~/wagtail/mysite/mysite/settings/production.py</code>:
 +
 +
<pre><nowiki>
 +
from .base import *
 +
 +
DEBUG = False
 +
 +
try:
 +
    from .local import *
 +
except ImportError:
 +
    pass
 +
 +
# SECURITY WARNING: keep the secret key used in production secret!
 +
SECRET_KEY = 'Key generated with get_random_secret_key'
 +
 +
ALLOWED_HOSTS = ['wagtail.example.de']
 +
 +
DATABASES = {
 +
    'default': {
 +
        'ENGINE': 'django.db.backends.postgresql',
 +
        'NAME': 'xyz00_wagtail',
 +
        'USER': 'xyz00_wagtail',
 +
        'PASSWORD': 'topsecret',
 +
        'HOST': '127.0.0.1',
 +
        'PORT': '5432',
 +
    }
 +
}
 +
</nowiki></pre>
  
 
Aufruf von migrate und collectstatic, um die Datenbank zu initialisieren und die statischen Dateien bereitzustellen:
 
Aufruf von migrate und collectstatic, um die Datenbank zu initialisieren und die statischen Dateien bereitzustellen:
 
<pre>
 
<pre>
cd mysite
+
xyz00-wagtail$ cd ~/wagtail/mysite
../virtualenv/bin/python3 ./manage.py migrate
+
xyz00-wagtail$ source virtualenv/bin/activate
../virtualenv/bin/python3 ./manage.py collectstatic
+
(virtualenv) xyz00-wagtail$ export DJANGO_SETTINGS_MODULE=mysite.settings.production
</pre>
+
(virtualenv) xyz00-wagtail$ python3 ./manage.py migrate
 +
(virtualenv) xyz00-wagtail$ python3 ./manage.py collectstatic
 +
(virtualenv) xyz00-wagtail$ python3 ./manage.py createsuperuser
 +
Username (leave blank to use 'tim01-wagtailtest'): admin
 +
Email address: admin@example.org
 +
Password:
 +
Password (again):
 +
Superuser created successfully.
 +
</nowiki></pre>
 +
 
 +
=== Einrichten der Webseite ===
  
 
Anlegen eines symbolischen Links zur Auslieferung der statischen Inhalte:
 
Anlegen eines symbolischen Links zur Auslieferung der statischen Inhalte:
<pre>
 
cd ~/doms/xyz00.hostsharing.net/htdocs-ssl
 
ln -s /home/pacs/xyz00/wagtail/mysite/static static
 
</pre>
 
  
In dem Ordner /home/doms/xyz00.hostsharing.net/ eine .htaccess mit folgendem Inhalt anlegen:
+
<pre><nowiki>
<pre>
+
xyz00-wagtail$ cd ~/doms/wagtail.example.org/htdocs-ssl
PassengerPython /home/pacs/xyz00/wagtail/virtualenv/bin/python3
+
xyz00-wagtail$ rm .htaccess
 +
xyz00-wagtail$ ln -s /home/pacs/xyz00/users/wagtail/wagtail/mysite/static static
 +
</nowiki></pre>
 +
 
 +
Es muss die Datei <code>~/doms/wagtail.example.org/.htaccess</code> mit diesem Inhalt angelegt werden:
 +
 
 +
<pre><nowiki>
 +
PassengerPython /home/pacs/xyz00/users/wagtail/wagtail/virtualenv/bin/python
 
SetEnv DJANGO_SETTINGS_MODULE mysite.settings.production
 
SetEnv DJANGO_SETTINGS_MODULE mysite.settings.production
SetEnv PYTHONPATH /home/pacs/xyz00/wagtail/mysite/
+
SetEnv PYTHONPATH /home/pacs/xyz00/users/wagtail/wagtail/mysite/
</pre>
+
</nowiki></pre>
 +
 
 +
Dann noch die Datei <code>~/doms/wagtail.example.org/app-ssl/passenger_wsgi.py</code> mit diesem Inhalt anlegen:
  
Unter dem Ordner app-ssl die Datei passenger_wsgi.py anlegen und mit folgendem Inhalt
+
<pre><nowiki>
füllen, um Passenger mit der Anwendung zu verdrahten:
 
<pre>
 
 
from mysite.wsgi import application
 
from mysite.wsgi import application
</pre>
+
</nowiki></pre>
 +
 
 +
Die Seite sollte nun auf https://wagtail.example.org laufen, und der Login sollte mit dem oben eingerichteten superuser admin funktionieren!
 +
 
 +
=== Neustart der Anwendung ===
  
Unter dem Ordner ein Verzeichnis "tmp" anlegen und eine leere Datei "restart.txt" anlgen.
+
Unter dem Domain Ordner ein Verzeichnis "app-ssl/tmp" anlegen und eine leere Datei "restart.txt" anlegen.
Ein "touch" startet die Applikation neu:  
+
Ein "touch" startet die Anwendung neu:  
  
 
<pre>
 
<pre>
mkdir app-ssl/tmp
+
xyz00-wagtail$ cd ~/doms/wagtail.example.org/
touch app-ssl/tmp/restart.txt
+
xyz00-wagtail$ mkdir app-ssl/tmp
 +
xyz00-wagtail$ touch app-ssl/tmp/restart.txt
 
</pre>
 
</pre>
 
  
  
Zeile 67: Zeile 133:
 
[[Kategorie:Installationsanleitungen]]
 
[[Kategorie:Installationsanleitungen]]
 
[[Kategorie:Software]]
 
[[Kategorie:Software]]
 +
[[Kategorie:CMS]]
 +
[[Kategorie:Python]]
 +
[[Kategorie:Django]]
 +
[[Kategorie:Passenger]]

Aktuelle Version vom 29. April 2021, 06:28 Uhr

Allgemein

Beschreibung

Wagtail ist eine freie Content Management Software (CMS).

Wagtail ist in Python geschrieben und läuft auf der Django Plattform.

Wagtail steht unter der BSD Lizenz.

Installation

Design

Diese Installationsanleitung beschreibt, wie Wagtail in einer eigens dafür aufgeschalteten Subdomain über SSL betrieben wird.

Der Vorteil einer Installation in einer aufgeschalteten Subdomain ist, daß die Installation leicht von anderen Domaininhalten, Passenger-Konfigurationen, oder sogar von anderen Domain-Administratoren, isoliert werden kann.

Vorbereitung in HSAdmin

Mit Hilfe von HSAdmin werden angelegt:

  • ein User mit der Shell '/bin/bash', im Beispiel "xyz00-wagtail"
  • beim User wird eine Domain aufgeschaltet, mein Beispiel ist: "wagtail.example.org"
  • ein PostgreSQL-User und eine PostgreSQL-Datenbank, beide heißen hier: "xyz00_wagtail"

Installation von Wagtail

Als Domain-Admin xyz00-wagtail folgende Schritte ausführen:

Installation einer eigenen Pythonumgebung und Installation von wagtail:

xyz00-wagtail$ mkdir ~/wagtail
xyz00-wagtail$ cd ~/wagtail
xyz00-wagtail$ python3 -m venv virtualenv
xyz00-wagtail$ source virtualenv/bin/activate
(virtualenv) xyz00-wagtail$ pip install wagtail
(virtualenv) xyz00-wagtail$ pip install psycopg2-binary

Anlegen des Projekts "mysite":

(virtualenv) xyz00-wagtail$ wagtail start mysite

Einrichtung der Datenbank

Zusätzlich sind individuelle Settings in der Anwendungskonfiguration (z.B. production.py) zu hinterlegen, z.B. die zu verwendende Datenbank.

Beispiel Inhalt von ~/wagtail/mysite/mysite/settings/production.py:

from .base import *

DEBUG = False

try:
    from .local import *
except ImportError:
    pass

# SECURITY WARNING: keep the secret key used in production secret!
SECRET_KEY = 'Key generated with get_random_secret_key'

ALLOWED_HOSTS = ['wagtail.example.de']

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql',
        'NAME': 'xyz00_wagtail',
        'USER': 'xyz00_wagtail',
        'PASSWORD': 'topsecret',
        'HOST': '127.0.0.1',
        'PORT': '5432',
    }
}

Aufruf von migrate und collectstatic, um die Datenbank zu initialisieren und die statischen Dateien bereitzustellen:

xyz00-wagtail$ cd ~/wagtail/mysite
xyz00-wagtail$ source virtualenv/bin/activate
(virtualenv) xyz00-wagtail$ export DJANGO_SETTINGS_MODULE=mysite.settings.production
(virtualenv) xyz00-wagtail$ python3 ./manage.py migrate
(virtualenv) xyz00-wagtail$ python3 ./manage.py collectstatic
(virtualenv) xyz00-wagtail$ python3 ./manage.py createsuperuser
 Username (leave blank to use 'tim01-wagtailtest'): admin
 Email address: admin@example.org
 Password: 
 Password (again): 
 Superuser created successfully.
</nowiki>

Einrichten der Webseite

Anlegen eines symbolischen Links zur Auslieferung der statischen Inhalte:

xyz00-wagtail$ cd ~/doms/wagtail.example.org/htdocs-ssl
xyz00-wagtail$ rm .htaccess
xyz00-wagtail$ ln -s /home/pacs/xyz00/users/wagtail/wagtail/mysite/static static

Es muss die Datei ~/doms/wagtail.example.org/.htaccess mit diesem Inhalt angelegt werden:

PassengerPython /home/pacs/xyz00/users/wagtail/wagtail/virtualenv/bin/python
SetEnv DJANGO_SETTINGS_MODULE mysite.settings.production
SetEnv PYTHONPATH /home/pacs/xyz00/users/wagtail/wagtail/mysite/

Dann noch die Datei ~/doms/wagtail.example.org/app-ssl/passenger_wsgi.py mit diesem Inhalt anlegen:

from mysite.wsgi import application

Die Seite sollte nun auf https://wagtail.example.org laufen, und der Login sollte mit dem oben eingerichteten superuser admin funktionieren!

Neustart der Anwendung

Unter dem Domain Ordner ein Verzeichnis "app-ssl/tmp" anlegen und eine leere Datei "restart.txt" anlegen. Ein "touch" startet die Anwendung neu:

xyz00-wagtail$ cd ~/doms/wagtail.example.org/
xyz00-wagtail$ mkdir app-ssl/tmp
xyz00-wagtail$ touch app-ssl/tmp/restart.txt