在 windows 上部署 django
环境
- Django 4.1.7
- python 3.11.2
- Apache 2.4.46
1:安装配置 Apache
1.1:下载 Apache
Apache官方下载链接
按照系统版本选择对应的,以下是64位操作系统的选择

1.2:解压 Apache
下载完成后,解压到你要部署服务器的文件夹。建议在你要部署服务器的电脑磁盘下建立一个英文目录,如E:\peng\PythonProjects\Apache24,目录结构如下图所示。

1.3:配置 httpd.conf 文件
打开conf文件夹内的 httpd.conf 文件,进行如下配置。
配置服务器根目录(如下图)

Define SRVROOT "E:/peng/PythonProjects/Apache24"
设置端口(注意端口不要冲突)
查看端口占用的方法:
打开cmd.exe,输入以下命令(右边对应进程pid)
netstat -aon
设置服务器域名

ServerName 127.0.0.1:8001
配置完成,效果图如下

2:安装mod_wsgi
2.1:mod_wsgi概念
官网定义如下
mod_wsgi包实现了一个简单易用的Apache模块,它可以 托管任何支持 Python WSGI 规范的 Python Web 应用程序。该软件包可以通过两种不同的方式安装 根据您的要求。
第一种是作为传统的Apache模块安装到现有的 阿帕奇安装。按照此路径,您将需要手动 配置 Apache 以加载mod_wsgi并将 Web 请求传递给您的 WSGI应用程序。
安装 modwsgi 的第二种方法是使用Python 命令。这会构建并安装modwsgi到您的 Python 中。 安装或虚拟环境。该计划将 然后可用,允许您mod_wsgi使用来自 具有自动生成配置的命令行。这 方法不需要您执行任何 Apache 配置 你自己。
pipmod_wsgi-express
这两种安装类型都适用于生产部署。后者 如果希望使用 Apache和modwsgi在Docker容器中托管您的WSGI应用程序。 在开发过程中使用modwsgi也是更好的选择 您的Python Web应用程序,因为您将能够直接从 您的终端。
mod_wsgi-express
2.2:下载mod_wsgi
下载链接
下载适合自己的mod_wsgi模块,比如我的python版本为3.11.2,电脑为64位,就选择cp311,win_amd64那一项。

2.3:安装mod_wsgi
打开cmd,进入到下载下来的mod_wsgi的路径
输入以下命令
pip install mod_wsgi-4.9.2-cp311-cp311-win_amd64.whl
使用以下命令查看相关信息
mod_wsgi-express module-config

3: 配置django项目
迁移django
将django项目复制一份到apache同级目录下


配置httpd.conf,加入django
在httpd.conf文件末尾加上如图配置

# Django配置
# 添加mod_wsgi.so模块
LoadFile "E:/peng/software/python3112/python311.dll" # python dll文件
LoadModule wsgi_module "E:/peng/software/python3112/Lib/site-packages/mod_wsgi/server/mod_wsgi.cp311-win_amd64.pyd" # mod_wsgi.pyd文件
WSGIPythonHome "E:/peng/software/python3112" # python目录
WSGIApplicationGroup %{GLOBAL}
# 指定django项目的wsgi.py配置文件路径
WSGIScriptAlias / E:/peng/PythonProjects/ShareAndTalk/ShareAndTalk/wsgi.py
# 配置django路径
WSGIPythonPath E:/peng/PythonProjects/ShareAndTalk
<Directory E:/peng/PythonProjects/ShareAndTalk>
<Files wsgi.py>
Require all granted
</Files>
</Directory>
# 配置静态文件
Alias /static E:/peng/PythonProjects/ShareAndTalk/static
<Directory E:/peng/PythonProjects/ShareAndTalk/static>
AllowOverride None
Options None
Require all granted
</Directory>
然后对settings.py做如下更改
import os
# --snip--
DEBUG = False # 先前为True
ALLOWED_HOSTS = ['*']
# --snip--
STATICFILES_DIRS = (
os.path.join(BASE_DIR, '/static/'),
)
STATIC_ROOT = os.path.join(BASE_DIR,'static')
配置完成后,在django的manage.py目录下,输入以下命令收集静态文件
py manage.py collectstatic
4: 注册运行Apache服务
在E:\peng\PythonProjects\Apache24\bin目录下(Apache\bin目录)
打开cmd,运行以下命令
安装服务:
httpd.exe -k install -n "服务名"
卸载服务:
httpd.exe -k uninstall -n "服务名"
到此就全部完成了,祝贺祝贺
常见坑点,几个小时卡住的教训
django的mdeditor需要额外配置静态路径,如下

