经过几天踩坑,记录在Windows10下通过Apache2.4部署Django项目的过程

运行环境:

     先说下环境,怎么安装倒是其次的,版本很重要,我是根据mod_wsgi的版本要求下载的各个版本(python,Apache2.4)

    mod_wsgi 下载地址:https://www.lfd.uci.edu/~gohlke/pythonlibs/#mod_wsgi

    下面这张图说明python与Apache的版本:

    版本信息:
Apache2.4VC14 64bit
Python 3.5.2-amd64
Django 2.2
MySQL 8.0.19 Apache2.4安装:
在Apache官网上找到对应的安装包
下载Apache2.4 VC14 地址:https://www.apachelounge.com/download/vc14/
打开httpd.conf文件(在Apache24/conf目录下)
Define SRVROOT "C:\web\Apache24"
Listen 80
ServerName www.example.com:80
DocumentRoot "C:\web\Apache24\htdocs"
<Directory "C:\web\Apache24\htdocs">
具体如何安装Apache不多说了,下面这几条常用命令还是说明一下:
httpd -k install -n #安装Apache服务
net start/stop Apache2.4 #启动停止Apache服务
sc delete Apache2.4 #删除Apache服务
httpd -k uninstall #卸载Apache python-3.5安装:
本文略
Mysql-8.0.19安装:
本文略 下面具体讲述mod_wsgi相关配置: 在上述完成之后,Apache启动访问IP地址访问出现 It WORKS! ,开始部署。
在Django项目文件夹下建一个虚拟环境: pip install virtualenv #下载virtualenv包
virtualenv 1_env #新建环境1_env
activate #须cd到\1_env\Scripts目录下运行activate 先将下载好的mod_wsgi-4.7.0+ap24vc14-cp35-cp35m-win_amd64.whl复制到Scripts目录
pip install "c:\djangomode\1_env\mod_wsgi-4.7.0+ap24vc14-cp35-cp35m-win_amd64.whl" #通过pip安装mod_wsgi 如果安装失败检测自己所下载对应的版本是否有问题,成功的话继续往下走; mod_wsgi-express module-config #在刚才的环境里面运行命令,会得到两条配置信息,将信息拷贝下来,后面有用
两条像这样的配置信息:
LoadModule wsgi_module "c:/djangomode/1_env/lib/site-packages/mod_wsgi/server/mod_wsgi.cp35-win_amd64.pyd"
WSGIPythonHome "c:/djangomode/1_env" 注:可能你们看过其他博主输出的是三条配置,不过不要紧,我们无需设置LoadFile "c:/python35/python35.dll Django项目setting.py修改:
这里先说一下原因,setting配置相对路径信息在移到Apache与mod_wsgi运行时,相对路径会访问不了,需要修改为绝对路径。
在我修改为绝对路径时,运行Apache报了一个错 OSError: [Errno 22] Invalid argument: 'C:\\\\Djangomode\\templates\\\\500.html'\r 需要在文件路径前加上 r"filepath"
r"filepath":意思是指为了避免\xx是一个转义字符而导致的错误,也就是说加上r之后,""里的就不再出现转义字符,编程纯的文件地址。 TEMPLATES = [{
'DIRS': [r'C:\Djangomode\templates']
]
注:这里只描述一处,其余相对路径也需改成绝对路径并加上 r 。 在项目正式上线时必须将DEBUG设为False: DEBUG = False 可指定主机,若元素为'*',表示所有同一局域网内的网络均可被访问: ALLOWED_HOSTS = ['*']
配置Apache2.4的httpd.con文件: DocumentRoot "C:\Djangomode" #Djangomode为项目根目录
<Directory "C:\Djangomode"> 在文件底部加上下面代码(需根据实际环境更改参数) ##--------------- Django项目部署配置 ---------------## LoadModule wsgi_module "c:/djangomode/1_env/lib/site-packages/mod_wsgi/server/mod_wsgi.cp35-win_amd64.pyd"
WSGIPythonHome "c:/djangomode/1_env" #指定项目的"wsgi.py"配置文件路径
WSGIScriptAlias / "C:\Djangomode\Djangomode\wsgi.py" #指定Django项目根目录
WSGIPythonPath "C:\Djangomode"
<Directory "C:\Djangomode\Djangomode">
<Files wsgi.py>
Require all granted
</Files>
</Directory> #项目静态文件地址
Alias /static "C:\Djangomode\static"
<Directory "C:\Djangomode\static">
AllowOverride None
Options None
Require all granted
</Directory> #项目上传文件根目录
Alias /uploads "C:\Djangomode\uploads"
<Directory "C:\Djangomode\uploads">
AllowOverride None
Options None
Require all granted
</Directory> 修改完之后重启Apache服务,Apache服务属性会被修改,如下图:

        在浏览器上输入IP地址端口或主机域名访问Django项目,在httpd.conf中配置的主机域名ServerName
etc/hosts需加入域名如: 127.0.0.1 Djangomode 检查ip地址或域名是否正常,在cmd窗口输入ping如:
ping www.baidu.com #ping的通则正常

        访问成功!祝贺自己,耶!

Windows下django项目部署 通过Apache2.4+mod_wsgi的更多相关文章

  1. Windows下Django项目搭建流程

    1.创建虚拟环境 virtualenv test 2.进入虚拟环境 source ./项目名/Scripts/activate 3.创建项目 django-admin startproject 项目名 ...

  2. Django项目部署在Linux下以进程方式启动

    Django项目部署在Linux下以进程方式启动 这是一篇关于如何在linux下,以后台进程的方式运行服务,命令改改基本上就通用了. 开发完Django项目后,需要把项目部署到linux环境下.当然, ...

  3. 使用gunicorn将django项目部署到生产环境的子目录下,在nginx后端获取客户真实IP地址

    生产环境有时,并不是为了一个项目而存在的.毕竟,域名是比较稀有的. 今天遇到这个问题,解决了.作个记录. 并且,如果将django项目部署在Nginx后面,那如何获取用户真实的IP地址呢? 下面就来解 ...

  4. 在windows下使用jenkins部署docker容器

    在windows下使用jenkins部署docker容器最近在学习jenkins,docker部署来实现集成部署,所以想在windows下面实现测试,但是发现在windows下docker支持不是很好 ...

  5. Django项目部署(django+guncorn+virtualenv+nginx)

    一.说明 为了django项目部署到生产环境上,能够稳定的运行,且能够同时指出http和https的访问,对django的部署进行了一些研究,决定采用django + gunicorn + virtu ...

  6. django项目部署过程

    django项目部署过程 1.上传代码 用git或者其他工具,如scp 代码上传后保证每个应用下的migrations文件夹里只有一个__init__.py文件,自己的迁移文件不要上传上来,具体的gi ...

  7. RabbitMQ消息队列系列教程(二)Windows下安装和部署RabbitMQ

    摘要 本篇经验将和大家介绍Windows下安装和部署RabbitMQ消息队列服务器,希望对大家的工作和学习有所帮助! 目录 一.Erlang语言环境的搭建 二.RabbitMQ服务环境的搭建 三.Ra ...

  8. Django项目部署到Apache服务器上

    之前写了把Django部署到XAMPP上,但是有bug,翻apache日志的时候发现会无法import _ssl,然后我就怒而直接装apache2了 配置方法大约和这篇文章差不多 安装必要的包 sud ...

  9. django 项目部署在 Apache 后, 设置二级域名(Apache虚拟主机 、 万网二级域名设置)

    上一篇文章简单说了怎么把django的项目部署到Apache上. 现在想弄个二级域名,也就是我原来有个域名 www.mysite.com,现在我想弄个 bbs.mysite.com ,该怎么做呢. 要 ...

随机推荐

  1. 关于Android Studio中使用jni进行opencv配置开发环境的要素秘诀

    使用jni进行opencv开发可以快速地将PC端的opencv代码移植到手机上,但是如何在android studio下进行配置,网上几乎找不到教程,大多都是eclipse下使用mk文件的方法,找不到 ...

  2. 6.1 接口 - 6.3 lambda表达式

    6.1 接口 接口概念 接口是对类的一组需求描述,这些类要遵从接口描述的统一格式进行定义.设计目的是解决多继承的问题 接口中所有方法时 public 不用现实声明 java.lang.Comparab ...

  3. C语言利用结构体数组实现学生成绩管理系统

    这篇文章主要为大家详细介绍了C语言利用结构体数组实现学生成绩管理系统,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 要求: 某班有最多不超过30人(具体人数由键盘输入) ...

  4. Entity Fremework以及Fluentapi学习

    一.Entity Framework的入门  我这里采用的方式是数据库自己建立  然后模型类自己建立 数据库上下文类自己建立的方式 目的在于弄懂原理 其他的数据库优先等方式这里就不写了  教程有很多. ...

  5. Statistical physics approaches to the complex Earth system(相关系统建模理念方法的摘要)

    本文翻译自"Statistical physics approaches to the complex Earth system",其虽然是针对复杂地球系统的统计物理方法的综述,但 ...

  6. Spark Shuffle机制详细源码解析

    Shuffle过程主要分为Shuffle write和Shuffle read两个阶段,2.0版本之后hash shuffle被删除,只保留sort shuffle,下面结合代码分析: 1.Shuff ...

  7. spring-cloud-config 多服务共享公共配置的解决方案总结,太全了!

    问题描述 我们公司的项目是基于SpringCloud开发的微服务,用到了Spring-Cloud-Config作为微服务统一的配置中心,可以将散落在各个服务的配置进行统一配置管理. 虽然配置中心将各个 ...

  8. 使用GitHub API上传文件及GitHub做图床

    本文介绍GitHub API基础及上传文件到仓库API,并应用API将GitHub作为图床 GitHub API官方页面 GitHub API版本 当前版本为v3,官方推荐在请求头中显示添加版本标识. ...

  9. docker生产——容器通信

    简介 在接触docker的第一天起,大家应该就知道:docker容器使用沙箱机制,相互之间没有接口,一般情况下内部访问通过IP+端口.本地容器默认分配的IP极易发生变化,所以靠IP+端口访问的方式缺失 ...

  10. java的for循环中遇到异常抛出后继续循环执行

    @Testpublic void loopTryCatchTest() throws Exception { Map<String, Object> a = new HashMap(); ...