首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > perl python >

[D]怎么将Django应用从自带的服务器转移至Apache上

2012-05-20 
[D]如何将Django应用从自带的服务器转移至Apache上?本人开了一个Django应用,应用路径为:d:\python\django\

[D]如何将Django应用从自带的服务器转移至Apache上?
本人开了一个Django应用,应用路径为:d:\python\django\bin\mysite1,用其自带的开发服务器(127.0.0.1:8000),跑起来正常。

现在想把服务器换成Apache,Apache+WSGI安装配置完毕,设置了下测试,Django自己的欢迎界面也能起来。但是,想把应用用Apache带起来,试了网上的几种方法,就是配置httpd.conf与django.wsgi文件,但总是不行。

请问:可能的问题出在哪?大家能给出示例吗?

--------------------
Double行动:
原帖分数:40
帖子加分:40

[解决办法]
  windows上搭建apache+mysql+django的过程.

一  安装python-2.6.5

  安装python后,最好能把以下几个目录的路径添加到windows的环境变量中.

  1  python2.6.5的安装目录, 如c:\python.一些工具及教程会直接使用命令行中的python命令.不把python的安装路径添加到环境变量中可能会遇到困惑.

  2  python安装目录下的scripts目录.如c:\python\scripts.可能django的django-admin.py文件及python的包安装工具easy_install.exe会放在这个目录下.

二  安装django-1.2.5

  1  下载好django的压缩包后,你会看到目录下有个setup.py文件.cmd命令进入dos窗口,cd进入setup.py所在的目录.执行python setup.py install即可.其实就是复制django到你的python安装目录下的Lib\site-packages\django中.

  2  接下来要创建一个django项目.apache和mysql的配置还得在这个项目的文件中进行.django提供了django-admin.py这个文件让你方便的创建一个"空白"项目.很简单,随便创建一个文件夹作为你的项目根目录.cd进入这个目录,输入django-admin.py startproject mysite即可,这将在你提供的项目根目录下创建一个mysite文件夹.mysite为你起的项目名字.

提示:以上2步如果你未把python, python\scripts添加到环境变量中,会出现"...不是内部命令..."的错误提示.

三  apache+mod_wsigi安装.

  django与apache的接口使用mod_wsgi,官方目前所推荐.

  也可以使用mod_python,因为该包作者已经停止更新,今后的django版本将不再支持它.

  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文件里)

LoadModule wsgi_module modules/mod_wsgi.so
 
<VirtualHost 127.0.0.1:80>
WSGIScriptAlias / "D:/arthur/django_project/android_html/django.wsgi"
<Directory "D:/arthur/django_project/android_html">
Allow from all
</Directory>
</VirtualHost> 
注意把以上内容中的所有路径替换为你自己的.

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

import os
import 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.wsgi
application = 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.

四  mysql+mysql_python的安装

  1  a) 安装mysql.我安装的版本是msi的版本(mysql-5.5.9-win32.msi).如果你使用zip版本安装,将不会在注册表里建立与mysql相关的表项,而mysql_python的安装需要搜索注册表里的相关表项(我也很晕为什么它这么做).所以一定要使用zip解压版的同学, 记得自己建立一个reg文件,在HKEY_LOCAL_MACHINE\SOFTWARE下建立MySQL AB\MySQL Server项,然后填上对应的值(版本号,安装位置等).

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\MySQL AB\MySQL Server]

"DataLocation"="D:\Documents and Settings\All Users\Application Data\MySQL\MySQL Server 5.5\"
"Location"="H:\Program\MySQL\MySQL Server 5.5\"
"Version"="5.5.9"


    双击该reg文件即可.既然使用zip安装,相信你应该知道如何替换上边的内容为你自己的值.

    b) 下载mysql-connector-c-6.0.2-win32.msi.这个是mysql在c语言环境中的sdk开发包.安装.

  2  安装mysql_python很痛苦,本来就不是特别为windows准备的,忍着吧.我是参考这篇文章(英文)来的:

     http://www.fuyun.org/2009/12/install-mysql-for-python-on-windows/

     a) 下载MySQL-python-1.2.3.tar.gz文件.解压到某个目录.假设为c:\MySQL-python-1.2.3.

     b) 进入cmd窗口,cd命令进入MySQL-python-1.2.3目录,执行:

     python ez_setup.py

     将安装easy_install到python\scripts中.接下来可用easy_install这个工具自动安装.执行

     easy_install "MySQL-python=1.2.3"

     我实际安装过程中没有使用上述命令.而是执行了

setup.py biuld

接着就悲惨的跳出一堆错误.以下是相关的修改(easy_install "MySQL-python=1.2.3"应该也会遇到这些错误).主要是关于文件路径,解析错误,注册表的.

     c) 修改site.cfg文件.将

registry_key = SOFTWARE\MySQL AB\MySQL Server 5.5
     修改为你自己的版本号.如果registry_key前有#号注释,记得去掉.

     d) 修改setup_windows.py中的内容.

library_dirs = [ os.path.join(mysql_root, r'lib\opt'),"H:\\Program\\MySQL\\MySQL Connector C 6.0.2\\lib\\opt" ]
libraries = [ 'kernel32', 'advapi32', 'wsock32', client ]
include_dirs = [ os.path.join(mysql_root, r'include'), "H:\\Program\\MySQL\\MySQL Connector C 6.0.2\\include" ]
     就是修改library_dirs及include_dirs,记得替换为你自己的路径.这里实际上是添加mysql的c语言sdk的头文件及库.根据sdk版本不同,文件目录结构可能不同,自己注意了.

     e) 修改setup_common.py中的内容.

config.read([os.path.dirname(__file__)+'\\metadata.cfg', os.path.dirname(__file__)+'\\site.cfg']) 

     找到config.read所在一行,修改如上.

     f) 去到python的安装目录,在Lib\distutils下找到msvc9compiler.py文件,搜索到

     ld_args.append(‘/MANIFESTFILE:’ + temp_manifest)所在行.在该行后添加一行:

     ld_args.append(‘/MANIFEST’)

     自己注意python中的缩进.

    g) 执行setup.py install即可安装.

  3  测试,执行以下python脚本如无错误提示即可.

     import MySQLdb

[解决办法]
http://blog.csdn.net/wklken/article/details/7389502
以前在linux下部署django的记录,希望有帮助

热点排行