由於客戶的服務器是windows端,所以采用了apache server來部署,同時查了網上很多資料,apache暫時不支持asgi啟動,所以就用了uvicorn來啟動asgi。
以下是配置的一些重點步驟,前提是django可以正常啟動。
Apache部署
1.打開conf/httpd.conf,編輯下列配置,測試apache
ServerRoot "E:\httpd-2.4.33-Win64-VC15\Apache24" # 解壓后的文件夾
……
Listen 127.0.0.1:8080 #監聽端口號
……
ServerName 127.0.0.1:8080
……
DocumentRoot "E:\httpd-2.4.33-Win64-VC15\Apache24\htdocs" #對應apche文件夾下的htdocs文件夾,以下同
<Directory "E:\httpd-2.4.33-Win64-VC15\Apache24\htdocs">
……
ScriptAlias /cgi-bin/ ""E:\httpd-2.4.33-Win64-VC15\Apache24\cgi-bin"
……
<Directory "E:\httpd-2.4.33-Win64-VC15\Apache24\cgi-bin">
AllowOverride None
Options None
Require all granted
</Directory>
2.下載安裝mod_wsgi:http://www.lfd.uci.edu/~gohlke/pythonlibs/
下載完成之后進入命令行進行安裝,然后輸入 mod_wsgi-express module-config
LoadFile "d:/python36/python36.dll"
LoadModule wsgi_module "d:/python36/lib/site-packages/mod_wsgi/server/mod_wsgi.cp36-win_amd64.pyd"
WSGIPythonHome "d:/python36"
3.重新編輯conf/httpd.conf進行編輯
LoadFile "d:/python36/python36.dll"
LoadModule wsgi_module "d:/python36/lib/site-packages/mod_wsgi/server/mod_wsgi.cp36-win_amd64.pyd"
WSGIPythonHome "d:/python36"
指定項目的wsgi.py配置文件路徑,這個py文件是在你的Django項目中
WSGIScriptAlias / d:/picture/picture/wsgi.py
指定項目目錄,即你的Django項目路徑
WSGIPythonPath d:/picture
<Directory d:/picture/picture>
<Files wsgi.py>
Require all granted
</Files>
</Directory>
進入 bin 目錄下啟動httpd.exe 文件,編輯,然后通過瀏覽器訪問 127.0.0.1:8080
uvicorn 安裝
pip install uvicorn
使用方法:將lib庫中的asyncio.py add_reader方法中方法體改為pass
運行命令 uvicorn project_name.asgi:application