可以,IIS + Windows Server 完全可以运行 WordPress。
虽然 WordPress 默认运行在 Linux + Apache/Ngin + MySQL/MariaDB + PHP(LAMP/LNMP)环境下更常见且性能更佳,但在 Windows 环境下通过 IIS + SQL Server/MySQL + PHP 也能稳定运行。
✅ 推荐技术栈组合
| 组件 | 推荐选择 |
|---|---|
| Web 服务器 | IIS 10+(Windows Server 2016/2019/2022) |
| 数据库 | MySQL 8.0+ 或 Microsoft SQL Server |
| PHP | PHP 8.1+(TS 版本,线程安全) |
| 操作系统 | Windows Server 2019 / 2022 |
⚠️ 注意:必须使用 PHP 的 Thread-Safe (TS) 版本,因为 IIS 使用 ISAPI 或 FastCGI 模块时依赖线程安全模型。
🛠️ 配置步骤详解
第一步:安装 IIS 和必要功能
- 打开 服务器管理器 → 添加角色和功能
- 选择 Web 服务器 (IIS)
- 在安装角色服务时,确保勾选:
- CGI
- 静态内容
- 默认文档
- HTTP 重定向(可选)
- 完成安装后,打开 Internet Information Services (IIS) 管理器
第二步:安装并配置 PHP
方法一:使用 Web Platform Installer(推荐新手)
- 下载 Microsoft Web Platform Installer
- 搜索 "PHP",安装最新稳定版(如 PHP 8.1)
- 安装完成后,自动注册为 IIS 模块
方法二:手动安装 PHP(推荐高级用户)
- 从 windows.php.net/download 下载 PHP x64 Non-Thread Safe (NTS) 或 Thread-Safe (TS)
✅ 推荐使用 Thread-Safe (TS) 版本用于 IIS FastCGI
- 解压到目录,例如:
C:php - 复制
php.ini-development为php.ini - 编辑
php.ini,启用必要扩展:extension_dir = "ext" extension=pdo_mysql extension=mysqli extension=gd extension=curl extension=mbstring extension=openssl extension=fileinfo extension=zlib extension=zip - 设置系统环境变量:
- 添加
C:php到 PATH - 重启服务器或至少重启 IIS
- 添加
第三步:在 IIS 中配置 PHP Handler
- 打开 IIS 管理器
- 选中你的网站(或默认网站)
- 双击 处理程序映射(Handler Mappings)
- 点击右侧 添加模块映射:
- 请求路径:
*.php - 模块:
FastCgiModule - 可执行文件:
C:phpphp-cgi.exe - 名称:
PHP via FastCGI
- 请求路径:
- 确认并保存
💡 如果之前用 Web Platform Installer 安装,此步骤可能已自动完成。
第四步:创建数据库
选项 A:使用 MySQL
- 安装 MySQL Server(可从 mysql.com 下载)
- 创建数据库和用户:
CREATE DATABASE wordpress_db; CREATE USER 'wp_user'@'localhost' IDENTIFIED BY 'strong_password'; GRANT ALL PRIVILEGES ON wordpress_db.* TO 'wp_user'@'localhost'; FLUSH PRIVILEGES;
选项 B:使用 SQL Server
- 安装 SQL Server Express 或完整版
- 创建数据库
wordpress_db - 创建登录名并授予权限
⚠️ WordPress 官方支持 MySQL/MariaDB,对 SQL Server 的支持需通过插件(如 SQL Server Integration for WordPress),但原生不支持。因此 强烈建议使用 MySQL。
第五步:部署 WordPress 文件
- 从 wordpress.org 下载最新 WordPress
- 解压到 IIS 网站根目录,例如:
C:inetpubwwwrootwordpress - 修改
wp-config-sample.php为wp-config.php,填写数据库信息:define('DB_NAME', 'wordpress_db'); define('DB_USER', 'wp_user'); define('DB_PASSWORD', 'strong_password'); define('DB_HOST', 'localhost'); // 或 127.0.0.1
第六步:配置 IIS 网站
- 在 IIS 管理器中右键 网站 → 添加网站
- 设置:
- 站点名称:
WordPress - 物理路径:
C:inetpubwwwrootwordpress - 绑定:IP、端口(80)、主机名(可选)
- 站点名称:
- 确保 应用程序池 使用 无托管代码 或 .NET CLR 版本:无托管代码
- 启动网站
第七步:设置 URL 重写(Rewrite Module)
WordPress 需要伪静态支持。
- 安装 URL Rewrite Module
- 在网站级别,打开 URL 重写
- 导入以下规则(或直接复制
.htaccess等效规则):
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="WordPress Rule" stopProcessing="true">
<match url=".*" />
<conditions>
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
</conditions>
<action type="Rewrite" url="index.php" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
💡 也可以将上述 XML 放入网站的
web.config文件中。
第八步:测试访问
- 浏览器访问
http://your-server-ip/wordpress - 进入 WordPress 安装向导
- 填写站点名称、管理员账号等信息
- 完成安装!
🔒 安全与优化建议
| 项目 | 建议 |
|---|---|
| HTTPS | 安装 SSL 证书(Let’s Encrypt 或商业证书),强制 HTTPS |
| PHP 安全 | 禁用危险函数(disable_functions),限制上传大小 |
| 防火墙 | 仅开放 80/443 端口,关闭不必要的服务 |
| 备份 | 定期备份数据库和 wp-content 目录 |
| 性能优化 | 启用 OPcache(在 php.ini 中开启 opcache.enable=1) |
| 日志监控 | 启用 IIS 日志和 PHP 错误日志 |
❓ 常见问题
Q1: 为什么推荐 MySQL 而不是 SQL Server?
A: WordPress 核心只官方支持 MySQL/MariaDB。使用 SQL Server 需要第三方插件,兼容性差、更新不同步。
Q2: IIS 性能不如 Apache/Nginx?
A: 对于中小规模站点,IIS + PHP FastCGI 性能足够。大规模高并发场景建议迁移到 Linux + Nginx/Apache。
Q3: 如何迁移现有 WordPress 到 IIS?
A: 导出 MySQL 数据库 → 导入新服务器 → 上传文件 → 修改 wp-config.php → 检查链接和固定链接。
✅ 总结
| 步骤 | 操作 |
|---|---|
| 1 | 安装 IIS + CGI/FastCGI |
| 2 | 安装并配置 PHP(TS 版本) |
| 3 | 配置 IIS 处理 PHP |
| 4 | 安装 MySQL 并创建数据库 |
| 5 | 部署 WordPress 文件 |
| 6 | 配置 web.config 伪静态 |
| 7 | 安装 WordPress |
只要按步骤操作,IIS + Windows Server 完全可以稳定运行 WordPress。但对于生产环境,尤其是高流量站点,仍建议考虑 Linux 方案以获得更好的性能和社区支持。
云知识CLOUD