windows环境发布如此简单(Nginx+Apache+Django)

公司windows服务器用的还是蛮少的, 发布代码时避免采坑, 以我们公司用的环境为例(nginx+apache+django)

以前都是白嫖, 现在也把自己总结的东西拿出来, 互惠互利, 共同进步.

apache配置

到了发布上线环节相比python相关的环境就不必多说了, 长话短说, 我们直接进入重点:

  1. 下载Apache.
  2. 下载mod_wsgi.
  • 这里需要注意一下对应的版本好, 例如我用的这个包mod_wsgi‑4.5.19+ap24vc14‑cp36‑cp36m‑win_amd64.whl, 简单的描述一下就是apache24+python3.6+win64, 大家根据自己的运行环境, 对照下载就ok
  1. 把刚才下载好的mod_wsgi‑4.5.19+ap24vc14‑cp36‑cp36m‑win_amd64.whl放在python环境的目录下Scripts文件夹, 我的是在C:\Python\Python36\Scripts

  2. 还是在刚才的目录

    pip install "C:\Python\Python36\Scripts\apache24+python3.6+win64"
    
  3. 再运行 mod_wsgi-express module-config, 会得到三行命令, 我直接给粘出来, 下面会用到的

    LoadFile "c:/python/python36/python36.dll"
    LoadModule wsgi_module "c:/python/python36/Lib/site-packages/mod_wsgi/server/mod_wsgi.cp36-win_amd64.pyd"
    WSGIPythonHome "c:/python/python36"
    
  4. 所有的准备工作做完了, 我们来配置appache, 打开httpd.conf

    Listen 需要放开的端口, 默认80, 多个回车分割
    Listen 5000
    Listen 8080
    
    ServerName 如果么有注册DNS配一下就可以
    ServerName localhost:8888
    
    # python wsgi
    LoadFile "c:/python/python36/python36.dll"
    LoadModule wsgi_module "c:/python/python36/Lib/site-packages/mod_wsgi/server/mod_wsgi.cp36-	win_amd64.pyd"
    WSGIPythonHome "c:/python/python36"
    
    划重点, 这三行重点解释一下, 需要配置的同学沾过去改路径就行
    LoadFile python的动态链接库, 安装环境后直接找对应的路径就行
    LoadModule wsgi_module 我们刚才下载的wsgi模块路径
    WSGIPythonHome wsgi模块的家目录
    
    LoadModule wsgi_module modules/mod_wsgi.so
    #等同于上面的三行代码,这样做更简单,解压后找到mod_wsgi.pyd修改后缀为.so即可
    #目的就是要使项目跑起来, 我们在本地都是需要python manage.py runserver, 现在manager没有, 需要wsgi(Python Web Server Gateway Interface), 见名知意, 就不多做赘述了
    
    #Django项目的路径
    #WSGIPythonHome E:/www/python/pinsmed.webapi/pinsmed_webapi
    WSGIPythonHome python项目路径, 多个项目用逗号分隔就好
    
  5. 现在还需要配置一下虚拟主机, 打开httpd-vhosts.conf文件

    # 下面就是具体哪个项目用哪个端口了
    # 虚拟主机路径
    Include conf/extra/httpd-vhosts.conf
    
    <VirtualHost _default_:8080>
    
    # wsgi文件的路径
    WSGIScriptAlias / "E:/www/python/pinsmed.webapi/pinsmed_webapi/pinsmed_webapi/wsgi.py"
    
    ErrorLog "logs/python-8080-error.log"
    CustomLog "logs/python-8080-access.log" 
    
    # 项目路径, 到子应用
    <Directory "E:/www/python/pinsmed.webapi/pinsmed_webapi">
        Require all granted
    </Directory>
    
    </VirtualHost>
    # 简单的解释一下, 现在的我这个python项目占用的是8080端口, 指定了appche相应的log路径, 粘贴过去改项目路径和端口号就可以用
    
    

项目发布嘛, 就是一堆配置文件, 配置好了基本上就不用变了. 这个是我两年前搭的环境, 有些地方已经记不清了, 如果有同学在配置的过程中有问题可以留言吐槽.

  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值