目录
- 1. 系统环境
- 1.1 安装 IIS
- 1.2 安装 CGI
- 2. 应用程序环境
- 2.1 安装 Python3
- 2.2 安装 Nginx
- 2.3 安装 Git
- 2.4 安装 MySQL
- 3. 项目部署
- 3.1 IIS
- 3.2 添加网站
- 3.3 配置文件
- 3.4 给静态资源添加虚拟目录
- 3.5 Django管理样式丢失
- 3.6 完成部署
- 4. 可能出现的问题
- 4.1 HTTP 错误 500
- 4.2 处理程序映射
- 4.3 FastCGI 设置
- 4.4 自定义服务器端口
- 4.5 Django 错误 Cryptography
1. 系统环境
1.1 安装 IIS
(1)打开『服务器管理器』
(2)选择『添加角色功能』
(3)『服务器选择』-> 『从服务器池中选择服务器』-> 『下一步』
(4)『服务器角色』-> 勾选『Web 服务器(IIS)』-> 『下一步』
(5)『安装』
1.2 安装 CGI
(1)打开『服务器管理器』
(2)选择『添加角色功能』
(3)『服务器角色』-> 『Web服务器(IIS)』-> 『应用程序开发』-> 『CGI』-> 『下一步』
(4)『安装』
2. 应用程序环境
2.1 安装 Python3
(1)安装 Python3.exe
(2)安装 wfastcgi
pip install wfastcgi
启动 wfastcgi:wfastcgi-enable
保存路径,待用:c:\workprograms\python\python38\python.exe|c:\workprograms\python\python38\lib\site-packages\wfastcgi.py
(3) 安装项目所需要导入的包
pip install requirements.txt
(4)修改 Django 源码:Python安装路径\Lib\site-packages\django\db\backends\mysql\base.py
(5)添加静态文件目录
settings.py
STATIC_ROOT = os.path.join(BASE_DIR, 'static')
2.2 安装 Nginx
下载 Nginx。
将 Nginx 目录直接放在 C: 盘下。
运行 Nginx.exe。
具体配置,修改配置文件 ./conf/nginx.conf
Windows Server 中 Nginx 启动、停止以及重启命令。
nginx在windows中进行启动时的命令是start nginx nginx在windows中进行停止时的命令是nginx -s stop(不保存相关信息) nginx在windows中进行停止时的命令是nginx -s quit(保存相关信息) nginx在windows中进行重启时的命令是nginx -s reload(保存相关信息)
2.3 安装 Git
2.4 安装 MySQL
3. 部署项目
3.1 IIS
『服务器管理器』-> 『IIS』-> 选择服务器,右键选择『Internet Information Services(IIS)管理器』
3.2 添加网站
网站名称:名称
物理路径:项目所在路径
3.3 配置文件
在项目跟目录添加 web.config 配置文件。
xml version="1.0" encoding="UTF-8"?> <configuration> <system.webServer> <handlers> <add name="DjangoWebHandler" path="*" verb="*" modules="FastCgiModule" scriptProcessor="(保存路径)" resourceType="Unspecified" /> <add name="Python FastCGI" path="*" verb="*" modules="FastCgiModule" scriptProcessor="(保存路径)" resourceType="Unspecified" requireAccess="Script" /> handlers> system.webServer> <appSettings> <add key="WSGI_HANDLER" value="django.core.wsgi.get_wsgi_application()" /> <add key="PYTHONPATH" value="(Path to Django Project)" /> <add key="DJANGO_SETTINGS_MODULE" value="(DjangoProkect).settings" /> appSettings> configuration>
3.4 给静态资源添加虚拟目录
别名:static
物理路径:项目路径\static
在 static 里添加配置文件:web.config
xml version="1.0" encoding="UTF-8"?> <configuration> <system.webServer> <handlers> <clear/> <add name="StaticFile" path="*" verb="*" modules="StaticFileModule" resourceType="File" requireAccess="Read" /> handlers> system.webServer> configuration>
3.5 Django管理样式丢失
在 settings.py 里添加:
STATIC_ROOT = os.path.join(BASE_DIR, 'static')
CMD下运行以下命令:
python manage.py collectstatic
3.6 完成部署
4. 可能出现的问题
4.1 HTTP 错误 500.19 Internal Server Error
出现这样的情况是因为IIS7之后的版本都采用了更安全的 web.config 管理机制,默认情况下会锁住配置项不允许更改。我们把它解锁了就OK。
打开CMD,在里面依次输入下面两个命令:
%windir%\system32\inetsrv\appcmd unlock config -section:system.webServer/handlers
%windir%\system32\inetsrv\appcmd unlock config -section:system.webServer/modules
4.2 处理程序映射
选择『网站』-> 『处理程序映射』
-> 『添加模块映射』
请求路径:*
模块:FastCgiModule
可执行文件:(保存路径)
名称:DjangoWebHandler
-> 『请求限制』:取消勾选。
4.3 FastCGI 设置
『FastCGI设置』->
鼠标双击选择 ->
添加『环境变量』:
1. Name: WSGI_HANDLER
Value:django.core.wsgi.get_wsgi_application()
2. Name:PYTHONPATH
Value:(项目目录)
3. Name:DJANGO_SETTINGS_MODULE
Value:(项目名称.settings)
4.4 自定义服务器端口
除了 80 端口,自定义其他端口,可能无法访问。(使用 Nginx 反向代理 80 端口,也需要新建规则)
『控制面板』-> 『系统安全』-> 『Windows Defender 防火墙』-> 『高级设置』-> 『入站规则』 -> 『新建规则』
规则类型:端口
协议和端口:
协议:TCP
端口:特定本地端口:8080
操作:允许连接(只允许安全连接)
配置文件:勾选(域、专用、计算机)
名称:自定义名称(端口8080)
描述:(可选)
4.5 crytography is required for sha256_password or caching_sha2_password Django错误
pip install cryptography
4.6 Windows 下 Nginx 作为服务开机启动
(1)创建批处理文件
nginx.bat
cd C:\nginx-1.16.1(Nginx所在目录)
start nginx
nginx -s reload
(2)创建任务计划
cmd:shell:startup
把批处理文件 nginx.bat 放入此文件夹即可。
4.7 站点文件夹权限设置
项目跟目录 -> 『属性』->『安全』->『编辑』->『添加』->添加『IIS_IUSERS』(可以通过『高级』->『立即查找』找到)->设置权限『完全控制』