Hi Graham,

Thanks for taking the time to write such a detailed reply and
explaining the specifics.

This looks like a much cleaner solution, will run with this.

Paddy

On Jul 1, 12:31 pm, Graham Dumpleton <[email protected]>
wrote:
> 2009/6/30 Paddy Joy <[email protected]>:
>
>
>
>
>
> > Hi,
>
> > I'm developing a website with a web designer who only uses basic html
> > (ms frontpage).
>
> > For the dynamic part of the site I'm using django.
>
> > I want to mount django at the root of the site but still allow the
> > designer to upload static files as they please.
>
> > Reading the docs I have come up with the following configuration. Just
> > wondering if somebody who has done this type of setup before could
> > comment on my configuration. Is there anything I have missed or
> > anything I have overlooked with this config?
>
> > Thanks,
> > Paddy
>
> > <VirtualHost *:80>
>
> > DocumentRoot /home/user/example.com/html
> > ServerNamewww.example.com
>
> > ErrorLog /var/log/apache2/example.com.error.log
> > CustomLog /var/log/apache2/example.com.access.log combined
>
> > Alias /media /usr/lib/python2.5/site-packages/django/contrib/admin/
> > media
> > Alias /static /var/django/example.com/static
>
> > AliasMatch /(.*\.(html|htm|css|jpg|gif|png|pdf|doc|xls)) /home/user/
> > example.com/html/$1
>
> > <Directory /home/user/example.com/html>
> >        allow from all
> > </Directory>
>
> > WSGIDaemonProcess example user=django group=django threads=25
> > WSGIProcessGroup example
>
> > WSGIScriptAlias / /var/django/example.com/django.wsgi
>
> > </VirtualHost>
>
> The preferred way of doing this is explained towards end of:
>
>  http://code.google.com/p/modwsgi/wiki/ConfigurationGuidelines#The_Apa...
>
> That is, to use:
>
>   DocumentRoot /var/httpd/htdocs
>
>   <Directory /var/httpd/htdocs>
>   Options ExecCGI
>
>   AddHandler wsgi-script .wsgi
>
>   Order allow,deny
>   Allow from all
>
>   RewriteEngine On
>   RewriteCond %{REQUEST_FILENAME} !-f
>   RewriteRule ^(.*)$ /django.wsgi/$1 [QSA,PT,L]
>   </Directory>
>
> That is, all static files put under document root, with no need for
> any Alias directives of any sort.
>
> The Django application would then be stuck in that directory as
> django.wsgi file. The AddHandler directive is used to say the .wsgi
> file should be processed by mod_wsgi.
>
> What will happen is that the rewrite condition will be applied and if
> static file exists corresponding to the URL, it will be served as
> static file as per normal. If a static file doesn't exist, then the
> request is routed via the django.wsgi resource corresponding to your
> Django application.
>
> In the django.wsgi file, you will need to do a slight fixup to ensure
> that django.wsgi isn't used in URLs. As adapted from documentation,
> would use WSGI wrapper of:
>
> _application = django.core.handlers.wsgi.WSGIHandler()
>
> import posixpath
>
> def application(environ, start_response):
>     # Wrapper to set SCRIPT_NAME to actual mount point.
>     environ['SCRIPT_NAME'] = posixpath.dirname(environ['SCRIPT_NAME'])
>     if environ['SCRIPT_NAME'] == '/':
>         environ['SCRIPT_NAME'] = ''
>     return _application(environ, start_response)
>
> The '_application' would be your normal Django application entry point.
>
> This approach is better as you don't have to change Apache
> configuration to add new static files types. You don't even need the
> Alias directive for mapping Django media directory so long as it also
> is under document root in required location.
>
> Whether this will work for you depends on whether you can trust the
> other developers as far as shared access to document root directory
> for sticking stuff.
>
> Graham
--~--~---------~--~----~------------~-------~--~----~
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