Django官方推荐的部署方式是mod_python,所以,如果没有其他理由,建议用这种部署方法。我参考了官方的文档:
http://www.djangoproject.com/documentation/modpython/。本说明基于Windows平台,其他平台也类似。
1、安装
假设Python和Django已经装好,需要安装的软件是Apache2.2和mod_python3.3,软件版本按照20080725的最新稳定版。
从http://httpd.apache.org/download.cgi下载Win32 Binary including OpenSSL 0.9.8h (MSI Installer): apache_2.2.9-win32-x86-openssl-0.9.8h-r2.msi,安装,基本按默认
就成。
从http://httpd.apache.org/modules/python-download.cgi选择Apache Mod_python 3.3.1下面的Win32 Binaries进去,会进到某个镜像,我这里是
http://apache.mirror.phpchina.com/httpd/modpython/win/3.3.1/,根据Python和Apache的版本选择需要下载的文件,我选的是mod_python-3.3.1.win32-py2.5-
Apache2.2.exe。安装,没什么好说的。
2、应用目录结构
假设开发的应用是flmn.com,文档存在E:/workspace目录下,设计目录结构如下:
flmn
--media
----admin
------css
------img
------js
----css
----img
----js
--djflmn
----app1
------__init__.py
------admin.py
------models.py
------views.py
----__init__.py
----manage.py
----settings.py
----urls.py
解释:整个站点放在E:/workspace/flmn目录下,子目录media用来存静态文件,而djflmn就是Django应用啦,开发应用和平时一样,只是引用的静态文件要用/media/*这样的路径。在media目录里,admin目录是从C:\Python25\Lib\site-packages\django\contrib\admin\media\拷来的admin静态文件,如果你不用Django的admin功能,这个就省了,另外的css、img、js放djflmn应用的静态文件。在djflmn的settings.py里,需要:MEDIA_URL = '/media/' ADMIN_MEDIA_PREFIX = '/media/admin/'。
3、配置
打开http.conf,在一堆LoadModule语句后加入:LoadModule python_module modules/mod_python.so。我喜欢用虚拟主机的配置,这样便于配置多个互不影响的站点,
在文件最后找到Include conf/extra/httpd-vhosts.conf,去掉前面的注释#。
打开extra/httpd-vhosts.conf,加入:
<VirtualHost *:80>
ServerAdmin webmaster@flmn.com
DocumentRoot "E:/workspace/flmn"
ServerName www.flmn.com
<Location "/">
SetHandler python-program
PythonHandler django.core.handlers.modpython
SetEnv DJANGO_SETTINGS_MODULE djflmn.settings
PythonDebug Off
PythonPath "['E:/workspace/flmn'] + sys.path"
</Location>
<Location "/media">
SetHandler None
</Location>
<Directory "E:/workspace/flmn">
Options Indexes FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
这里配置是参考Django的官方网站,不多说了。官方网站上说到这个:PythonOption django.root /mysite,如果你像我一样,直接上来就放在根下,就别PythonOption django.root / 多此一举了,因为我一开始那样配,出了莫名其妙的问题。
最后,为了开发方便,修改C:\Windows\System32\drivers\etc\hosts文件,加入一行:127.0.0.1 www.flmn.com,有朝一日应用上线了,要把这行删了,要不dns不到实际的服务器。
Trackback: http://tb.donews.net/TrackBack.aspx?PostId=1329321