背景
最近寫了一個Django在windows上運行,但是用的vbs命令,導致在后臺運行的時候,必須用戶登錄才可以運行,還有就是登錄之后,有其他進程可能被干掉。
Set ws = CreateObject("Wscript.Shell")
ws.run "cmd /c D:\xxd\run.bat",vbhide
` bat 內(nèi)容
C:\Python37\python3.exe manage.py runserver 0.0.0.0:8000 >> console.log
第二種創(chuàng)建task的方式,也是只能是用戶登錄后才可以,不是service級別的,不能開機就運行。
第三種就是用sc創(chuàng)建服務來運行, 這個沒有試。
后面可以從windows遷移到linux也可以運行的話,用Apache httpd來運行,是非常不錯的
準備
環(huán)境準備
python3.7
mysql5~8
還有apache -httpd
mod_wsgi
保證python和apache都是統(tǒng)一的,都是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
配置
創(chuàng)建工程,搭建mysql環(huán)境,以及怎么啟動。可以參考
https://www.djangoproject.com/start/
重點是講下標題的用 apache和mod_wsgi來部署django。
什么是mod_wsgi鄭州人流醫(yī)院 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, 并設置一個環(huán)境變量
key: MOD_WSGI_APACHE_ROOTDIR
value: C:\wamp64\bin\apache\apache\
創(chuàng)建一個virtualHost啟動文件,根據(jù)自己的修改工程名字和路徑
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, 如果執(zhí)行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
另外有需要云服務器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。
分享文章:Django用Apache和mod_wsgi部署-創(chuàng)新互聯(lián)
標題鏈接:http://sd-ha.com/article16/cdeggg.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站制作、Google、網(wǎng)站內(nèi)鏈、網(wǎng)站設計、定制網(wǎng)站、域名注冊
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容