Definitely on the right track, that's exactly what I'm looking for ...
one error though in the Apache logs:

File does not exist: /usr/local/django/project/apache/django.wsgi/

(including the trailing slash) I've confirmed that the file does
definitely exist. It seems to be trying to stat the full file and
thinking that it is a directory. For example:
$ stat /usr/local/django/project/apache/django.wsgi/
stat: cannot stat `/usr/local/django/asusu/apache/django.wsgi/': Not a
directory

A stat without the trailing slash works as expected. Bug? Or do we
just need a different syntax in the RewriteRule around /$1 ?

Thanks for the help and your dedication to your community. Every other
post I've seen recently has had your name on it, thanks for supporting
all of us so much. :)


On Jan 5, 3:18 am, "Graham Dumpleton" <[email protected]>
wrote:
> I can probably provide an answer even though you haven't replied.
>
> RewriteEngine On
> RewriteMap tolower int:tolower
>
> RewriteRule ^/(.*)
> /usr/local/django/${tolower:%{SERVER_NAME}}/apache/django.wsgi/$1
> RewriteRule . - [E=APPLICATION_GROUP:${tolower:%{SERVER_NAME}}]
>
> WSGIProcessGroup %{GLOBAL}
> WSGIApplicationGroup %{ENV:APPLICATION_GROUP}
>
> <DirectoryMatch /usr/local/django/*/apache>
> Order allow,deny
> Allow from all
> Options ExecCGI
> AddHandler wsgi-script .wsgi
> </DirectoryMatch>
>
> Bit more work required if you want static media served by same server,
> more so if you want separate static media directories for each Django
> site. To handle the static media directory you could probably use
> VirtualDocumentRoot to specify the location of document roots for all
> sites. Then add an appropriate RewriteCond to above so RewriteRule
> isn't done for URLs which map to static media directories.
>
> Another RewriteCond you might want is to check for existence of the
> WSGI script file for a particular host value and if not present force
> a forbidden response. This way avoids problems with getting strange
> errors if request arrives with host for which there isn't yet a
> configured site.
>
> So, play with that and post back what you come up with that works, or
> if you have other issues.
>
> Graham
>
> 2009/1/5 Graham Dumpleton <[email protected]>:
>
> > Which of the methods in that document are you trying to use,
> > VirtualDocumentRoot from mod_vhost_alias or a mod_rewrite approach?
>
> > Can you post example for the actual virtual host directory
> > configuration you are using for document root/static files so can see
> > what it needs to work in conjunction with, or have you not even looked
> > at that aspect yet.
>
> > Graham
>
> > 2009/1/5 Fotinakis <[email protected]>:
>
> >> I am using mod_wsgi in embedded mode and attempting to make an Apache
> >> configuration that will not require any VirtualHost changes to deploy
> >> new Django sites (similar to the concept of dynamically configured
> >> mass virtual hostinghttp://httpd.apache.org/docs/2.2/vhosts/mass.html
> >> ). All that would be required is to create a new folder, such as /usr/
> >> local/django/_SERVER_NAME_/ ... and then it will Just Work. At least,
> >> that is the goal.
>
> >> I've tried many variations of the following (kind of ugly)
> >> configuration options:
>
> >> # Causes the server name to be obtained from the client's Host
> >> headers, instead of the ServerName directive
> >> UseCanonicalName Off
>
> >> RewriteEngine On
> >> # ServerName derived from a Host: header may be in any case
> >> RewriteMap lowercase int:tolower
> >> RewriteRule . - [E=wsgiservername:${lowercase:%{SERVER_NAME}}]
>
> >> WSGIScriptAlias / /usr/local/django/%{ENV:wsgiservername}/apache/
> >> django.wsgi
> >> <Directory /usr/local/django/%{ENV:wsgiservername}/apache>
> >>        Order deny,allow
> >>        Allow from all
> >> </Directory>
>
> >> The error log always says something like:
> >> Target WSGI script not found or unable to stat: /usr/local/django/%
> >> {ENV:wsgiservername}
>
> >> I'm assuming then that WSGIScriptAlias doesn't parse environment
> >> variables? Though, I'm probably terribly misunderstanding the order
> >> that Apache follows when interpreting directives.
>
> >> Is there a way to do this with a WSGIScriptAliasMatch? The problem I
> >> see is that the requested path doesn't contain the server name, so a
> >> regex can't pull it out. Perhaps a RewriteRule can mangle the path and
> >> put the ServerName in? :/
>
> >> WSGIScriptAliasMatch ^( **can the ServerName ever exist here?**)/ /usr/
> >> local/django/$1/apache/django.wsgi
>
> >> That seems to be the cleanest way to do it, if something like that
> >> would work (is there potential here for a new directive, such as
> >> WSGIVirtualScriptAlias?). Any ideas would be much appreciated ...
> >> thank you!
>
>
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"modwsgi" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/modwsgi?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to