Απορία WSGI

galas at tee.gr galas at tee.gr
Mon Sep 27 23:17:07 EEST 2010


> On 27/09/2010 18:13, Antonis Christofides wrote:
>> WSGIScriptAlias /hello /path/to/hello.wsgi
>>
>> Με το παραπάνω configuration, όταν επισκέπτομαι το
>> http://myserver.com/hello/world, η εφαρμογή μου Django (που τρέχει από
>> το hello.wsgi) καταλήγει να προσπαθεί να resolve το URL "world", ενώ εγώ
>> θέλω να παίζει με το URL "hello/world". Πώς μπορεί να γίνει αυτό;
>> Εννοείται ότι δεν θέλω να του πω
>>
>> WSGIScriptAlias / /path/to/hello.wsgi
>>
>> γιατί αυτό δεν παίζει στη δικιά μου περίπτωση.
>>
>
> 1) Ή θα παίξεις με το WSGIScriptAlias (που δεν γίνεται όμως, σύμφωνα με
> όσα έγραψες) ή
> 2) θα ρυθμίσεις τα regular expressions στο urls.py ώστε να ξεκινάνε από
> το ^world αντί για ^hello/world.
>
> Αλλιώς θα πρέπει να καταφύγεις σε αλχημείες με mod_rewrite.
>

το πρόβλημα δεν είναι νομίζω στην ντιρεκτίβα WSGIScriptAlias αλλά μάλλον
στο πώς έχει οριστεί το environment. Τι εννοώ και χρησιμοποιώντας πάλι την
αναλογία από το Trac:

έχω WSGIScriptAlias /trac /usr/local/trac/trac.wsgi

όπου το /usr/local/trac είναι το parent directory για διάφορα trac projects.
πχ. /usr/local/trac/test

Δηλώνοντας λοιπόν το:
SetEnv trac.env_parent_dir /usr/local/trac

στο <Directory> section του apache ή/και στο trac.wsgi το ίδιο ως:
os.environ['TRAC_ENV_PARENT_DIR'] = '/usr/local/trac'

το test εμφανίζεται κανονικά ως:
http://my.server/trac/test

αν θες να βάλεις για το κάθε directory ξεχωριστά τότε πρέπει να μπει ως:

SetEnv trac.env_path /usr/local/trac/test

και:
os.environ['TRAC_ENV_PATH'] = '/usr/local/trac/test'
αντίστοιχα στο trac.wsgi. Γενικά βρίσκω πολύ βολικό το να δουλεύω με
parent_dir.

Νομίζω ότι το ίδιο πρέπει να ισχύει και για το django project αν βάλεις
όπου trac.wsgi το hello.wsgi!

hope it helps


> --
> linux-greek-users mailing list -- http://lists.hellug.gr




More information about the Linux-greek-users mailing list