Posts by Zang


    So habe ich Django mit Phusion Passenger auf Webhosting 8000 zum laufen gebracht .

    Zuerst ein Ordner für das Projekt auf die Entwicklungsmachine anlegen.


    $  mkdir webapp


    $  cd webapp


    Dann ein Virtualenv erzeugen und die nötige Python-Abhängigkeiten mit pip installieren.


    $  python3 -m virtualenv venv


    $  source venv/bin/activate


    Für diese Demo, wird als Beispiel denn Django installiert


    (venv)$  pip install Django


    Nun kann das Django-Projekt gestartet werden


    (venv)$  django-admin startproject helloworld


    Die Passenger Datei wird mit folgeden Python-Anweisungen im Ordner httpdocs/webapp angelegt:


    Code
    1. import sys, os
    2. ApplicationDirectory = 'helloworld'
    3. ApplicationName = 'helloworld'
    4. os.chdir(os.path.join(os.getcwd(), ApplicationDirectory))
    5. os.environ.setdefault('DJANGO_SETTINGS_MODULE', ApplicationName + '.settings')
    6. from django.core.wsgi import get_wsgi_application
    7. application = get_wsgi_application()


    Auf die Entwicklungsmachine, haben wir nun die folgende Struktur


    webapp

    ├── venv

    ├── helloworld

    └── passenger_wsgi.py


    Nun wird per FTP der Ordner webapp/ aus Entwicklungsumgebung zu httpdocs/ auf dem Webserver kopiert.


    Auf dem Webserver, haben wir nun die folgende Struktur


    httpdocs

    └── webapp

    ├── venv

    ├── helloworld

    └── passenger_wsgi.py


    Die Python-Abhängigkeiten sind an diese Stellen noch nicht auf dem Serververfügbar, da die mit der Passenger-Datei im gleichen Ordner untergebracht werden mussen.


    Mit dem folgenden symbolischen Verweis wird alle installierten Abhängigkeiten im Ordner webapp/ verfügbar. Dafür, sich per ssh auf Server einlogen und im bash folgende command ausführen:


    § ln -sr httpdocs/webapp/venv/lib/python3.5/site-packages/* httpdocs/webapp && rm httpdocs/webapp/*.dist-info


    Nun können im WCP die Python-Eingenschaften angepasst werden und Python aktivieren.


    In diesen Beispiel, haben wir httpdocs/webapp als ApllicationRoot.


    Das DocumentRoot wird ebenfalls im Hosting-Einstellungen angepasst und zeigt hier auf httpdocs/webapp/helloworld.


    --


    Grüße