Apache服务器配置mod_wsgi

  初学Django,最近被Apache服务器布置Django应用搞的很头疼,好不容易配置成功,所以把配置过程记载下来。

  我的环境是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应用进行测试,一切正确!

来源: Apache服务器配置mod_wsgi - hkyang - 博客园

weinxin
我的微信
一个码农、工程狮、集能量和智慧于一身的、DIY高手、小伙伴er很多的、80后奶爸。
Igor
  • 版权声明: 发表于 2019-01-1514:34:48
  • 转载注明:http://blog.tsingmac.com/prolions/software/database/874/
mod_wsgi介绍 [中文翻译] 数据库

mod_wsgi介绍 [中文翻译]

什么是mod_wsgi ? mod_wsgi的目标是实现一个简单的Apache模块,支持任何Python WSGI的接口的Python应用程序的托管。该模块适用于高性能生产的WEB站点,同时也适用于自...
mysql常用命令 数据库

mysql常用命令

启动服务器: net start mysql; 如果是在本地mysql上,切换目录至: D:index\mysql...win64\bin; 登录mysql: mysql -uroot -p 密码; ...
匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: