WIN, Apache2.2+Django1.6(Python2.7.5)+mod_wsgi 实现网站部署

来源:互联网 发布:linux删除mysql数据库 编辑:程序博客网 时间:2024/05/22 09:01
用Django1.6 创建项目(django-admin.py startproject $projname) 后 会在$root_dir/$projname下有个wsgi.py,如果没有后续工作无法完成。注:$projname 就是建立的项目名称,$root_dir就是根目录,比如E:\www\mysite是根目录,那么$projname应该也是mysite

首先去下载mod_wsgi.so,这是个apache模块,有了它apache就能识别python了。把它下载在$apache/modules里(里面应该有很多.so文件)。

——————以下是代码编辑阶段——————

首先要创建个wsgi文件,让apache识别,在$root_dir下创建index.wsgi

#index.wsgiimport sys, ossys.path.insert(0,abspath(dirname(__file__)))from epidd import wsgisys.stdout = sys.stderrapplication = wsgi.application

按理下面那句话是不需要的,因为在调试的时候根目录应该早就添加到sys.path中的,不过如果这句话不写,apache竟然不知道这个目录,所以只能写了。

sys.path.insert(0,abspath(dirname(__file__)))

然后编辑apache的配置文件,在$apache/conf/hppd.conf,用记事本打开

添加如下代码(添加位置理论上无所谓,但是为了好看你可以分别在它希望你添加的地方添加,如果要偷懒 就在大量出现LoadModule xxx那段的后面)

LoadModule wsgi_module modules/mod_wsgi.soWSGIScriptAlias / "$root_dir/index.wsgi"WSGIPythonPath "$root_dir"ServerName localhostDocumentRoot "$root_dir"<Directory "$root_dir/static"> Order Deny,Allow Allow From all</Directory>Alias /static/admin/ C:/Python27/Lib/site-packages/django/contrib/admin/media<Directory "C:/Python27/Lib/site-packages/django/contrib/admin/media"> Order Deny,Allow Allow from all </Directory> Alias /static/ "$root_dir/static/"<Directory "/static/">    Order allow,deny    Options Indexes    Allow from all    IndexOptions FancyIndexing</Directory>

如果ServerName 和DocumentRoot已经有了,那么可以直接更改后面的内容,注意不要重复出现这两个命令

注意将$root_dir改成实际项目的目录

笔者python目录是C:/python27,请根据自己的实际更改。

Alias /static/admin/命令和Alias /static/ 命令不能颠倒位置,否则前面那个命令会失效,导致进入django自带后台不能显示样式

static是笔者的静态目录($root_dir/static),可以根据实际情况(比如media)

————————以下是笔者碰到的问题————————

可能碰到问题:
没有template文件:
如果找不到模板文件,考虑是setting中Template_dir的设置问题
TEMPLATE_DIRS = (
**os.path.join(BASE_DIR,'template'),**
'template',
)
** **内表示增加的内容

笔者做了这些后 网站就能正常显示了,有问题可以继续讨论

(APACHE2.2是安装版,所以可能有些设置在装的时候就搞定了,如果不是安装版,可能还需要琢磨琢磨)

对了,如果apache看上去运行了,但没有具体的项目的话,是因为没有加添服务

管理员运行 $apache/httpd.exe -k install 就行了,或者如果急着想看效果,直接双击httpd就行


出现什么问题可以看$apache/logs/中的error.log文件查看错误具体内容


0 0