在Windows服务器环境中使用IIS(Internet Information Services)搭建WordPress网站是一个常见的需求,虽然传统上WordPress更常与LAMP(Linux、Apache、MySQL、PHP)或LNMP(Linux、Nginx、MySQL、PHP)环境结合,但通过IIS配合特定的组件和配置,同样可以稳定运行,以下是详细的搭建步骤和注意事项,帮助您顺利完成部署。

环境准备
在开始搭建前,需要确保服务器满足以下基本要求:
- 操作系统:Windows Server 2012及以上版本(推荐Windows Server 2016/2019,兼容性更好)。
- IIS组件:需安装IIS及必要的扩展模块,包括:
- Web服务器(IIS)
- ASP.NET
- CGI
- ISAPI扩展
- URL Rewrite模块(必需,用于WordPress伪静态规则)
- FastCGI模块(用于运行PHP)
- 数据库:MySQL 5.6+或MariaDB 10.0+(建议通过MySQL官方安装包或phpStudy等集成环境安装)。
- PHP环境:WordPress 6.x版本要求PHP 7.4+,建议选择非线程安全(Non-Thread Safe)版本的PHP,并搭配对应的VC++运行库,可通过PHP官方下载页面获取安装包,或使用第三方工具如phpStudy一键配置。
安装与配置IIS
-
安装IIS及组件:
- 通过“服务器管理器”→“添加角色和功能”,勾选“Web服务器(IIS)”→“应用程序开发”→勾选“ASP.NET”、“CGI”、“ISAPI扩展”。
- 下载并安装URL Rewrite模块(微软官网提供,支持IIS 7及以上版本)。
- 下载FastCGI模块(若IIS版本未自带,需单独安装)。
-
配置PHP与FastCGI:
- 将PHP解压至非系统盘目录(如
D:\php
),并复制php.ini-development
为php.ini
。 - 编辑
php.ini
,取消以下配置项的注释并修改:extension_dir = "ext" extension=mysqli extension=gd2 extension=php_opcache.dll upload_max_filesize = 20M post_max_size = 20M memory_limit = 256M
- 打开IIS管理器,双击“处理程序映射”→“添加模块映射”,填写以下信息:
- 请求路径:
*.php
- 模块:
FastCgiModule
- 可执行文件:
D:\php\php-cgi.exe
(根据实际路径修改) - 名称:
FastCGI-php
- 请求路径:
- 将PHP解压至非系统盘目录(如
-
配置网站默认文档:
(图片来源网络,侵删)- 在IIS管理器中选中网站,双击“默认文档”,添加
index.php
并置顶。
- 在IIS管理器中选中网站,双击“默认文档”,添加
安装与配置数据库
- 创建WordPress数据库:
- 通过MySQL命令行或工具(如phpMyAdmin)登录数据库,执行以下SQL:
CREATE DATABASE wordpress_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; CREATE USER 'wordpress_user'@'localhost' IDENTIFIED BY 'your_password'; GRANT ALL PRIVILEGES ON wordpress_db.* TO 'wordpress_user'@'localhost'; FLUSH PRIVILEGES;
- 通过MySQL命令行或工具(如phpMyAdmin)登录数据库,执行以下SQL:
部署WordPress程序
-
下载并上传WordPress:
- 从WordPress官网下载最新版本ZIP包,解压后通过IIS管理器“添加网站”或直接将文件复制到网站目录(如
D:\wwwroot\wordpress
)。 - 设置网站目录权限:右键目录→“属性”→“安全”→添加“IIS_IUSRS”和“NETWORK SERVICE”用户,赋予“读取和执行”权限。
- 从WordPress官网下载最新版本ZIP包,解压后通过IIS管理器“添加网站”或直接将文件复制到网站目录(如
-
配置wp-config.php:
- 重命名
wp-config-sample.php
为wp-config.php
,编辑数据库配置信息:define('DB_NAME', 'wordpress_db'); define('DB_USER', 'wordpress_user'); define('DB_PASSWORD', 'your_password'); define('DB_HOST', 'localhost'); define('DB_CHARSET', 'utf8mb4'); define('DB_COLLATE', 'utf8mb4_unicode_ci');
- 在文件末尾添加密钥(可通过WordPress密钥生成器获取):
define('AUTH_KEY', 'put your unique phrase here'); define('SECURE_AUTH_KEY', 'put your unique phrase here'); // ...其他密钥
- 重命名
完成安装与优化
-
运行安装向导:
在浏览器中访问网站域名或IP地址,根据提示填写网站标题、管理员账号等信息,完成安装。
(图片来源网络,侵删) -
配置伪静态:
- 下载WordPress的IIS伪静态规则文件(如
web.config
),或通过IIS“URL重写”模块导入以下规则:<?xml version="1.0" encoding="UTF-8"?> <configuration> <system.webServer> <rewrite> <rules> <rule name="WordPress" stopProcessing="true"> <match url="^index\.php$" ignoreCase="false" /> <action type="None" /> </rule> <rule name="WordPress Rule 1" stopProcessing="true"> <match url="^([_0-9a-zA-Z-]+/)?wp-(.*)$" ignoreCase="false" /> <action type="Redirect" redirectType="Permanent" url="index.php?wp={R:2}" /> </rule> <rule name="WordPress Rule 2" stopProcessing="true"> <match url="^([_0-9a-zA-Z-]+/)?(.*\.php)(.*)$" ignoreCase="false" /> <action type="Redirect" redirectType="Permanent" url="index.php?{R:2}&{R:3}" /> </rule> <rule name="WordPress Rule 3" stopProcessing="true"> <match url="^([_0-9a-zA-Z-]+/)?(.*)$" ignoreCase="false" /> <action type="Rewrite" url="index.php?/{R:2}" /> </rule> </rules> </rewrite> </system.webServer> </configuration>
- 下载WordPress的IIS伪静态规则文件(如
-
常见问题处理:
- 404错误:检查URL重写规则是否正确,确保
web.config
文件位于网站根目录。 - PHP无法运行:确认FastCGI配置中可执行文件路径正确,且PHP目录权限设置无误。
- 上传文件失败:修改
php.ini
中的upload_max_filesize
和post_max_size
值,并确保网站目录有写入权限。
- 404错误:检查URL重写规则是否正确,确保
安全与性能优化
- 定期更新:保持WordPress核心、主题及插件为最新版本。
- 安装安全插件:如Wordfence Security、iThemes Security等。
- 配置HTTPS:通过Let's Encrypt获取免费SSL证书,在IIS中绑定HTTPS站点。
- 启用缓存:安装WP Super Cache等插件,或配置IIS输出缓存。
相关问答FAQs
问题1:IIS搭建WordPress时提示“无法创建目录wp-content”怎么办?
解答:通常是由于网站目录权限不足导致的,需确保网站主目录(如D:\wwwroot\wordpress
)的“安全”标签页中,添加“IIS_IUSRS”和“NETWORK SERVICE”用户,并勾选“修改”权限,若仍无法解决,可尝试将网站文件夹的所有者设置为Administrators
组。
问题2:如何在IIS中为WordPress配置多站点模式?
解答:首先修改wp-config.php
文件,添加define('WP_ALLOW_MULTISITE', true);
,然后在WordPress后台“工具”→“网络设置”中完成配置,配置完成后,需在IIS中创建新的网站或绑定主机头,并上传生成的web.config
文件到子站点目录,注意多站点模式对服务器性能要求较高,建议确保足够的内存和CPU资源。