Pyramid python web framework auf Uberspace installieren

Pyramid ist ein sehr nettes open source python web Framework, dass sich durch Minimalistig und Verlässlichkeit auszeichnet. Folgend möchte ich euch zeigen wie man Pyramid auf dem Hoster Uberspace installiert und einrichtet.

Installation

cd ~
mkdir -p ~/bin ~/lib/python2.7

Bevor zusätzliche python Module installiert werden können, müssen erst noch zwei zusätzliche Verzeichnisse erstellt werden, falls diese nicht bereits existieren.

easy_install-2.7 virtualenv
virtualenv --no-site-packages env

Nun können wir das virtualenv Paket installieren und uns für Pyramid eine isolierte Umgebung erstellen. Der –no-site-packages Parameter ist zwar mittlerweile das Standardverhalten aber man weiß ja nie.

cd env
bin/easy_install pyramid

Als nächstes wechseln wir in unsere neue python Umgebung und installieren Pyramid selbst.

bin/easy_install flup

Zum Schluss wird noch flup installiert, da es später für das fcgi Skript gebraucht wird.

Pyramid Projekt erstellen

Es gibt mehrere Wege um ein Pyramid Projekt zu erstellen. Einer wäre es das ganze manuell von Hand zu schreiben. In den meisten Fällen ist es aber sinnvoller sich von Pyramid ein Template Projekt erstellen zu lassen. Wie das geht werde ich euch als nächstes zeigen.

cd ~/env
bin/pcreate -s starter MyProject

Innerhalb unserer selbst erstellten python Umgebung rufen wir den pcreate Befehl auf um ein Projekt namens MyProject mit dem “starter” Template zu erstellen.

cd MyProject
../bin/python setup.py develop
../bin/python setup.py test -q

Nun installieren wir unser Projekt im ‘development mode’. Dazu wechseln wir in das Projektverzeichnis und führen setup.py develop aus. Zum Schluss kann mit setup.py test -q noch ein unit test durchgeführt werden um zu prüfen ob alles seine Ordnung hat.
Sollte kein Fehler aufgetreten sein ist das Projekt jetzt bereit für die Außenwelt erreichbar gemacht zu werden.

Projekt erreichbar machen

Mittlerweile haben wir Pyramid erfolgreich installiert und ein Template Projekt erstellt. Aber leider ist es noch nicht über das Web erreichbar. Dafür schreiben wir als nächstes einen kleinen Wrapper der unsere python Anwendung startet.

cd ~/fcgi-bin
vim MyProject
 
##############################
#!/home/USERNAME/env/bin/python
import sys
 
from paste.deploy import loadapp
from flup.server.fcgi_fork import WSGIServer
 
myapp = '/home/USERNAME/env/MyProject'
 
sys.path.insert(0, myapp)
app = loadapp('config:' + myapp + '/production.ini')
 
if __name__ == '__main__':
        WSGIServer(app).run()
#############################
 
chmod 755 MyProject

Ich werde an dieser Stelle nicht im Detail erklären was das fcgi Skript eigentlich macht. Das kann uns aber auch egal sein, da es ja bloß unser Pyramid Projekt starten soll.
Zu beachtet ist aber, dass das Skript in ~/fcgi-bin liegt und optimalerweise den selben Namen wie euer Projekt hat damit es im Nachhinein leichter zu zuordnen ist.
Im Skript sollte USERNAME logischerweise mit dem eigenen Uberspace username ersetzt und die Pfade gegebenenfalls angepasst werden, solltet ihr andere benutzt haben als ich. Nachdem ihr das Skript erstellt habt bekommt es noch entsprechende Zugriffsrechte damit man es auch problemlos ausführen kann.
Damit ist euer Pyramid Projekt auch schon im Web unter http://USERNAME.SERVER.uberspace.de/fcgi-bin/MyProject.

Zum Schluss kann man das Projekt noch mit einer Suddomain verbinden, damit man nicht jedes mal fcgi-bin in der URL stehen hat.

mkdir /var/www/virtual/$USER/subdomain.domain.tld && cd $_
vim .htaccess
 
#############################
RewriteEngine on
RewriteRule ^(.*)$ /fcgi-bin/MyProject/$1 [QSA,L]
#############################

Mit diesen zwei einfachen Schritten werden alle requests auf subdomain.domain.tld auf unser fcgi Skript umgeleitet, welches dann wiederum unser Pyramid Projekt aufruft.

Schlusswort

Wenn alles glatt gelaufen ist solltet ihr nun Pyramid mit einem funktionierenden Template Projekt haben, dass dazu auch noch leicht aufzurufen ist.
Bei jeglichen Problemen könnt ihr euch gerne jederzeit in den Kommentaren oder per Twitter an mich wenden. Feedback ist wie immer gerne gesehen.
Ich hoffe dieses kleinen Tutorial konnte euch helfen. Viel Spaß mit Pyramid und bis zum nächsten mal.

flattr this!

16 Comments

  • Samstag, der 25. August 2012 - 15:06 | Permalink

    Funktioniert einwandfrei, aber hast du ’ne Ahnung wie man ein Logfile führen lassen kann?

  • Pingback: OnlineCashAdvanceLoans

  • Pingback: telescopic ladders

  • Pingback: telescopic loft ladder

  • Pingback: 1300 numbers cost

  • Pingback: contenedores isotermicos

  • Pingback: vpaydayloans.co.uk

  • Pingback: nike shoes

  • Pingback: louis vuitton suitcase

  • Pingback: sac louis vuitton

  • Pingback: high pr dofollow forums 2011

  • Pingback: pénz keresés neten

  • Pingback: movies online buy

  • Pingback: mp3 download

  • You must log in to post a comment.