Django用Apache和mod_wsgi部署

发布时间:2020-07-09 10:37:04 作者:ckllf
来源:网络 阅读:329

  背景

  最近写了一个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. mac配置 Django 1.7.1 +mod_wsgi 4
  2. Django部署

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

django he

上一篇:PHP数组键需要区分大小写吗

下一篇:使用linux的screen命令多重视窗管理程序

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》