织梦本身是基于 PHP + MySQL 开发的,因此在 IIS 上的配置核心是 配置 PHP 环境 和 配置 IIS 以正确解析 PHP,还需要处理织梦特有的 URL 静态化(伪静态)规则。

整个过程可以分为以下几个关键步骤:
第一步:安装必要组件
在配置任何文件之前,请确保您的 Windows Server 和 IIS 已经安装了以下组件:
- IIS (Internet Information Services): 作为 Web 服务器。
- URL Rewrite Module: 这是实现伪静态的核心模块,由微软官方提供,免费且强大,没有它,织梦的静态化功能将无法在 IIS 上实现。
- PHP: 织梦的运行环境,建议使用稳定版本,如 PHP 7.4 或 8.0(请参考织梦官方对 PHP 版本的兼容性说明)。
- 下载地址: https://windows.php.net/download/ (选择 Thread Safe 版本的 ZIP 包)
- MySQL 或 MariaDB: 织梦的数据存储。
第二步:配置 PHP 环境
这是最基础也是最关键的一步。
-
解压 PHP: 将下载的 PHP ZIP 包解压到一个固定目录,
C:\php。
(图片来源网络,侵删) -
配置
php.ini:-
进入
C:\php目录,找到php.ini-development文件,将其重命名为php.ini。 -
用记事本或其他文本编辑器打开
php.ini,修改或取消注释以下几项关键配置:; 开启扩展目录 extension_dir = "ext" ; 开启必要的织梦所需扩展 (去掉前面的分号 ;) extension=curl extension=fileinfo extension=gd extension=mysqli extension=openssl extension=pdo_mysql extension=zip ; 设置时区为中国 date.timezone = PRC ; 上传文件相关配置 upload_max_filesize = 8M post_max_size = 8M
-
-
将 PHP 添加到系统环境变量 (可选但推荐):
(图片来源网络,侵删)- 将
C:\php目录添加到系统的Path环境变量中,这样可以在命令行下直接使用php命令。
- 将
-
配置 IIS 处理程序映射:
- 打开 IIS 管理器。
- 在左侧选择您的网站。
- 双击 “处理程序映射”。
- 在右侧操作栏中点击 “添加模块映射...”。
- 填写以下信息:
- 请求路径:
*.php - 模块:
FastCgiModule - 可执行文件: 点击右侧的 "..." 浏览,选择
C:\php\php-cgi.exe的路径。 - 名称:
FastCgi-php(可以自定义)
- 请求路径:
- 点击“确定”,如果提示添加 FastCgi 模块,请点击“是”。
完成这一步后,您的 IIS 已经可以解析 PHP 文件了,可以创建一个 info.php 文件(内容为 <?php phpinfo(); ?>)来测试。
第三步:配置织梦数据库并上传文件
- 创建数据库: 在 MySQL 或 MariaDB 中,为您的织梦站点创建一个新的数据库和一个有全部权限的用户。
- 上传织梦程序: 将下载的织梦程序包解压,并通过 FTP 或 IIS 管理器将所有文件上传到您的网站根目录(
C:\inetpub\wwwroot\下的某个子文件夹)。 - 运行安装向导: 在浏览器中访问
http://您的域名/install/,然后按照提示进行安装,在数据库配置步骤,填入您刚刚创建的数据库名、用户名和密码。
第四步:配置 URL 重写(伪静态)- 核心部分
这是在 IIS 上配置织梦最关键的一步,目的是将形如 /a/3.html 的 URL 请求,重写为服务器能识别的 /plus/view.php?arcid=3 格式。
使用织梦后台自动生成(推荐)
这是最简单、最不容易出错的方法。
- 登录您的织梦后台。
- 进入 “系统” -> “系统基本参数”。
- 在左侧菜单选择 “核心设置”。
- 找到 “是否使用伪静态” 选项,将其设置为 “是”。
- 向下滚动,找到 “伪静态规则” 文本框,这里提供了不同服务器环境的规则,请选择 “IIS 伪静态” 的规则并复制。
- 点击页面底部的 “保存” 按钮。
- 织梦会尝试自动将规则写入到网站根目录下的
web.config文件中,如果成功,则无需手动操作,如果失败,请进入方法二。
手动创建 web.config 文件
如果自动生成失败,或者您想手动控制,可以按照以下步骤操作。
- 在您的网站根目录下,创建一个名为
web.config的文件。 - 复制并粘贴到该文件中,这是织梦官方提供的、适用于 IIS 7/7.5/8/8.5/10 的标准伪静态规则。
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="织梦CMS Rewrite" stopProcessing="true">
<match url="^(.*)$" />
<conditions logicalGrouping="MatchAll">
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
</conditions>
<action type="Rewrite" url="index.php/{R:1}" />
</rule>
<!-- 针对栏目、文章等页面的特定规则,让规则更精确 -->
<rule name="Category and Article" stopProcessing="true">
<match url="^(.*)/a/([0-9]+).html$" />
<action type="Rewrite" url="/plus/view.php?arcid={R:2}" />
</rule>
<rule name="Category" stopProcessing="true">
<match url="^(.*)/list/([0-9]+).html$" />
<action type="Rewrite" url="/plus/list.php?tid={R:2}" />
</rule>
<rule name="Search" stopProcessing="true">
<match url="^(.*)/search.html$" />
<action type="Rewrite" url="/plus/search.php" />
</rule>
<rule name="Tags" stopProcessing="true">
<match url="^(.*)/tags/([^-]+).html$" />
<action type="Rewrite" url="/plus/tags.php?/{R:2}" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
说明:
- 上面提供的规则是一个比较完整的版本,包含了常用页面的重写。
- 您也可以使用织梦后台给出的最简规则:
<?xml version="1.0" encoding="UTF-8"?> <configuration> <system.webServer> <rewrite> <rules> <rule name="dedecms" stopProcessing="true"> <match url="^(.*)$" /> <conditions logicalGrouping="MatchAll"> <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" /> <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" /> </conditions> <action type="Rewrite" url="index.php/{R:1}" /> </rule> </rules> </rewrite> </system.webServer> </configuration>
- 保存
web.config文件并将其上传到网站根目录,覆盖掉可能存在的旧文件。
第五步:设置目录权限
为了确保织梦后台的“文件管理”和“图片集”等功能可以正常使用,需要给特定目录赋予写入权限。
- 在 IIS 管理器中,选择您的网站。
- 在 “功能视图” 下,双击 “配置编辑器”。
- 从 “节” 下拉菜单中选择 “system.webServer/security/authorization”。
- 点击右侧的“...”按钮,进入“授权”设置。
- 点击 “添加允许条目...”。
- 操作: 选择 "读取" 和 "写入"。
- 角色: 输入
IUSR(这是 IIS 默认的匿名用户账户)。 - 点击“确定”,这会给整个网站目录添加写入权限。
更安全的做法:只给特定目录添加写入权限。
- 在 IIS 管理器中,直接在右侧的 “编辑权限...” 中,为以下目录设置
IUSR用户的“读取和执行”、“列出文件夹内容”、“读取”和“写入”权限:/data(存放配置文件和缓存)/uploads(用户上传的文件)/a(专题目录)/special(专题目录)/templets(模板目录,如果模板需要动态生成)/plus(附件目录)
第六步:常见问题排查
-
问题: 404 Not Found,访问栏目或文章页面时提示“无法找到该页”。
- 排查:
- URL Rewrite 模块是否安装?去 "服务器管理器" -> "功能" 中查看。
web.config文件是否存在且内容正确?检查规则是否为 IIS 版本。- 处理程序映射是否正确配置?确保
*.php已经指向FastCgiModule。 - IIS 的“默认文档”中是否包含
index.php?如果没有,添加进去。
- 排查:
-
问题: 后台无法上传图片或文件,提示“没有权限”。
- 排查: 目录权限 设置是否正确,确保
IUSR用户对/uploads等目录有写入权限。
- 排查: 目录权限 设置是否正确,确保
-
问题: 首页可以访问,但点击任何链接都跳转到首页。
- 排查: 这通常是
web.config中的伪静态规则有误,导致所有请求都被重定向到index.php,请仔细检查web.config文件中的<rule>部分,确保规则正确。
- 排查: 这通常是
-
问题: 页面出现大量乱码或空白。
- 排查: 检查
php.ini文件中的extension_dir和date.timezone设置是否正确,确保mysqli等必要扩展已开启。
- 排查: 检查
IIS 配置织梦的要点可以归结为:
- 环境: IIS + URL Rewrite 模块 + PHP。
- 核心: 正确配置 FastCGI 处理程序映射 以解析 PHP。
- 关键: 创建正确的
web.config文件以实现伪静态。 - 保障: 设置正确的 目录权限 以支持文件上传和缓存。
- 辅助: 利用织梦后台的 “系统基本参数” 进行配置和生成规则。
按照以上步骤一步步操作,就能成功在 IIS 服务器上部署并运行织梦网站。
