栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

windows10+apache2.4+django 部署

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

windows10+apache2.4+django 部署

windows10+apache2.4+django 部署

部署过程中, 踩了蛮多坑 记录一下吧

环境介绍
  1. python 3.7
  2. apache 2.4.15
  3. django 2.1
  4. windows10
安装apache2.4

最新版的apache2.4 : httpd-2.4.51-win64-VS16

  1. 下载后解压
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-RAjoVHCY-1636795701400)(https://blog.bglb.work/img/1636788017309.png?x-oss-process=style/blog_img#pic_center ‘下载后解压’)]

  2. 将Apache24 文件夹复制到自己的安装路径
    这里我直接放到了C盘 C:/Apache24, 因为目前线上就是放在C盘 可能是为了方便装机吧
    先看看里面都有些什么东西吧

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qLo9UMqK-1636795701404)(https://blog.bglb.work/img/1636788463100.png?x-oss-process=style/blog_img#pic_center ‘apache 目录’)]

  1. 添加 apache 环境变量

APACHE_HOME=C:Apache24

PATH= %APACHE_HOME%; %APACHE_HOME%bin

环境变量直接添加到系统环境变量, 这里就不贴图了

  1. 安装到windows服务
# 安装
httpd -k install -n 服务名称
# 启动
1. httpd -k start [stop, restart]
# 或者
2. net start 服务名称

启动方法有很多 还可以打开 bin 目录下的 ApacheMonitor.exe 不过双击之后他不会弹出来, 会在右下角的托盘里面

然后 双击托盘图标 就可以打开 长这个样子

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rqg2JwQo-1636795701406)(https://blog.bglb.work/img/20211113155353.png?x-oss-process=style/blog_img)]

**如果启动过程中没有报错, 就可以打开浏览器, 访问一下 127.0.0.1 不出意外 就可以看到 It’s Work! **

到此为止, Apache 安装完成

部署Django
  1. 下载 mod_wsgi

    使用 pip 安装 mod_wsgi.whl文件, 使用 pip 多的话 应该知道

    为什么要安装呢? 具体我也不知道 类似于 linux 上的 uwsgi

    如果之前没有安装过, 照着做就行了,踩坑的话 多踩踩很有必要的

    **mod_wsgi下载地址: ** mod_wsgi下载

    打开上面的链接 搜索与你python 版本对应的

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KokSerzO-1636795701408)(https://blog.bglb.work/img/20211113161047.png?x-oss-process=style/blog_img)]

    这里要注意一下, 如果你使用 python 虚拟环境 部署django 的话 需要 在虚拟环境里面安装 (推荐使用虚拟环境)

    # 进入虚拟环境
    ...envscriptsactivate
    
    pip install 下载的mod_wsgi路径
    # 安装完之后 最好查看一下成功与否
    pip list | findStr "mod_wsgi"
    
  2. 修改Apache 默认配置文件 C:Apache24confhttpd.conf

    修改之前 在django 的虚拟环境里面 需要 运行一下 mod_wsgi-express module-config

    运行之后 会返回三条路径 像这样

    LoadFile "C:/Users/Administrator/AppData/Local/Programs/Python/Python37/python37.dll"
    LoadModule wsgi_module "e:/development/django_project/env/lib/site-packages/mod_wsgi/server/mod_wsgi.cp37-win_amd64.pyd"
    WSGIPythonHome "e:/development/django_project/env"
    

    一定要自己生成的, 不要用我的!

    把上面的路径 复制 到 apache 的配置文件中 并且 修改 Listen 和 ServerName

    ......
    Define SRVROOT "C:/Apache24"   
    ServerRoot "${SRVROOT}"
    ......
    
    #Listen 12.34.56.78:80
    # 这里我修改为9000 
    Listen 9000
    ......
    
    ServerName localhost:9000
    ......
    
    
    # 加载 mod_wsgi
    LoadFile "C:/Users/Administrator/AppData/Local/Programs/Python/Python37/python37.dll"
    LoadModule wsgi_module "e:/development/django_project/env/lib/site-packages/mod_wsgi/server/mod_wsgi.cp37-win_amd64.pyd"
    WSGIPythonHome "e:/development/django_project/env"
    
    # 设置工程路径
    WSGIPythonPath E:developmentdjango_project
    
    # 设置Django项目中的wsgi路径
    WSGIscriptAlias / E:developmentdjango_projectdjango_projectwsgi.py
    # 设置wsgi文件权限
    
        
            Require all granted
        
    
    
    # 设置静态文件路径 做路径映射
    Alias /assets E:developmentonlinedjango_projectstatic
    # 设置静态路径权限
    
        AllowOverride None  
        Options None  
        Require all granted  
    
    
  3. 重启Apache

    httpd -k resfart

    上面这条命令 运行之后没有任何提示

    net stop apache24

    net start apache24

    上面这两条 有相关提示 至少会告诉你 启动成功与否

    如果失败 就去 C:Apache24logs 目录 查看 相关的error日志

    好了 回到正题

    往往这个时候 如果不出意外的话 就应该出意外了!

    我的Apache在这里 无法启动, 日志如下:

    Fatal Python error: initfsencoding: unable to load the file system codec ModuleNotFoundError: No module named 'encodings'

    看到这个 感觉到很熟悉 估计是之前 折腾u盘的python 环境时见到过

    因为这个encdings 是python 自带的库 所以 我去本机python路径下查看了这个库的路径 并把它添加在了 系统环境变量里面

    但是 还是没能解决 最后 是找到了 这篇 window2008下,apache+mod_msgi+flask出现问题,请大侠帮忙瞧瞧

    他是 添加了 PYTHONHOMW 和 PYTHONPATH

    PYTHonHOME=“C:UsersAdministratorAppDataLocalProgramsPythonPython37”
    PYTHonPATH=“C:UsersAdministratorAppDataLocalProgramsPythonPython37Lib”

    添加完之后 需要重启机器

    不知道为什么??? 我尝试之后就可以启动了

部署结束

当时部署 遇到的问题 现在已经有点忘记了, 还是前天的事情, 脑子真的不行了

有时间 再尝试一下 apache 多站点部署

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/499434.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号