目录[-]
系统环境及软件:
Windows Server 2008 R2 Enterprise Service Pack 1
Python 2.7.14
pip 9.0.1
Django 1.11.5
可正常运行的网站。
一、wFastCGI的安装
使用下面直接安装:
pip install wfastcgi
安装完成后启用:
wfastcgi-enable
二、Django网站配置
1、设置独立的wfastcgi.py文件
在python的Lib\site-packages目录下,找到wfastcgi.py文件,并将其复制到你的django项目根目录(manage.py同目录)下。建议各个django项目使用自己根目录下的wfastcgi.py文件。
2、配置网站web.config文件
scriptProcessor、WSGI_HANDLER、WSGI_HANDLER和DJANGO_SETTINGS_MODULE是必需配置项。 scriptProcessor设置了python.exe和wfastcgi.py的位置,注意两个变量之间的“ | ”;WSGI_HANDLER声明get_wsgi_application()函数,和下面代码中相同设置即可;WSGI_HANDLER设置项目位置;DJANGO_SETTINGS_MODULE是Django项目的设置文件位置,根据项目设置。 注意:web.config的环境变量也可在IIS中部署网站时设置。
<?xml version="1.0" encoding="UTF-8"?> <configuration> <system.webServer> <handlers> <add name="LotHandler" path="*" verb="*" modules="FastCgiModule" scriptProcessor="C:\Python27\python.exe|D:\WebCodes\lottery\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="D:\WebCodes\lottery" /> <add key="WSGI_LOG" value="C:\Logs\lottery.log" /> <add key="DJANGO_SETTINGS_MODULE" value="lottery.settings" /> </appSettings> </configuration>
3、静态文件设置
3.1、静态文件的收集
在settings.py 中设置好收集文件夹名称 'collected_static‘(可任意设置)
STATIC_ROOT = os.path.join(BASE_DIR, 'collected_static')
切换到项目根目录运行收集命令,将所有静态文件(包括但不限于CSS、JS等)收集到collected_static中。命令会自动收集所有项目应用中的静态文件。
python manage.py collectstatic
3.2、web.config配置
在collected_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部署
1、网站参数设置
进入IIS管理器,添加网站并设置相关参数
2、FastCGI设置
在IIS管理器中,打开FastCGI设置 :

进入FastCGI设置页面,添加新的应用,设置python应用和wFastCGI的路径;然后设置环境变量,设置Name和Value。如果在第二步中的根目录web.config文件中已经设置,环境变量可以不用设置,但需要添加应用程序。
2、添加虚拟目录
将收集的静态文件设置为虚拟目录,网站就可以加载静态文件了。
更新应用程序池,重启网站,访问页面。
参考文献:
1、https://pypi.python.org/pypi/wfastcgi
2、https://stackoverflow.com/questions/32312590/how-to-fetch-static-css-files-with-django-on-iis
