Win7/Apache/Python2.7/Django1.9部署Web
 
环境:
Windows7
Apache httpd-2.4.16-win64-VC14
Python2.7.11
Django1.9.7
 
1、安装Apache
1)下载相关组件
 
步骤参照http://blog.csdn.net/qq_15096707/article/details/47319545
 
从官网 http://httpd.apache.org 下载Apache
Files for microsoft windows -> Apache Lounge -> httpd-2.4.16-win64-VC14
 
下载完成之后,我们要做的是解压该文件到自定义的目录,找到Apache24中的bin目录,打开 ApacheMonitor.exe
 
如果ApacheMonitor.exe不能运行,提示缺少文件,如缺少 vcruntime140.dll文件,安装响应的VC库,我安装了vc_redist.x64(VC2015)
 
2)修改httpd.conf配置文件
 
37行: ServerRoot "apache目录" (e.g. 'c:/apache24' 改为 e:/apache34)
ServerRoot "e:/Apache24"
 
219行:ServerName 服务器名称 (e.g demo.app.com or 127.0.0.1)去掉# (这里也可以填 localhost)
ServerName 127.0.0.1
 
243行: DocumentRoot 修改网站根目录地址
DocumentRoot "e:/Apache24/htdocs"
 
244行:<Directory "网站根目录地址">
<Directory "e:/Apache24/htdocs">
 
360行:ScriptAlias /cgi-bin/ "apache目录+/cgi-bin/"
ScriptAlias /cgi-bin/ "e:/Apache24/cgi-bin/"
 
376行:<Directory "apache目录+/cgi-bin/">
<Directory "e:/Apache24/cgi-bin">
 
3)使用命令行cmd安装Apache服务
 
在管理员模式下启动命令行,然后cd到apache/bin目录下运行
httpd -k install
 
如果重启或卸载
#重启服务
httpd -k restart
 
#卸载服务
httpd -k uninstall
 
4)启动和测试
启动Apache服务成功后,打开 ApacheMonitor.exe,点击start,成功启动服务
为了测试是否真的成功,可以在浏览器上输入  http://localhost/ 
出现“It works”
 
2、部署Django
参照了http://blog.csdn.net/yingmutongxue/article/details/43985559
 
1)下载mod_wsgi组件
下载链接http://www.lfd.uci.edu/~gohlke/pythonlibs/#mod_wsgi
选择对应python2.7和64位系统的版本
mod_wsgi-4.4.23+ap24vc9-cp27-cp27m-win_amd64.whl
解压出mod_wsgi.so后放于apache24/module文件夹下
 
一开始我下载了该组件的错误版本导致apache服务无法启动
在命令行启动,输入命令
httpd -w -n “apache2.4” -k start
会在屏幕上显示错误信息
Cannot load modules/mod_wsgi.so into server
换成正确版本后不再报错
 
2)修改配置文件httpd.conf
#添加mod_wsgi.so模块  
LoadModule wsgi_module modules/mod_wsgi.so
 
在文档尾部添加
#指定myweb项目的wsgi.py配置文件路径 
WSGIScriptAlias / "E:/code/wljk_workshop/wljk_workshop/wsgi.py"
 
#指定项目路径 
WSGIPythonPath "E:/code/wljk_workshop"
 
<Directory E:/code/wljk_workshop>
<Files wsgi.py>
Require all granted
</Files>
</Directory>
 
Alias /statics E:/code/wljk_workshop/statics
<Directory E:/code/wljk_workshop/statics>
Require all granted
</Directory>
 
3)设置settings.py
DEBUG = False   
TEMPLATE_DEBUG = False
ALLOWED_HOSTS = ['127.0.0.1', 'localhost']
 
4)排错
以上设置后还是无法启动服务器,查看apache24/logs/error
[Thu Jun 30 18:30:54.678499 2016] [mpm_winnt:notice] [pid 1776:tid 300] AH00455: Apache/2.4.16 (Win64) mod_wsgi/4.4.23 Python/2.7.11 configured -- resuming normal operations
[Thu Jun 30 18:30:54.678499 2016] [mpm_winnt:notice] [pid 1776:tid 300] AH00456: Apache Lounge VC14 Server built: Jul 22 2015 13:24:19
[Thu Jun 30 18:30:54.678499 2016] [core:notice] [pid 1776:tid 300] AH00094: Command line: 'E:\\Apache24\\bin\\httpd.exe -d E:/Apache24'
[Thu Jun 30 18:30:54.678499 2016] [mpm_winnt:notice] [pid 1776:tid 300] AH00418: Parent: Created child process 5868
ImportError: No module named site
[Thu Jun 30 18:30:55.068500 2016] [mpm_winnt:crit] [pid 1776:tid 300] AH00419: master_main: create child process failed. Exiting.
 
报错AH00419: master_main: create child process failed
参考http://stackoverflow.com/questions/34440078/apache24-x86-vc9-with-mod-wsgi-says-ah00419-master-main-create-child-process/35767105
 
