记一波windows配置apache+django+uvicorn+asgi
由于客户的服务器是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