<IfModule alias_module>
# --snip--
Alias /链接路径/ 物理路径 # 物理路径千万别忘了最后的斜杠/
在 windows 上部署 django的更多相关文章
- Nginx + FastCGI + Django在windows上部署及nginx常用命令
一般应用都是部署在linux系统上,不会在windows上部署,emmm..所以有兴趣的就瞧瞧吧哈哈 nginx工作原理: nginx用于处理静态文件,动态部分经由fastcgi .scgi或uWSG ...
- 使用Gitblit 在windows 上部署你的Git Server
Gitblit: 在windows 上部署你的Git Server 前言 之前在dudu的文章里看到过用bonobogit 部署在 IIS 7.5 上的Window 平台的git 服务器.学着部署使用 ...
- 在windows上部署使用Redis(摘录)
下载Redis 在Redis的官网下载页上有各种各样的版本,我这次是在windows上部署的,要去GitHub上下载.目前的是2.8.12版的,直接解压,在\bin\release 目录下有个压缩包, ...
- 如何一步步在生产环境上部署django和vue
本文由云+社区发表 本文主要讲述了如何一步步在生产环境上部署django和vue,操作系统默认为centos 说明:后文中出现的以下字符串均表示具体的路径或者名称,含义如下: DJANGO_DIR-- ...
- 在Windows上部署dubbo-admin(监控中心)
在Windows上部署dubbo-admin(监控中心) 2018年11月12日 22:45:13 zzz_er 阅读数:1004 标签: dubbo 更多 个人分类: dubbo 版权声明:本文 ...
- 在windows上部署使用redis出现的问题及解决方法
在windows上部署使用Redis出现问题的解决方法 原文链接:https://www.cnblogs.com/herry52/p/5938902.html 下载Redis 在Redis的官网下载 ...
- 在windows上部署使用Redis出现问题的解决方法
下载Redis 在Redis的官网下载页上有各种各样的版本,我这次是在windows上部署的,要去GitHub上下载.目前的是2.8.12版的,直接解压,在\bin\release 目录下有个压缩包, ...
- mac与windows上部署使用Redis
windows下Redis安装 在Redis的官网下载页上有各种各样的版本,由于redis官网不支持windows,但是我们伟大的windows家族还是召唤了一群小伙伴开发了win版的redis.要在 ...
- CentOS上部署Django+Nginx+Uwsgi环境
在CentOS上部署Django+Nginx+Uwsgi环境 奇谭 2016-09-01 评论 Linux python django nginx uwsgi VirtualEnv的作用:创建隔 ...
- 【转载】在windows上部署使用Redis
下载Redis 在Redis的官网下载页上有各种各样的版本,我这次是在windows上部署的,要去GitHub上下载.目前的是2.8.12版的,直接解压,在\bin\release 目录下有个压缩包, ...
随机推荐
- Aspose 导出Excel时 隐藏指定列
Worksheet ws = wb.Worksheets[0]; ws.Cells.HideColumn(0); //隐藏Excel第一列
- 使用urllib3实现http请求
Urllib3是一个功能强大,条理清晰,用于HTTP客户端的Python库,许多Python的原生系统已经开始使用urllib3. 1.发送请求 import urllib3 # 创建实例 http ...
- Java-泛型,枚举,注解
1 泛型类 package demo; public class FanXingLei { public static void main(String[] args) { // TODO 自动生成的 ...
- UE4 WebUI使用指南2-通信
前面一篇WebUI的文章讲述的WebUI插件的下载,开启,在UE中创建,加载网页等. 本文继续讲述通过WebUI,UE和网页实现双向通信的实现思路. 一点说明 由于WebUI 使用的浏览器内核并不是最 ...
- [oeasy]python0110 屏幕点阵字体_3x5_5x7_雅达利字库
动视 桥牌 想用 7 x 5 描述黑红梅方 还是比较难的 添加图片注释,不超过 140 字(可选) 而且最下面的动视logo是 修改后的字体 还挺有动感 这个时代 图像库 和 ...
- AT_abc182_d 题解
洛谷链接&Atcoder 链接 本篇题解为此题较简单做法及较少码量,并且码风优良,请放心阅读. 题目简述 从数轴的原点开始向正方向走. 第一次向前走 \(a_1\) 步,第二次向前走 \(a_ ...
- 题解:CF1971C Clock and Strings
题解:CF1971C Clock and Strings 题意 在上图的一个圆中,给予你四个点 \(a,b,c,d\),判断线段 \(ab\) 与线段 \(cd\) 是否相交. 思路 先设置一个字符串 ...
- C语言指针知识总结
指针 定义 指针是一个变量,存储另一个变量的内存地址,它允许直接访问和操作内存中的数据,使得程序能够以更灵活和高效的方式处理数据和内存. 获取变量地址:使用取地址符 &. 访问地址上的数据:使 ...
- 关于Pure中使用RnadomInteger问题的BUG
每一次连线都会造成返回值不一样相当于重新调用了一次,所以返回值需要新建变量存储来使用而不是直接用它拉两次线 下面是错误写法: 正确写法:
- python项目位置迁移后,虚拟环境无法使用
一.虚拟环境无法使用问题 修改虚拟环境目录/pyvenv.cfg文件中的路径 建议以下配置全部替换一下 修改虚拟环境目录/scripts/activate.bat文件中** VIRTUAL_ENV参数 ...