环境


  • 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的更多相关文章

  1. Nginx + FastCGI + Django在windows上部署及nginx常用命令

    一般应用都是部署在linux系统上,不会在windows上部署,emmm..所以有兴趣的就瞧瞧吧哈哈 nginx工作原理: nginx用于处理静态文件,动态部分经由fastcgi .scgi或uWSG ...

  2. 使用Gitblit 在windows 上部署你的Git Server

    Gitblit: 在windows 上部署你的Git Server 前言 之前在dudu的文章里看到过用bonobogit 部署在 IIS 7.5 上的Window 平台的git 服务器.学着部署使用 ...

  3. 在windows上部署使用Redis(摘录)

    下载Redis 在Redis的官网下载页上有各种各样的版本,我这次是在windows上部署的,要去GitHub上下载.目前的是2.8.12版的,直接解压,在\bin\release 目录下有个压缩包, ...

  4. 如何一步步在生产环境上部署django和vue

    本文由云+社区发表 本文主要讲述了如何一步步在生产环境上部署django和vue,操作系统默认为centos 说明:后文中出现的以下字符串均表示具体的路径或者名称,含义如下: DJANGO_DIR-- ...

  5. 在Windows上部署dubbo-admin(监控中心)

    在Windows上部署dubbo-admin(监控中心) 2018年11月12日 22:45:13 zzz_er 阅读数:1004 标签: dubbo 更多 个人分类: dubbo   版权声明:本文 ...

  6. 在windows上部署使用redis出现的问题及解决方法

    在windows上部署使用Redis出现问题的解决方法  原文链接:https://www.cnblogs.com/herry52/p/5938902.html 下载Redis 在Redis的官网下载 ...

  7. 在windows上部署使用Redis出现问题的解决方法

    下载Redis 在Redis的官网下载页上有各种各样的版本,我这次是在windows上部署的,要去GitHub上下载.目前的是2.8.12版的,直接解压,在\bin\release 目录下有个压缩包, ...

  8. mac与windows上部署使用Redis

    windows下Redis安装 在Redis的官网下载页上有各种各样的版本,由于redis官网不支持windows,但是我们伟大的windows家族还是召唤了一群小伙伴开发了win版的redis.要在 ...

  9. CentOS上部署Django+Nginx+Uwsgi环境

    在CentOS上部署Django+Nginx+Uwsgi环境 奇谭  2016-09-01 评论  Linux  python django nginx uwsgi VirtualEnv的作用:创建隔 ...

  10. 【转载】在windows上部署使用Redis

    下载Redis 在Redis的官网下载页上有各种各样的版本,我这次是在windows上部署的,要去GitHub上下载.目前的是2.8.12版的,直接解压,在\bin\release 目录下有个压缩包, ...

随机推荐

  1. @ConfigurationProperties 还能这样用

    在编写项目代码时,我们要求更灵活的配置,更好的模块化整合.在 Spring Boot 项目中,为满足以上要求,我们将大量的参数配置在 application.properties 或 applicat ...

  2. PTA数据结构和答案解析

    背景:期末数据结构复习题 绪论和线性表 判断题 The Fibonacci number sequence {F N } is defined as: F 0 =0, F 1 =1, F N =F N ...

  3. MES 与 PLC 的几种交互方式

    在 MES 开发领域,想要从 PLC 获取数据就必须要和 PLC 有信号交互.高效准确的获取 PLC 数据一直是优秀 MES 系统开发的目标之一.初涉相关系统开发的工程师往往不能很好的理解 PLC 和 ...

  4. MDI子窗口+事件与委托的一个例程

    1首先,新建WinForm的.NetFramWork的工程并添加2个Form: 2设置 Form1为MDI主窗口: [属性]-- 将以上属性改为 True; 另外,也可以采用代码形式: this.Is ...

  5. C#-WPF初学

    1.新建一个WPF的应用: 2.拖拽控件并布局好: [小技巧]选中控件,点击"回形针"即可让该控件跟随窗口自动调整大小: 3.编写代码: 主程序代码如下: namespace Wp ...

  6. 适用于PyTorch 2.0.0的Ubuntu 22.04上CUDA v11.8和cuDNN 8.7安装指南

    将下面内容保存为install.bash,直接用shell执行一把梭解决 #!/bin/bash ### steps #### # verify the system has a cuda-capab ...

  7. tp 模型hasOne、hasMany、belongsTo详解

    首先,这3个的大致中文意思:hasOne:有一个,加上主谓语应该是 ,A 有一个 BhasMany:有很多,A 有很多 BbelongsTo:属于, A 属于 B这里我们准备3张表来理解他们的关系:u ...

  8. THINKPHP的CURD是什么意思?

    thinkphp的CURD是什么意思? 解释如下: 增:C    Create   在thinkphp的代码里面对应的方法是add(); 改:U   Update  在thinkphp的代码里面对应的 ...

  9. 第一章 FFmpeg初体验:在Centos7.9下编译FFmpeg!

    FFmpeg 官方网站:https://ffmpeg.org//download.html#build-linux 1.下载源码 1.1 第一种方式,官网上面下载源码包: 截至目前最新的版本是7.0. ...

  10. redis环境的安装

    Redis环境的安装(源码安装),主要分为单机安装与集群安装,无论是单机安装还是集群安装,Redis本身的依赖是必须要有的,本文所采用的Redis版本是redis-5.0.3,所需要的依赖如下: cp ...