Django Windows+IIS+wfastcgi环境下部署
教程基于 windows 10专业版+python3.6+iis+wfastcgi 之上部署django2.2的,同样适用于windows server2012服务器和windows7及以上的windows操作系统。
环境准备
1.python及其虚拟环境
django依赖于python解释器环境。安装步骤略。可参考https://www.cnblogs.com/wcwnina/p/9069783.html(根据实际情况,也可以不装虚拟环境)。
2.安装iis服务器(含cgi)
打开【控制面板】->【程序和功能】,点开左侧的【启用或关闭windows功能】,启用iis,一定要包含cgi。
在浏览器地址输入localhost访问iis测试,如果出现以下页面,表示安装成功。
3.拷贝项目文件、安装依赖库
首先,部署生产环境要关闭调试模式,修改settings文件:
debug = false # 关闭调试 allowed_hosts = ['127.0.0.1'] # 指定能访问网站的主机ip
建议在服务器中新建文件夹,将上传的项目文件和虚拟环境放在同一文件夹里。进入虚拟环境,批量安装所有依赖库:
pip install -r requirements.txt
留意:执行以上命令的前提是,用命令"pip freeze > requirements.txt"把项目环境的依赖库信息导出到requirements.txt文件里。
如果使用的是mysql数据库,请自行安装mysql和导入数据,这里就不说明。
4.安装wfastcgi应用服务器
进入虚拟环境,pip安装之,如图。
启动wfastcgi:
wfastcgi-enable
如上图,启动成功之后,它会把python路径和wfastcgi的路径显示出来,我们需要把这个路径复制出来,保存好,后边用得着!
e:\djblog\vpy_myblog\scripts\python.exe|e:\djblog\vpy_myblog\lib\site-packages\wfastcgi.py
注意:上面的路径,是由python解释器的路径和“|”以及“wfastcgi.py”文件路径组成。
配置iis服务器
通过【控制面板】->【管理工具】打开iis管理器。
1.添加网站
2.web配置文件
在项目根目录下新建"web.config"配置文件,复制粘贴以下内容。
<?xml version="1.0" encoding="utf-8"?> <configuration> <system.webserver> <handlers> <add name="python fastcgi" path="*" verb="*" modules="fastcgimodule" scriptprocessor="<path to python>\python.exe|<path to python>\lib\site-packages\wfastcgi.py" 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 app>" /> <add key="django_settings_module" value="<django app>.settings" /> </appsettings> </configuration>
修改配置文件:
3.添加静态文件虚拟目录
右键添加虚拟目录,如图。
添加虚拟目录时,别名与你的settings里设置的一致,比如"static",物理路径就是静态资源的实际目录。
在static目录下新建一个"web.config"文件,然后写入下面的内容,保存即可无须修改。
<?xml version="1.0" encoding="utf-8"?> <configuration> <system.webserver> <!-- this configuration overrides the fastcgi handler to let iis serve the static files --> <handlers> <clear/> <add name="staticfile" path="*" verb="*" modules="staticfilemodule" resourcetype="file" requireaccess="read" /> </handlers> </system.webserver> </configuration>
至此部署基本完成。重启iis,在浏览器里输入http://127.0.0.1,就能访问网站。
常见问题
1.如果访问iis出现如下错误
出现这样的情况是因为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
2.有时候访问页面,或者单独访问网站后台出现400错误
这个时候可能是因为没有给网站权限的原因。我们打开iis,找到网站,右键,编辑权限,给iis用户添加修改和写入权限。就能正常访问。
3.静态文件显示异常
在settings.py里添加static_root配置,指定收集静态文件路径,如:
static_root = os.path.join(base_dir, 'static')
进入虚拟环境,输入以下命令进行收集静态文件:
python manage.py collectstatic
收集完成之后,刷新页面,显示正常。
至此,转载请注明出处。
上一篇: django异常--数据库同步
下一篇: 类的组合
推荐阅读
-
win10下ASP.NET Core部署环境搭建步骤
-
ubuntu16.4下用jexus部署ASP.NET Core环境
-
4种Windows系统下Laravel框架的开发环境安装及部署方法详解
-
在Linux系统上部署Apache+Python+Django+MySQL环境
-
Linux下将Python的Django项目部署到Apache服务器
-
nuxt项目在windows环境下安装部署
-
Python环境Django+uwsgi+nginx的部署
-
详解Django+Uwsgi+Nginx的生产环境部署
-
详解Django+Uwsgi+Nginx 实现生产环境部署
-
阿里云服务器CentOS 6.3下快速安装部署 LAMP 、vsftpd 环境的方法