2009/1/6 Fotinakis <[email protected]>:
>
> Got it! I think your regex was just a little off ... changed the * to
> (.+) and everything seems to work with the other syntax as it is:
>
> <DirectoryMatch /usr/local/django/(.+)/apache>
>       Order allow,deny
>       Allow from all
>       Options ExecCGI
>       AddHandler wsgi-script .wsgi
> </DirectoryMatch>

Yeah, for '*', should have been just Directory and not DirectoryMatch.

<Directory /usr/local/django/*/apache>
Order allow,deny
Allow from all
Options ExecCGI
AddHandler wsgi-script .wsgi
</Directory>

Graham

> Also works under an SSL configuration. I'm going to work through the
> static file serving problem sometime, I'll post here when I figure out
> a good way to do that. Thanks!
>
>
> On Jan 5, 10:04 am, Fotinakis <[email protected]> wrote:
>> 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