Django用Apache和mod_wsgi部署
admin
2023-06-29 13:03:38
0次

  背景

  最近写了一个Django在windows上运行,但是用的vbs命令,导致在后台运行的时候,必须用户登录才可以运行,还有就是登录之后,有其他进程可能被干掉。

  Set ws = CreateObject("Wscript.Shell")

  ws.run "cmd /c D:\xxd\run.bat",vbhide

  ` bat 内容

  C:\Python37\python3.exe manage.py runserver 0.0.0.0:8000 >> console.log

  第二种创建task的方式,也是只能是用户登录后才可以,不是service级别的,不能开机就运行。

  第三种就是用sc创建服务来运行, 这个没有试。

  后面可以从windows迁移到linux也可以运行的话,用Apache httpd来运行,是非常不错的

  准备

  环境准备

  python3.7

  mysql5~8

  还有apache -httpd

  mod_wsgi

  保证python和apache都是统一的,都是32位或者都是64位。

  下面是我的pip requirement list

  asn1crypto==0.24.0

  cffi==1.11.5

  cryptography==2.3

  Django==2.0.7

  idna==2.7

  mod-wsgi==4.5.24+ap24vc14

  pip==19.3.1

  pycparser==2.18

  PyMySQL==0.9.2

  pytz==2018.5

  setuptools==41.6.0

  six==1.11.0

  wheel==0.31.1

  配置

  创建工程,搭建mysql环境,以及怎么启动。可以参考

  https://www.djangoproject.com/start/

  重点是讲下标题的用 apache和mod_wsgi来部署django。

  什么是mod_wsgi郑州人流医院 http://www.zzzy120.com/

  mod_wsgi is an Apache HTTP Server module by Graham Dumpleton that provides a WSGI compliant interface for hosting Python based web applications under Apache. As of version 4.5.3, mod_wsgi supports Python 2 and 3 (starting from 2.6 and 3.2).

  安装apahce, 并设置一个环境变量

  key: MOD_WSGI_APACHE_ROOTDIR

  value: C:\wamp64\bin\apache\apache\

  创建一个virtualHost启动文件,根据自己的修改工程名字和路径

  import os

  import sys

  import site

  # Add the site-packages of the chosen virtualenv to work with

  site.addsitedir('C:/Python37/Lib/site-packages')

  # Add the app's directory to the PYTHONPATH

  sys.path.append('D:/xxd/Assetlog')

  sys.path.append('D:/xxd/Assetlog/AssetLog')

  os.environ['DJANGO_SETTINGS_MODULE'] = 'AssetLog.settings'

  os.environ.setdefault("DJANGO_SETTINGS_MODULE", "AssetLog.settings")

  from django.core.wsgi import get_wsgi_application

  application = get_wsgi_application()

  安装mod_wdgi

  pip3 install mod_wsgi

  或者直接用pip3 install whl文件

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

  # https://www.lfd.uci.edu/~gohlke/pythonlibs/#mod_wsgi 这里下载

  配置apache和mod_wsgi

  查看apache配置信息mod_wsgi-express module-config, 如果执行mod_wsgi-express失败,在python安装目录里面找C:\Python37\Scripts,我的在这个目录下。

  LoadFile "c:/python37/python37.dll"

  LoadModule wsgi_module "c:/python37/lib/site-packages/mod_wsgi/server/mod_wsgi.cp37-win32.pyd"

  WSGIPythonHome "c:/python37"

  把这个信息追加到apache配置文件httpd.conf的最后。

  最后在配置文件

  下面配置apache虚拟主机,如果有多个django工程,可以添加多个。配置文件在conf\extra\httpd_vhosts.conf里面

  ServerName localhost

  WSGIPassAuthorization On

  ErrorLog "logs/asset.error.log"

  CustomLog "logs/asset.access.log" combined

  WSGIScriptAlias / "D:/xxd/Assetlog/AssetLog/wsgi_win.py"

  Require all granted

  Alias /static "D:/xxd/Assetlog/static"

  Require all granted



相关内容

热门资讯

空调连续工作多久需要停机休息 空调连续工作的时间取决于多个因素,包括空调的型号、功率、使用环境和维护情况等。一般来说,空调可以连续...
空调哪个符号是除湿的 空调除湿功能通常用一个水滴形状的符号表示。不同品牌和型号的空调遥控器可能会有所差异,但一般来说,除湿...
格力空调多长时间加一次氟利昂 1、一般情况下,空调对氟利昂的使用量是非常小的,所以在空调使用了四年左右的时候再考虑加也没问题。2、...
空调用多长时间需要加氟一次 一般情况下是五年。当出现以下这几种情况时,空调才需要加氟。1、空调的室内机和室外机各有两个接口,当接...
格调生活·C标思享荟:卡萨帝在... 9月12日的郑州龙湖金融岛,夜风轻拂,灯光璀璨。“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑...
品牌价值破千亿、高端份额持续领... 9月12日,“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑州站”在郑州龙湖金融岛举办。2026...
空调主板坏了修800还是换新的 空调主板坏了是修还是换新,需要考虑多个因素,以下是一些建议:1. 维修成本:如果维修费用较低,比如 ...
空调开多久需要休息多长时间 问题:空调开多久需要休息多长时间回答:1、在使用空调的过程中,一般空调开7~8个小时左右需要休息2~...
中央空调多长时间清洗一次 1、一般空调开机前清洗一次即可,空调开机中间时段再清洗一次,空调关机时清洗一次,这样比较合理。2、空...
中央空调氟利昂多久加一次 看空调制热和制冷程度,很多人的观点认为氟利昂必须一年放一次,其实这个观点是错误的,理解上面有点偏差,...