Python Windows Apache部署Django项目运行环境

news2024/11/16 17:57:10

目录

一、安装Apache服务器

1、在官网http://httpd.apache.org/download.cgi或网上搜索下载zip压缩包

2、Apache相关配置

3、创建Apache服务器

解决报错AH00369: Failed to open the Windows service manager, perhaps you forgot to log in as Adminstrator?

4、启动apache服务

如果要卸载Apache服务器

二、安装mod_wsgi

1、下载mod_wsgi.whl文件

2、导入mod_wsgi库

三、配置httpd.conf文件,启动django项目

1、在Apache目录下的conf下的httpd.conf文件末尾,加上安装wsgi模块之后返回的两到三行

2、在Apache目录下的conf下的httpd.conf文件末尾加上项目相关配置

3、重启Apache服务

四、启用MPM模块配置文件


一、安装Apache服务器

1、在官网http://httpd.apache.org/download.cgi或网上搜索下载zip压缩包

(1)依次按照下面图片找到版本打开网站,

(2)下载并解压压缩文件

选个自己喜欢的版本下载就可以了,我下载的VS16,然后会得到一个压缩文件,

 

解压之后,会得到一个文件夹:我们的目标Apache24,

解压后文件夹里的Apache24文件夹就是apache服务器文件,将Apache24移动到其他目录,无需安装。

至此,Apache就下载好了。

2、Apache相关配置

(1)进入Apache24文件夹下的conf目录中找到httpd.conf文件进行服务器配置,找到httpd.conf文件,使用notepod++或者记事本打开,做如下修改:

 如下图配置httpd.conf文件,将SRVROOT改为实际的Apache24目录路径。

(2)修改监听端口,即以后服务器的ip和端口号,

(3)ServerName重新自定义,我这里与设置的访问ip一样

(4)将Apache下的bin目录添加到系统环境变量,

 打开“环境变量”,编辑系统变量path,新建环境变量,

3、创建Apache服务器

电脑左下角点击windows图标,输入cmd,以管理员权限打开cmd窗口,输入下条命令,

httpd -k install

注意:在win11 安装apache的时候会报错:

解决报错AH00369: Failed to open the Windows service manager, perhaps you forgot to log in as Adminstrator?

原因:这是因为没有用管理员身份运行所导致的,所以只要以管理员身份运行即可。

解决方法:以管理员身份运行方式打开cmd就可以正常安装Apache了。

如图所示,即代表服务器安装成功了。

4、启动apache服务

打开浏览器,在地址栏输入 127.0.0.1:8000 显示如下页面表示成功:

服务器启动成功后,可以按在浏览器中输入的ip地址进行访问。

apache常用命令:服务器的启动,停止,重启

启动、重启、停止指定服务的名称:后面各自加上-n "服务器名称"

例如:启动指定服务的名称httpd –k start -n "服务器名称"

1.启动、重启、停止:以管理员身份打开cmd,进入到D:\ruanjian\Apache24\bin,执行以下命令启动apache

httpd -k start
httpd -k stop
httpd -k restart

 

如果要卸载Apache服务器

(1)打开windows系统服务,找到Apache服务,手动停止之后如下图所示,

(2)在cmd命令框中输入:

sc delete Apache2.4

卸载成功后会有提示,出现successfully installed说明服务创建成功。如下图所示,

二、安装mod_wsgi

1、下载mod_wsgi.whl文件

在.http://www.lfd.uci.edu/~gohlke/pythonlibs/#mod_wsgi网站下载mod_wsgi.whl文件

注:whl版本要和Apache和python的版本相一致

比如,安装得是Apache24v9,python2.7,则我应该下载whl的版本中ap24v9,cp27的那个版本。

进入https://www.lfd.uci.edu/~gohlke/pythonlibs/#mod_wsgi 下载相应版本mod_wsgi Python的插件。ap24cv24指apache版本,比如apache24, cp39指python3.9,win_adm64指操作系统为64位。

2、导入mod_wsgi库

(1)将下载好的.whl文件放入python安装目录下的Scripts目录中,

 

(2)把此文件复制到虚拟环境的Scrit目录中之后,

然后激活虚拟环境,

cd my_env
my_env\Scripts\activate

在该文件夹下启动cmd窗口,cd到此目录中,输入下条命令,

