Wagtail auf Shared Hosting deployen (wsgi / Passenger / Apache

23. November 2020 0 Von glanzel

Wagtail installieren

Um Django Produktiv zu betreiben sollte die wsgi Schnittstelle benutzt werden. Dies kann auf unterschiedlich weiße erfolgen:
Hier gehts zur Einrichtung für mod_wsgi (Apache)
und so gehts mit gunicorn

Im folgenden soll aber auf die Installation unter Passenger eingegangen werden.

lokale Installation und Konfiguration (optional)

Das installieren unter Ubuntu ist recht einfach und wird hier beschrieben:
https://www.phusionpassenger.com/library/install/apache/install/oss/bionic/

Danach muss der virtual host für Apache erstellt werden
/etc/apache2/available-sites/wtsite.conf:

PassengerPython /usr/bin/python3.7 

<VirtualHost *:777>
    ServerName localhost

    # Tell Apache and Passenger where your app's code directory is
    DocumentRoot /var/www/py/wtsite/
    PassengerAppRoot /var/www/py/wtsite/project

    # Tell Passenger that your app is a Python app
    PassengerAppType wsgi
    PassengerStartupFile passenger_wsgi.py

    # Relax Apache security settings
    <Directory /var/www/py/djangocms/wtsite>
      Allow from all
      Options -MultiViews
      # Uncomment this if you're on Apache ≥ 2.4:
      #Require all granted
    </Directory>
</VirtualHost>

und dann mit a2ensite wtsite.conf aktivieren.

Erstellen der wsgi Applikation

Nun muss noch die passenger_wsgi.py im appverzeichniss angelegt werden:

import sys, os
print("Python version") #just for debugging
print (sys.version) #nur für debugging
ApplicationDirectory = 'app'
ApplicationName = 'wt_site'
# wenn das ganze später bewegt werden soll ist es wichtig hier den Pfad zu dem python enviroment anzugeben
sys.path.append("/var/www/py/wtsite/env/lib/python3.7/site-packages")
os.chdir(os.path.join(os.getcwd(), ApplicationDirectory))
os.environ.setdefault('DJANGO_SETTINGS_MODULE', ApplicationName + '.settings') os.environ.setdefault('DJANGO_SETTINGS_MODULE', settingApplicationName + '.settings')
from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()

Die Applikation sollte nun unter localhost:777 aufrufbar sein.(optional)

Die Website sollte sich nun auch auf ein Shared Hosting verschieben lassen.

Im folgenden wird dann nochmal beispielhaft beschrieben wie die Installation auf einem shared hosting erfolgt