Django auf Bluehost

Dez. 28, 2011·
Julio Batista Silva
Julio Batista Silva
· 2 Min Lesezeit

Dieses Jahr habe ich die Domain juliobs.com und ein Hosting bei bluehost.com gekauft. Bisher liegt dort nur eine Kopie meiner alten, „from scratch“ in PHP gebauten Seite und dieser Blog. Endlich sind Ferien – Zeit, alles neu zu machen.

Ich plane eine professionellere, wartbare Website – gute Gründe für ein CMS oder Framework. Ich habe schon mit Joomla gearbeitet, möchte jetzt aber etwas „Pythonisches“…

Genau: Django! Ich wollte mich schon länger damit beschäftigen und verknüpfe das mit meinem Python‑Lernen.

Ein Problem: Bluehost unterstützt Django offiziell nicht; es gibt keinen simplescripts‑Installer und auf dem Server ist Python 2.4, empfohlen ist mindestens 2.5.

Hier zeige ich Schritt für Schritt, wie man Django dennoch auf Bluehost installiert.

Python 2.7 installieren

  1. Support kontaktieren und SSH‑Zugang freischalten lassen.

  2. Per SSH einloggen und Python 2.7.3 herunterladen:

    ssh juliobs.com
    wget http://python.org/ftp/python/2.7.3/Python-2.7.3.tgz
    tar xvfz Python-2.7.3.tgz
    
  3. Bauen und mit Wide‑Unicode installieren:

    cd Python-2.7.3
    ./configure --prefix="$HOME" --enable-unicode=ucs4
    make
    make install
    

    Test:

    ~/bin/python
    
  4. ~/.bashrc anpassen (Reihenfolge wichtig):

    export PATH=$HOME/bin:$PATH
    
  5. .bashrc laden und prüfen, dass python die neue Version ist:

    source .bashrc
    python
    
  6. Installationsdateien entfernen:

    rm -r Python-2.7.3.tgz Python-2.7.3/
    

Django installieren

  1. Es gibt verschiedene Wege. Versionskontrolle ist bequem (spätere Updates via git pull/svn update). Der master ist jedoch Teststand – für produktive Sites nicht empfohlen.

    Empfehlung: git (Django‑Entwicklung ist auf GitHub umgezogen). Alternativen: svn und mercurial (auf Bluehost nicht vorinstalliert).

  2. setuptools aktualisieren und pip installieren:

    wget http://pypi.python.org/packages/2.7/s/setuptools/setuptools-0.6c11-py2.7.egg
    sh setuptools-0.6c11-py2.7.egg
    rm setuptools-0.6c11-py2.7.egg
    easy_install pip
    
  3. Django‑Modul installieren – am einfachsten via pip vom GitHub‑Repo (spart PATH‑Anpassungen):

    pip install git+https://github.com/django/django.git
    

    Alternativen:

    • pip install -e ~/django/ (später git pull)
    • .pth in site‑packages
    • setup.py install --user
  4. ~/.bashrc erneut anpassen:

    export PATH=$HOME/bin:$HOME/.local/bin:$PATH
    
  5. Import‑Test:

    python -c 'import django, sys; print(django.VERSION); print(django.get_version())'
    
  6. Für FastCGI Flup installieren:

    pip install flup
    

Projekt anlegen

  • Projektordner außerhalb von ~/public_html erstellen und Projekt erzeugen:

    mkdir django_projects; cd django_projects
    django-admin.py startproject juliobs
    
  • settings.py DB‑Konfiguration anpassen. Für Tests geht sqlite3, empfohlen ist PostgreSQL (pip install psycopg2).

  • Tabellen anlegen: python manage.py syncdb

  • ~/public_html/django.fcgi anlegen und ausführbar machen; Beispiel im Originalpost beibehalten.

  • .htaccess konfigurieren (je nach Deployment‑Pfad, Beispiele im Original enthalten).

Weitere Django‑Einrichtung: The Django Book.

Django + Apache + mod_wsgi (lokal)

Kurzfassung der im Original beschriebenen Schritte:

  1. Django via pip aus git installieren
  2. mod_wsgi installieren
  3. wsgi.py Pfade setzen und DJANGO_SETTINGS_MODULE exportieren
  4. Apache httpd.conf anpassen (WSGIScriptAlias, WSGIPythonPath, Directory/Files, Alias media)
  5. Test unter http://localhost/django

Versionskontrolle/Deployment

Repo (GitHub) nutzen oder als Alternative rsync verwenden (Beispiel im Original).

Hinweise/Probleme: Locale für createsuperuser setzen; auf Arch mod_wsgi2 für Python 2 nutzen.


Julio Batista Silva
Autoren
Senior Cloud-Entwickler
comments powered by Disqus