pip install "mod_wsgi-4.9.2-cp39-cp39-win_amd64.whl"

安装成功后会有提示,如下图,接着在该cmd窗口中输入:

mod_wsgi-express module-config

返回:
LoadFile "C:/Users/yantz/AppData/Local/Programs/Python/Python39/python39.dll"
LoadModule wsgi_module "D:/my/python-pycharm/python-envs/venv2/lib/site-packages/mod_wsgi/server/mod_wsgi.cp39-win_amd64.pyd"
WSGIPythonHome "D:/my/python-pycharm/python-envs/venv2"

注意:有的电脑如果安装了Anaconda或者Miniconda等其他python插件,会返回三行,我这里返回两行,记录下返回的数据。

这三行一定要记下来,后面配置最重要的就是它了

安装wsgi模块之后,返回的两到三行,复制粘贴。

三、配置httpd.conf文件,启动django项目

1、在Apache目录下的conf下的httpd.conf文件末尾,加上安装wsgi模块之后返回的两到三行

(1)找到到Apache目录下的conf下的httpd.conf文件,在D:\exe文件\httpd-2.4.55-o111s-x64-vs16\Apache24\conf中找到httpd.conf文件的最末尾添加如下代码,具体解释看注释,实际情况根据自己的项目位置更改,

注意:不知道为什么有时候返回的第一行末尾是mod_wsgiNone,需要将mod_wsgiNone改为mod_wsgi.pyd即可。

2、在Apache目录下的conf下的httpd.conf文件末尾加上项目相关配置

(1)项目的目录结构如下图所示:

 (2)根据模板,在Apache目录下的conf下的httpd.conf文件末尾加上项目相关配置,

模板:
#设置django工程中的wsgi路径
WSGIScriptAlias / F:\BTI\BTI\wsgi.py
 
#设置django工程路径
WSGIPythonPath F:\BTI
 
#设置wsgi的文件夹路径
<Directory F:\BTI\BTI>
   <Files wsgi.py>
       Require all granted
    </Files>
</Directory>
 
#设置静态文件路径
#Alias /static F:\BTI\static
<Directory F:\BTI\static>  
   AllowOverride None  
   Options None  
   Require all granted  
</Directory>

---------------------------------------------------------------------------------
我的

#设置django工程中的wsgi路径
WSGIScriptAlias / D:\my\nhc\code\djangoProject002\djangoProject001\wsgi.py
 
#设置django工程路径
WSGIPythonPath D:\my\nhc\code\djangoProject002
 
#设置wsgi的文件夹路径
<Directory D:\my\nhc\code\djangoProject002\djangoProject001>
   <Files wsgi.py>
       Require all granted
    </Files>
</Directory>
 
#设置静态文件路径
#Alias /static D:\my\nhc\code\djangoProject002\static
<Directory D:\my\nhc\code\djangoProject002\static>  
   AllowOverride None  
   Options None  
   Require all granted  
</Directory>

写好之后,保存文件

3、重启Apache服务

(1)以管理员身份打开cmd,进入到D:\exe文件\httpd-2.4.55-o111s-x64-vs16\Apache24\bin,执行启动命令启动apache。

httpd -k start

(2)启动Apache服务后,浏览器输入:192.168.1.167:8080,就可以看到django项目啦,比如我的,

 就说明配置成功了。

四、启用MPM模块配置文件

1、MPM模块是专门针对Windows操作系统而优化设计的,在Apace安装目录下的conf下的httpd.conf文件中启用该配置文件,

找到Include conf/extra/httpd-mpm.conf,去掉前面的注释符号"#"。

# Server-pool management (MPM specific)
Include conf/extra/httpd-mpm.conf (去掉前面的注释符号"#")

2、在Apace安装目录下的conf下,extra目录中的配置文件httpd-mpm.conf中更改MPM模块的相关配置,

找到mpm_winnt_module,由于mpm_winnt模块只会创建1个子进程,因此这里对单个子进程的参数设置就相当于对整个Apache的参数设置。

  • ThreadsPerChild: 线程数量,线程数量越大,越能够更好的处理更多并发连接。默认值是150,推荐设置:小型网站=1000 中型网站=1000~2000 大型网站=2000~3500;
  • MaxConnectionsPerChild:累计最多处理到多少个请求,超过该值会自动重启Apache,设置为0,则没有限制,但可能会照成内存泄漏。小型网站=10000 中型或大型网站=20000~100000,若设置为大于0时,最好为ThreadsPerChild的100倍;