配置中添加:
WSGIPythonPath "E:/code/wljk_workshop;E:/Python27/Lib;E:/Python27/Lib/site-packages;E:/Python27/DLLs"
WSGIPythonHome "E:/Python27"
 
服务器启动成功,访问网站成功。
但是此时只能本地访问,在其他终端访问时返回400 Bad request
 
修改settings.py
ALLOWED_HOSTS = ['*']
访问成功
 

Windows下Apache部署Django过程记录的更多相关文章

  1. Windows下Apache+mod_python+Django配置

    Windows下Apache+mod_python+Django配置 Apache 首先要安装Apache,我安装的版本是2.2.*: Python python肯定是要安装的,我安装的版本是2.5的 ...

  2. windows下apache + mod_wsgi + python部署flask接口服务

    windows下apache + mod_wsgi + python部署flask接口服务 用python3安装虚拟环境 为啥要装虚拟环境? 原因1:安装虚拟环境是为了使项目的环境和全局环境隔离开,在 ...

  3. apache部署django记录

    在ubuntu下通过apache部署django 首先需要下载python,django,apache以及wsgi模块 python基本已经自带,我用的是2.7,不是的话可以重新装一个 下载djang ...

  4. windows下apache+https环境配置

    windows下apache+https环境配置 转 https://www.cnblogs.com/sandaizi/p/7519370.html 1.修改配置文件conf/httpd.conf,去 ...

  5. Windows下apache+tomcat负载均衡

    Windows下apache+tomcat负载均衡 网上已经有很多的资料,但是很多都比较零碎,需要整合一起才能搭建出理想的负载均衡,正好前段时间搭建了windows与linux下的负载均衡,在此记录, ...

  6. MySQL5.7.25(解压版)Windows下详细的安装过程

    大家好,我是浅墨竹染,以下是MySQL5.7.25(解压版)Windows下详细的安装过程 1.首先下载MySQL 推荐去官网上下载MySQL,如果不想找,那么下面就是: Windows32位地址:点 ...

  7. Apache Windows下Apache安装步骤

    1.apache官网下载Apache HTTP Server服务器 我相信有些朋友刚用apache服务器时,都希望从官网上下载,而面对着官网上众多的项目和镜像以及目录,也许有点茫然.下面是具体步骤: ...

  8. Windows server iis部署Django详细操作

    教程基于Windows server2012+Python3.6+IIS之上部署django的,同样适用于server2012之上的版本服务器和windows7以上的windows操作系统. 文章来自 ...

  9. Windows下Apache应用环境塔建安全设置(目录权限设置)

    目的:为Apache,php配置受限制的用户权限.保护系统安全.需要的朋友可以参考下. 环境配置情况: apache安装目录:d:\www-s\apache php目录:d:\www-s\php5 m ...

随机推荐

  1. HttpContext.Current.Cache 和 HttpRuntime.Cache 区别

    原文地址:http://blog.csdn.net/avon520/article/details/4872704 .NET中Cache有两种调用方式:HttpContext.Current.Cach ...

  2. Codeforces Round #216 (Div. 2) E. Valera and Queries 树状数组 离线处理

    题意:n个线段[Li, Ri], m次询问, 每次询问由cnt个点组成,输出包含cnt个点中任意一个点的线段的总数. 由于是无修改的,所以我们首先应该往离线上想, 不过我是没想出来. 首先反着做,先求 ...

  3. Clouds

    1.Eucalyptus: Eucalyptus is a Linux-based software architecture that implements scalable private and ...

  4. Linux下profile environment bashrc的区别

        先将export LANG=zh_CN加入/etc/profile ,退出系统重新登录,登录提示显示英文.将/etc/profile 中的export LANG=zh_CN删除,将LNAG=z ...

  5. MySQL如何有效地创建基于 INNODB 引擎的表

    2016-05-27 赵伟 数据库开发者 有用户问我们为什么下面这个建表语句会执行失败,报错是 "Row size too large ...."下面我就以这个例子出发讲一讲使用m ...

  6. webpack入门学习

    一.认识webpack webpack是一款模块打包加载工具.它能够将各种资源.JS.CSS.图片等作为模块打包加载.本人也是近期因工作需要才开始接触webpack,在下文中有误的地方还希望各位能够指 ...

  7. C#解leetcode 18. 4Sum

    Given an array S of n integers, are there elements a, b, c, and d in S such that a + b + c + d = tar ...

  8. 从零开始,在windows上用nodejs搭建一个静态文件服务器

    从零开始,在windows上用nodejs搭建一个静态文件服务器 首先安装nodejs: 新建一个node文件夹 下载node.exe到该文件夹 下载npm然后解压到该文件夹 现在node文件夹是这样 ...

  9. jQuery的选择器中的通配符[id^='code']或[name^='code']

    这两天在做一个专题的时候遇到了一个通配符的问题 //弹层操作$(function(){ //视频播放 $("a[href^='#video']").each(function(in ...

  10. jquery的ajax方法:ajaxStart()和ajaxStop()

    ajaxStart()方法: 当AJAX请求开始时,显示加载中的提示. $("#divMessage").ajaxStart(function(){ $(this).show(); ...