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 -~----------~----~----~----~------~----~------~--~---