<IfModule mpm_winnt_module>
ThreadsPerChild      1500
MaxRequestsPerChild    0
</IfModule>

ok。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/187081.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【每周Java技术】2023.01.26 周四 到 01.29 周日

文章目录一、01.26 周四 大年初五1.1&#xff09;Python的一道算法题目1.1.1) 题目1.1.2) 解答1.1.3) 知识点一、01.26 周四 大年初五 1.1&#xff09;Python的一道算法题目 1.1.1) 题目 2437. 有效时间的数目 给你一个长度为 5 的字符串 time &#xff0c;表示一个电子时钟…

产线工控设备安全经验分享

工控设备安全现状 工业控制系统是支撑国民经济的重要设施&#xff0c;是工业领域的神经中枢。现在工业控制系统已经广泛应用于电力、通信、化工、交通、航天等工业领域&#xff0c;支撑起国计民生的关键基础设施。 随着传统的工业转型&#xff0c;数字化、网络化和智能化的工…

机器学习算法竞赛实战--3,数据探索

数据挖掘是竞赛的核心模块之一&#xff0c;贯彻竞赛始终也是很多竞赛胜利的关键那么数据探索又是什么呢&#xff1f;可以解决哪些问题&#xff1f;首先应该明确3点&#xff0c;即如何确保自己准备好竞赛使用的算法模型如何为数据集选择最合适的算法如何定义可用于算法模型的特征…

安装DevStack稳定版本zed

