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.

Über mich
10 Comments
Funktioniert einwandfrei, aber hast du ’ne Ahnung wie man ein Logfile führen lassen kann?
Eventuell hilft dir diese Seite aus den Pyramid Docs weiter
http://pyramid.readthedocs.org/en/1.3-branch/narr/logging.html
Soweit war ich auch schon. Lokal funktioniert’s mit dem Logfile auch, nur nicht auf meinem Uberspace. Ich vermute, dass es am Apachen liegt, aber sicher bin ich mir nicht.
Pingback: OnlineCashAdvanceLoans
Pingback: telescopic ladders
Pingback: telescopic loft ladder
Pingback: 1300 numbers cost
Pingback: contenedores isotermicos
Pingback: vpaydayloans.co.uk
Pingback: nike shoes
You must log in to post a comment.