Windows下Django部署,使用Apache+mod_wsgi

1 篇文章 0 订阅
1 篇文章 0 订阅

Windows下Django部署,使用Apache+mod_wsgi

部署环境

Python 3.7
Django 2.1.7
window10 64位

Apache下载与配置

官网下载

Apache官网下载页面
找到对应版本下载

解压与修改

对下载后的httpd-2.4.41-win64-VS16.zip文件解压
在这里插入图片描述进入Apache24\conf目录下,对文件httpd.conf进行修改(此处推荐使用Notepad++编译器)。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

修改的具体内容

将第37行的 Define SRVROOT 修改为目录路径,作者的路径为:“C:\Apache\httpd-2.4.41-win64-VS16\Apache24”。(可参考)保存并退出
源文件路径
修改后的路径

返回bin目录

在这里插入图片描述
打开文件httpd.exe
在这里插入图片描述
运行apache
在这里插入图片描述
当弹出的黑窗口出现AH00558: httpd.exe: Could not reliably determine the server’s fully qualified domain name, using fe80::bcbf:15f3:42ea:db3b. Set the ‘ServerName’ directive globally to suppress this message的字样时,表示启动成功。

如果出现闪退的情况

出现闪退,在当前位置启动cmd,在cmd中启动httpd.exe,看报错信息。

当遇到(OS 10048)通常每个套接字地址(协议/网络地址/端口)只允许使用一次 443的问题

作者这里遇到上述的问题,说明端口443被占用,此时进入C:\Apache\httpd-2.4.41-win64-VS16\Apache24\conf\extra文件夹,选择httpd-ssl.conf文件。
在这里插入图片描述
将端口号由443改为442(或其他端口),然后再次访问。
在这里插入图片描述

网页测试

打开网页,输入127.0.0.1,或localhost,或ipv4的地址,当网页出现It’s Work!时表示启动成功。(我这里是对默认的网页做了修改所以有下面的连接,可忽略)
在这里插入图片描述

配置Django

安装mod_wsgi

进入mod_wsgi下载界面,下载相应的版本。(由于页面过长,可以直接在页面ctrl+f,快速查找)ap24cv24指apache版本,比如apache24, cp37指python3.7,win_adm64指操作系统为64位。
在这里插入图片描述
下载之后,将下载的whl文件移动到Python的Script文件夹下
在这里插入图片描述
在这里插入图片描述
在窗口地址栏直接输入cmd,回车
在这里插入图片描述运行下一行命令

pip3 install "mod_wsgi-4.5.24+ap24vc14-cp37-cp37m-win_amd64.whl"

在这里插入图片描述
然后在输入

mod_wsgi-express module-config

![在这里插入图片描述](https://img-blog.csdnimg.cn/20191020145730844.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2FzNjMwMzg5MDg4,size_16,color_FFFFFF,t_70
至此安装成功,将红框中的三行内容保存下来。

配置django项目

再次打开httpd.conf文件
在这里插入图片描述
在最末尾添加如下代码,实际情况根据自己的项目更改

# 1.安装完成mod_wsgi后出现的三行代码,直接复制过来
LoadFile "c:/python/python37.dll"
LoadModule wsgi_module "c:/python/lib/site-packages/mod_wsgi/server/mod_wsgi.cp37-win_amd64.pyd"
WSGIPythonHome "c:/python"
# 2.设置工程项目的wsgi路径(后面会具体讲解django项目中的wsgi. py文件的位置)
WSGIScriptAlias / C:\代码\website\untitled5\until_wsgi\wsgi.py
# 3.设置工程项目的路径(即Django项目的路径)
WSGIPythonPath C:\代码\website\untitled5
# 4.设置wsgi路径(同第2条)
<Directory C:\代码\website\untitled5\until_wsgi>
    <Files wsgi.py>
        Require all granted
    </Files>
</Directory>
# 设置静态文件路径
Alias /static C:\代码\website\untitled5\static
<Directory C:\代码\website\untitled5\static>  
    AllowOverride None  
    Options None  
    Require all granted  
</Directory> 

在这里插入图片描述

Django项目中的更改

在Django文件目录中创建until_wsgi(Python文件夹,名字无所谓),将主程序的settings.py文件复制一份到until_wsgi文件夹中,并创建一个新的py文件,起名wsgi.py,
此时获取wsgi.py的路径,即为上面的工程项目的wsgi路径
在这里插入图片描述

wsgi.py文件中的更改

将下列代码复制到wsgi文件下,其中’until_wsgi.settings’,即为复制到until_wsgi文件下的settings

# 修改blog01/wsgi.py文件

import os

from django.core.wsgi import get_wsgi_application

os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'until_wsgi.settings')     # 修改为复制新的settings文件名

application = get_wsgi_application()

在这里插入图片描述

静态文件的设置

在Django项目中的settings.py文件最后加入如下代码:

STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, 'static')

Django收集静态文件命令:

python manage.py collectstatic

合并Apache与Django的端口

1.输入主机IP地址不能访问,请修改C:\Apache\httpd-2.4.41-win64-VS16\Apache24\confhttpd.conf文件
Listen 127.0.0.0:80为Listen 192.168.31.155:80。还是不行就将端口改为同Django一直的端口,作者这里为8000。
在这里插入图片描述

2.出现“Invalid HTTP_HOST header: ‘192.168.1.111:8000’. You may need to add ‘192.168.1.111’ to ALLOWED_HOSTS”错误请修改Django的setting文件中ALLOWED_HOSTS = [’*’]

3.写好后保存文件,关闭httpd.exe,再重新打开或回到服务器管理器,找到apache2.4重启服务(记住要重启服务)

测试

最后当出现我们熟悉的Django界面是,说明配置成功
在这里插入图片描述

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值