Django用Apache和mod_wsgi部署-创新互联

背景

创新互联公司自2013年创立以来,是专业互联网技术服务公司,拥有项目成都做网站、成都网站设计网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元镇江做网站,已为上家服务,为镇江各地企业和个人服务,联系电话:18982081108

最近写了一个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

另外有需要云服务器可以了解下创新互联cdcxhl.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


当前标题:Django用Apache和mod_wsgi部署-创新互联
文章起源:http://azwzsj.com/article/cdeggg.html