windows环境部署apach2.4+python3.5+django1.9网站
给老婆做的巡检系统需要部署在windows环境下
准备工作
检查python版本
1.下载apach
www.apachelounge.com/download/ 下载对应版本的Apache2.4,64位pathon下载64位apach,我下载的是 httpd-2.4.33-win64-VC14.zip,解压到e:\ 添加PATH环境变量 e:\Apache24\bin
2.下载并安装mod_wsgi
地址www.lfd.uci.edu/~gohlke/pythonlibs/#mod_wsgi,我使用mod_wsgi-4.5.24+ap24vc14-cp35-cp35m-win_amd64.whl 这个版本 (ap24--apach2.4,cp35--python3.5 amd64--64位 )
切换到下载目录 在我的虚拟环境中安装pip install mod_wsgi-4.4.23+ap24vc14-cp35-cp35m-win_amd64.whl
中间让我将pip升级到9.0.3 命令是 python -m pip install --upgrade pip
3配置
配置Apache
3.1打开Apache2.4目录下的http.conf,开始修改:
#你的Apache解压路径
ServerRoot "e:/Apache24"
…… Listen 0.0.0.0:8000 #修改端口号 …… ServerName localhost:8000 …… DocumentRoot "e:/Apache24/htdocs" <Directory "e:/Apache24/htdocs"> …… ScriptAlias /cgi-bin/ "e:/Apache24/cgi-bin/" …… <Directory "e:/Apache24/cgi-bin"> AllowOverride None Options None Require all granted </Directory>
此时启动cmd输入httpd,浏览器访问127.0.0.1:8000,返回It works! 则apache配置成功。
3.2 在项目settings文件里面添加STATIC_ROOT = 'all_statics' ,执行python manage.py collecstatic 静态资源迁移到'all_statics'文件夹中,以供apach使用
3.3 在http.conf中添加mod_wsgi 和项目信息
mod_wsgi安装成功后在python的安装目录的\scripts文件夹下运行
mod_wsgi-express module-config
输出的这三行内容复制到http.cnf文件下进行配置
#添加mod_wsgi.so模块 LoadFile "c:/python35/python35.dll" LoadModule wsgi_module "c:/users/lsp007/envs/test123/lib/site-packages/mod_wsgi/server/mod_wsgi.cp35-win_amd64.pyd" WSGIPythonHome "c:/users/lsp007/envs/test123" #指定静态资源路径 Alias /assets/ c:/Users/lsp007/PycharmProjects/test123/all_statics/ <Directory c:/Users/lsp007/PycharmProjects/test123/all_statics/> Require all granted </Directory> #指定newsCollection项目的wsgi.py配置文件路径 WSGIScriptAlias / c:/Users/lsp007/PycharmProjects/test123/test123/wsgi.py #指定项目路径 WSGIPythonPath C:/Users/lsp007/PycharmProjects/test123 <Directory C:/Users/lsp007/PycharmProjects/test123/test123> <Files wsgi.py> Require all granted </Files> </Directory>
重启httpd后正常访问。
注意:windows路径中不能有中文。
中间出现的问题1.apach log中出现Target WSGI script not found or unable to stat: 原因是WSGIScriptAlias / c:/Users/lsp007/PycharmProjects/test123/test123/wsgi.py 配置问题
2.apach log中出现Not Found: /assets/css/bootstrap.css\r, referer: http://127.0.0.1:8000/ 原因为Alias /assets/ c:/Users/lsp007/PycharmProjects/test123/all_statics/ 配置问题