我知道已经有很多关于这个主题的信息,但它们非常笨拙,不那么简单和富有表现力。
任何人都可以解释一下如何使用django
以及mod_wsgi
和apache
吗?
答案 0 :(得分:9)
mod_wsgi不是特别适合运行Python WSGI应用程序,或者,如果你更愿意,有更多pythonic方法可以运行你的Django实例。
首先,我认为理解Apache的请求处理模型并正确配置它需要花费很多精力,特别是对于mod_wsgi。如果你没有完全设置或锁定使用Apache,我建议你看一下在Spawning代理后面运行Green Unicorn或nginx,如@Neo建议。
Spawning和gunicorn的速度非常快,不要求你使用特定的Python解释器编译Apache,并且支持逐步更新你的代码库,为Django和其他开箱即用的钩子提供支持。 nginx,Spawning和gunicorn都有一个简单的处理模型,彼此完全独立,因此您可以获得更加透明的架构,更易于维护和监控。
这是一个伟大的guide关于使用Eric Florenzano设置Django的Spawning,这是项目作者BenoîtChesneau使用gunicorn运行Django的thorough presentation。
无论你选择哪种,你都会对@home感觉正确。
答案 1 :(得分:5)
我最近在Django上设置了我的应用程序,这本指南就是我所需要的。 http://blog.stannard.net.au/2010/12/11/installing-django-with-apache-and-mod_wsgi-on-ubuntu-10-04/
基本上,这个过程是
让我知道你被困在哪一步。
答案 2 :(得分:3)
以下是我在Mac上使用来自Mac Ports的Apache,Python和Django的方法。这不一定是最好的方法,但它对我有用。
我有以下顶级目录:
lib
:python代码,lib / settings.py中的settings.py static
:Apache提供的服务,例如:媒体和CSS tools
:开发工具,例如推出脚本。所以这是一个示例站点的Apache配置,然后看下面的Django WSGI脚本:
<VirtualHost *:80>
# Stuff to served statically is in media directory
DocumentRoot /Library/WebServer/mysite/static
ServerName mysite.local
# Redirect to homepage action
RewriteEngine on
RewriteRule ^/$ /mysite/ [R,L]
# Static dirs first
Alias /static/ /Library/WebServer/mysite/static/
<Directory "/Library/WebServer/mysite/static/">
Order allow,deny
Allow from all
</Directory>
# Now everything else goes to Django
WSGIDaemonProcess mysite-django.local processes=1 threads=5 maximum-requests=0 display-name=%{GROUP} python-path=/Library/WebServer/mysite/lib python-eggs=/tmp
WSGIProcessGroup mysite-django.local
WSGIScriptAlias / /Library/WebServer/mysite/lib/apache/django_wsgi.py
<Directory "/Library/WebServer/mysite/lib/apache">
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
Django WGCI脚本位于lib / apache / django_wsgi.py中:
import os
import sys
os.environ['DJANGO_SETTINGS_MODULE'] = 'settings'
import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()