我的环境是Apache 2.4,Django 1.7.7和mod_wsgi 4.4.11, 上一篇文章http://www.cnblogs.com/hkyang/p/4439980.html讲了编译mod_wsgi源码,编译完成后mod_wsgi-py34-VC10.so文件会自动拷贝到Apache的modules目录下,找到Apache目录下的httpd.conf文件,打开,在其中添加一行内容:
LoadModule wsgi_module modules/mod_wsgi-py34-VC10.so
然后继续添加如下内容:
1 2 3 4 5 6 7 8 | WSGIScriptAlias / /path/to/mysite.com/mysite/wsgi.py WSGIPythonPath /path/to/mysite.com <Directory /path/to/mysite.com/mysite> <Files wsgi.py> Require all granted </Files> </Directory> |
一,将/path/to/mysite.com/mysite/wsgi.py替换为Django工程中的wsgi.py文件的路径,如:D:/mysite/mysite/wsgi.py。
二,/path/to/mysite.com即为Django工程的路径,将其替换为相应的路径,如:D:/mysite。
三,/path/to/mysite.com/mysite路径的作用是确保Apache能访问上面提到的wsgi.py文件,将其替换为wsgi.py文件所在的路径,如:D:/mysite/mysite。
四,如果Apache的版本是2.4之前的版本,那么将Require all granted替换为:Allow from all,并在它上面再添加一行内容:Order deny,allow。
接下来,还需要配置应用中使用到的静态文件(如css,javascript文件等)的路径,否则Apache服务器会找不到这些文件。这里使用Django提供的admin应用为例,admin应用需要使用的css文件和图片等可以在Django的安装位置找到,我的位置在C:\Python34\Lib\site-packages\Django-1.7.7-py3.4.egg\django\contrib\admin\static,将static目录整个拷贝到Django工程的目录下,然后打开settings.py文件,在其中添加内容:
1 2 3 4 5 | STATIC_ROOT = 'D:/mysite/static' STATIC_URL = '/static/' STATIC_DIRS = ( 'D:/mysite/static' , ) |
接下来打开urls.py文件,编辑内容如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 | from django.conf.urls import patterns, include, url from django.contrib import admin from django.conf.urls.static import static from django.conf import settings urlpatterns = patterns('', # Examples: # url(r'^$', 'mysite.views.home', name='home'), # url(r'^blog/', include('blog.urls')), url(r '^admin/' , include(admin.site.urls)), ) urlpatterns + = static(settings.STATIC_URL, document_root = settings.STATIC_ROOT) |
配置完成,重启Apache服务器,使用admin应用进行测试,一切正确!
文章末尾固定信息

评论