如何在IIS服务器部署Django CMS?解决settings文件缺失问题
Django CMS 部署到 IIS(wfastcgi 方案)
1. 解决「找不到 settings 文件」的问题
你提到的.settings是误解——Django的核心配置文件是settings.py,默认位于项目根目录的同名子文件夹中。比如你用djangocms startproject mysite创建项目,路径是mysite/mysite/settings.py。
配置DJANGO_SETTINGS_MODULE时,值应为[项目名].settings(比如mysite.settings),对应这个文件的Python模块路径。
2. 完整部署步骤
2.1 服务器端项目准备
- 将本地运行正常的Django CMS项目复制到IIS服务器的目录(比如
C:\inetpub\wwwroot\djangocms_proj)。 - 激活项目的虚拟环境,执行
pip install -r requirements.txt同步所有依赖(包括Django、Django CMS、wfastcgi)。 - 运行数据库迁移:
python manage.py migrate - 在
settings.py中配置STATIC_ROOT(比如STATIC_ROOT = BASE_DIR / 'staticfiles'),然后执行python manage.py collectstatic收集静态资源。
2.2 IIS 站点基础配置
- 打开IIS管理器,新建网站:
- 设置站点名称,物理路径选项目根目录(不是子文件夹)
- 绑定域名/IP与端口
- 关联的应用程序池设置为无托管代码(关键,避免.NET托管冲突)
2.3 配置 FastCGI 映射
- 进入站点的「处理程序映射」,点击「添加模块映射」:
- 请求路径:
* - 模块:选择
FastCgiModule - 可执行文件:填写虚拟环境python.exe和wfastcgi.py的组合路径,格式为:
C:\path\to\venv\Scripts\python.exe|C:\path\to\venv\Lib\site-packages\wfastcgi.py - 名称:自定义(比如
Django CMS FastCGI)
- 请求路径:
- 点击「请求限制」,取消勾选「仅当请求映射到下列内容时才调用处理程序」,确认保存。
2.4 配置 FastCGI 环境变量
- 进入站点的「配置编辑器」,选择
system.webServer/fastCgi,找到刚添加的FastCGI条目,点击「编辑」:- 添加以下三个环境变量:
DJANGO_SETTINGS_MODULE:值为[项目名].settings(比如mysite.settings)PYTHONPATH:值为项目根目录的绝对路径(比如C:\inetpub\wwwroot\djangocms_proj)WSGI_HANDLER:值为django.core.wsgi.get_wsgi_application()
- 添加以下三个环境变量:
2.5 权限配置
- 给项目根目录添加IIS应用程序池用户(格式为
IIS AppPool\[你的应用程序池名称])的读取、执行权限。 - 确保虚拟环境的
Scripts和Lib目录也有相同权限。
3. 测试与排错
- 重启IIS站点,访问绑定的地址,检查页面是否正常加载。
- 若出现500错误:
- 开启IIS的详细错误页,查看具体报错信息
- 检查
settings.py中的ALLOWED_HOSTS是否包含服务器的域名/IP(比如ALLOWED_HOSTS = ['your-domain.com', '192.168.1.100']) - 查看Windows事件日志的「应用程序」分类,定位权限或依赖问题
内容的提问来源于stack exchange,提问作者Frank Myat Thu
相关产品推荐
相关产品推荐

