django apache mod_wsgi配置

来源:互联网 发布:江苏银河网络 编辑:程序博客网 时间:2024/05/22 04:43
前言

Django是一个开放源代码的Web应用框架,像一个工具箱,包括了整个web开发中的各种技术,例如ORM,Template等。

Apache是一个web服务器,主要有两个作用:

1.解析网页语言,如HTML,PHP,JSP等;2.接收web用户请求,并给予一点的响应。

wsgi是Python语言定义的Web服务器和Web应用程序或框架之间的一种简单而通用的接口。 在此接口中有两个方面,一个web应用程序类比java中的war包,一个是web服务器类比tomcat,apache。在这里我们只关注web应用程序。

apache+mod_wsigi安装

在电脑上已安装Python2.7+MySQL+Django1.6,下面是Apache和mod_wsgi的配置

  1.  安装apache.我用的版本为:httpd-2.2.17-win32-x86-openssl-0.9.8o.msi.假定安装到c:\apache.
  2.   a) 下载mod_wsgi(官网给的是源码).这里给一个已经编译好的mod_wsgi.so文件. 
    • http://code.google.com/p/modwsgi/downloads/detail?name=mod_wsgi-win32-ap22py26-3.3.so

     b) 下载的文件为:mod_wsgi-win32-ap22py26-3.3.so.接下来就对这个文件进行一些配置.将该文件复制到apache安装目录下的modules目录.apache与各种框架,工具的接口都放在这了.

     c) 配置apache\conf目录下的httpd.conf文件.添加以下内容到文件中:

        LoadModule wsgi_module modules/mod_wsgi-win32-ap22py26-3.3.so

          httpd.conf文件有个位置专门LoadModule.喜欢整齐的话就添加到那里吧.

     
  3. apache目前已经知道mod_wsgi的存在了.接下来在我们刚创建的项目(mysite)中进行一些配置,让django项目知道apache的存在.

      在mysite目录中建一个apache目录,在里边创建2个文件apache_django_wsgi.conf,django.wsgi.

      a) apache_django_wsgi.conf文件中添加以下内容.(其实这些内容可以直接写在前面的httpd.conf文件里)

# "H:/project/django/mysite/"也就是settings.py的所在目录 # 设置static静态资源的访问路径Alias /static/ "H:/project/django/mysite/media/"<Directory "H:/project/django/mysite/media">      Order deny,allow      Allow from all</Directory> # 设置django admin静态资源的访问路径Alias /media/ "H:\Program\python\2.6\Lib\site-packages\django\contrib\admin\media\"<Directory  "H:\Program\python\2.6\Lib\site-packages\django\contrib\admin">      Order deny,allow      Allow from all</Directory> # 设置root,不要使用"^/"WSGIScriptAlias / "H:/project/django/mysite/apache/django.wsgi"<Directory "H:/project/django/mysite/apache">    Order deny,allow    Allow from all</Directory>

注意把以上内容中的所有路径替换为你自己的.注意英文格式的空格

      b) django.wsgi文件中添加以下内容.

import osimport sys #Calculate the path based on the location of the WSGI script.apache_configuration= os.path.dirname(__file__)project = os.path.dirname(apache_configuration)workspace = os.path.dirname(project)sys.path.append(workspace)  os.environ['DJANGO_SETTINGS_MODULE'] = 'mysite.settings'import django.core.handlers.wsgiapplication = django.core.handlers.wsgi.WSGIHandler()

注意mysite是项目名字.如果你用了别的项目名字,记得替换掉.

      c) 回到apache安装目录中的httpd.conf文件,在末尾添加:

Include "H:/project/django/mysite/apache/apache_django_wsgi.conf"

意思其实就是包含apache_django_wsgi.conf文件的内容.同样记得替换为你自己的路径.重启apache.
0 0
原创粉丝点击