STEP1: 创建stack用户(一定要&#xff01;) sudo useradd -s /bin/bash -d /opt/stack -m stack sudo chmod x /opt/stack echo "stack ALL(ALL) NOPASSWD: ALL" | sudo tee /etc/sudoers.d/stack sudo -u stack -i //用stack用户登陆 STEP2: git clone devsta…

SAP中物料价格改变导致的库存价值变动业务分析

基于审计的需求要看看物料在标准成本价格变更前后的库存成本变化情况。找了下资料&#xff0c;需要用到 CKMPCSEARCH这个事务&#xff0c;相当于是一个用于价格修改凭证查询的事务。但试了一下在本公司的系统中并没有从搜索到其菜单位置。 尝试直接输入Tcode后&#xff0c;是可…

CSRF 伪造跨域请求

文章目录一、什么是伪造跨域请求二、攻击方式三、防御措施1、检查Referer字段2、添加校验token一、什么是伪造跨域请求 伪造跨域请求&#xff08;英语&#xff1a;Cross-site request forgery&#xff09;&#xff0c;通常缩写为 CSRF&#xff0c; 是一种挟制用户在当前已登录…

IntelliJ IDEA 2021.2(Community Edition)安装阿里编码规约插件,亲测有效

1.背景阿里巴巴java开发手册不断完善并出了很多版本到目前2023年1月截止&#xff0c;已经出了黄山版&#xff0c;在文章最后有参考资料可根据需要下载&#xff1b;随着企业对项目质量的要求&#xff0c;对开发代码也有了更高的要求和规范&#xff0c;借助阿里巴巴编码规约插件&…

redis geo 没有迁移手工插入数据

1、docker ps |grep redis2、docker exec -it qinghai-sc-xining-redis-single/eadd4cc4eefe bin\sh --进入redis容器[rootlocalhost ~]# [rootlocalhost ~]# [rootlocalhost ~]# [rootlocalhost ~]# docker ps|grep rediseadd4cc4eefe redis "docker-entrypoint.s…"…

python 气体扩散,在 Python中用数值模拟研究气体扩散

在 Python 中&#xff0c;可以使用数值模拟来研究气体扩散。 模拟气体扩散需要解决两个问题&#xff1a;流体动力学方程&#xff08;如 Navier-Stokes 方程&#xff09;和扩散方程。 文章目录Python 代码模拟气体扩散计算并显示气体浓度的均值和标准差研究气体扩展的高级方法Py…

Word控件Spire.Doc 【Table】教程(7): 如何在C#中用表格替换word文档中的文本

Spire.Doc for .NET 是一款专门对 Word 文档进行操作的 .NET 类库。在于帮助开发人员无需安装 Microsoft Word情况下&#xff0c;轻松快捷高效地创建、编辑、转换和打印 Microsoft Word 文档。拥有近10年专业开发经验Spire系列办公文档开发工具&#xff0c;专注于创建、编辑、转…

【金三银四系列】之Java基础面试(2023版)

Java基础面试题 一: Java基础 1: 简单说说Java中对象如何拷贝? 一、浅拷贝clone&#xff08;&#xff09;如果对象中的所有数据域都是数值或者基本类型&#xff0c;使用clone&#xff08;&#xff09;即可满足需求&#xff0c;如&#xff1a;Person p new Person();Person…

30天自制操作系统(Mac版)读书笔记(day9)

day7和day8都是鼠标和32位的操作&#xff0c;看起来都是理论&#xff0c;先略过。 检测内存块数量 使用中断去检测内存&#xff0c;把这个当成一个函数调用吧。这里面di寄存器给的地址就是结果存在的内存位置。 ComputeMemory:mov ebx, 0mov di, MemChkBuf .loop:mov e…

linux安装vnc服务

1、 如操作系统是最小化安装&#xff0c;那么需要安装GNOME桌面&#xff0c;安装参考&#xff1a;https://blog.csdn.net/carefree2005/article/details/119417234 2、 安装vnc-server yum -y install tigervnc-server3、 复制配置文件模板&#xff0c;将无关的内容清除 cat…

图灵 | 计算机器与智能

【“计算机器与智能”选自《Mind》&#xff0c;no.2236&#xff08;1950.10&#xff09;&#xff0c;P433-460。牛津大学出版社允许重印。刘西瑞、王汉琦 翻译】1. 模仿游戏我建议来考虑这个问题 &#xff1a;“机器能够思维吗&#xff1f;” 这可以从定义 “机 器” 和 “思维…

Docker数据目录迁移

背景在CentOS中安装了Docker&#xff0c;默认Docker Root目录是/var/lib/docker。但是该目录磁盘空间很有限&#xff0c;后期很容易导致系统盘满了&#xff0c;所以考虑迁移到更大磁盘目录下&#xff0c;比如下面的/fsc目录下。解决在Docker官方文档https://docs.docker.com/co…

excel查找定位:INDEX函数——精确制导导弹

一、认识INDEX函数Index函数&#xff1a;在给定的单元格区域中&#xff0c;返回特定行列交叉处单元格的值或引用。函数结构&#xff1a;index&#xff08;单元格区域,行号,列号&#xff09;区域&#xff0c;行号&#xff0c;列号&#xff0c;很像通过坐标瞄准打靶呀。就像下面动…

高阶数据结构之AVL树

文章目录回顾二叉搜索树AVL树在AVL树中插入新节点AVL树中的各种旋转右单旋左单旋左右双旋右左双旋验证是否是AVL树验证是否是二叉搜索树验证是否是平衡树总结AVL树回顾二叉搜索树 二叉搜索树的一些特点回顾&#xff1a; &#xff08;1)每一个节点左树上所有节点的值都是…

vue多实例的骚操作,主要用于解决组件全局弹窗面板的问题。。。

1.问题背景 主要是自己写了一个组件库&#xff0c;其中涉及到弹出面板的组件遇到兼容性问题。 举个例子&#xff0c; 日期选择组件例如 DaterPicker组件 大概的代码如下&#xff08;省略了细节实现&#xff09; <template> <label>日期</label> <input …

一文详解PHP用流方式实现下载文件(附代码示例)

一淘模板给大家带来了关于PHP的相关知识&#xff0c;其中主要介绍了在PHP中怎么使用流方式来实现下载文件的&#xff0c;下面一起来看一下&#xff0c;希望对大家有帮助。 PHP 中使用流方式下载文件 在 PHP 中&#xff0c;可以使用 fopen() 函数打开一个远程文件&#xff0c;并…

Unity使用本地UPM包的实现方式

实现1&#xff1a;项目根路径实现优点&#xff1a;1.不必有额外操作2.本地包随项目版控&#xff0c;不会丢失包产生错误3.按需升级包缺点&#xff1a;1.包的修改随项目版控&#xff0c;增加日志冗余2.不利于包全局管理建议使用场景多人合作&#xff0c;开发底子较弱的团队。实现…