在 Windows 服务器上搭建 WordPress,其实是个“非主流”但完全可行的方案。
首先得泼盆冷水:从性能和成本角度,强烈建议首选 Linux (CentOS/Ubuntu) + Nginx/Apache + PHP + MySQL/MariaDB。 WordPress 是 PHP 写的,Linux 生态对 PHP 的支持更原生、资源占用更低、运维工具链更成熟。
但既然你问的是 Windows 环境(可能是为了兼容某些只能跑在 IIS 上的老系统,或者团队技术栈偏向 .NET/IIS),那我们就按 IIS + PHP + SQL Server (或 MySQL) 的路径来走。这是最稳妥的“Windows 全家桶”方案。
下面我以 阿里云 ECS / 腾讯云 CVM 为例,讲清楚核心步骤和坑点。
一、 前置准备:选对镜像
别自己从零装 Windows Server + IIS + PHP,太容易出错了。
- 推荐方式:直接购买云厂商提供的 “WordPress 一键安装包” 镜像(如果有的话)。很多国内云厂商(如阿里云、腾讯云)提供预装了 IIS+PHP+MySQL 的镜像,开机即用,只需改数据库密码。
- 手动安装方式(通用性更强):
- 操作系统:Windows Server 2019 / 2022(推荐 Datacenter 版,权限管理更灵活)。
- 软件栈:IIS 8.5+,PHP 7.4 或 8.x(注意版本兼容性),SQL Server Express 或 MySQL Community Server。
关键点:现在 PHP 官方已不再支持 7.3 及以下版本,务必使用 PHP 7.4+,否则安全补丁都没人管了。
二、 核心步骤详解(手动部署流程)
1. 安装并配置 IIS
- 打开服务器管理器 → 添加角色和功能 → Web 服务器 (IIS)。
- 勾选 CGI 模块(必须!PHP 通过 FastCGI 与 IIS 通信)。
- 启动 IIS,浏览器访问
http://localhost,看到“IIS 欢迎页面”即成功。
2. 安装 PHP
不要直接从官网下载 zip 解压,麻烦。推荐用 Web Platform Installer (WPI) 或 Chocolatey 包管理器。
- 方法 A(推荐):去 Microsoft Web Platform Installer 下载 WPI,搜索 “PHP”,选择对应版本的 PHP Manager for IIS。它会自动配置 php.ini 和 IIS 集成。
- 方法 B:手动下载 PHP Windows Binaries(Thread Safe 版本),解压到
C:php。然后在 IIS 中通过“处理程序映射”添加 FastCGI 指向php-cgi.exe。
关键配置:
- 编辑
php.ini:extension_dir = "ext" date.timezone = Asia/Shanghai ; 必改,否则时间不对 memory_limit = 256M ; WordPress 默认需要至少 128M,建议 256M+ max_execution_time = 300 ; 上传大文件或导入数据时避免超时 - 启用必要扩展:在 php.ini 中取消注释以下行(WordPress 依赖):
extension=curl extension=gd extension=json extension=mysqli ; 如果用 MySQL extension=openssl extension=pdo_mysql ; 如果用 MySQL extension=fileinfo extension=mbstring
3. 安装数据库
你有两个选择:
-
选项 A:MySQL(更贴近 Linux 环境,社区支持好)
- 下载 MySQL Community Server for Windows。
- 安装时设置 root 密码,创建 wp 数据库和用户。
- 注意:Windows 版 MySQL 性能不如 Linux,且内存占用较高,小内存实例慎用。
-
选项 B:SQL Server Express(微软亲儿子,IIS 集成度更好)
- 下载 SQL Server Express。
- 缺点:WordPress 默认不支持 SQL Server,你需要额外安装 SQLSRV 驱动,并且可能需要第三方插件或修改代码才能连接。除非你有特殊需求,否则不推荐。
结论:在 Windows 上跑 WordPress,还是装 MySQL 吧,少折腾。
4. 部署 WordPress 文件
- 从 wordpress.org 下载最新中文版。
- 解压到 IIS 默认网站目录,例如
C:inetpubwwwrootwordpress。 - 复制
wp-config-sample.php为wp-config.php。 - 编辑
wp-config.php,填入你的数据库信息:define('DB_NAME', 'your_database_name'); define('DB_USER', 'your_username'); define('DB_PASSWORD', 'your_password'); define('DB_HOST', 'localhost'); // 如果是本地 MySQL
5. 配置 IIS 伪静态(URL 重写)
这是 Windows 上最容易出错的地方。WordPress 的固定链接功能依赖 URL 重写规则。
- 在 IIS 中安装 URL Rewrite Module(微软官方扩展,搜一下就有)。
- 进入站点 → URL 重写 → 添加规则 → 选择“预设规则” → 选择 WordPress。
- 如果没有预设,手动添加反向XX规则:
<rule name="WordPress Rule" stopProcessing="true"> <match url=".*" /> <conditions logicalGrouping="MatchAll"> <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" /> <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" /> </conditions> <action type="Rewrite" url="index.php" /> </rule>
6. 权限设置(Windows 特有坑)
wp-content/uploads目录必须允许 IIS_IUSRS 用户写入。- 右键文件夹 → 属性 → 安全 → 编辑 → 添加 IIS_IUSRS → 给予“修改”权限。
- 如果启用了自动更新,整个
wp-content可能需要更高权限,但出于安全考虑,建议只给 uploads 写权限,其他只读。
三、 常见问题与避坑指南
-
时区问题:
- 现象:文章发布时间比实际晚 8 小时。
- 解决:确保
php.ini中date.timezone = Asia/Shanghai,同时 WordPress 后台设置里时区也要选“上海”。
-
上传文件大小限制:
- Windows 下默认上传限制很小(通常 28MB 或更小)。
- 修改
php.ini:upload_max_filesize = 64M post_max_size = 64M - 重启 IIS 服务生效。
-
性能瓶颈:
- IIS + PHP on Windows 的资源消耗远高于 Linux + Nginx。
- 如果并发超过 50 PV/s,建议考虑迁移到 Linux。
- 优化技巧:启用 IIS 的 HTTP 压缩,开启 PHP OPcache(在 php.ini 中取消
zend_extension=opcache注释)。
-
备份难题:
- Windows 文件系统权限复杂,备份脚本(如 robocopy)需仔细测试。
- 建议使用云厂商自带的“快照”功能做整机备份,比单独备份文件和数据库更可靠。
四、 更简单的替代方案:Docker on Windows
如果你用的是 Windows Server 2019+,可以考虑安装 Docker Desktop(Server 版需企业版或特定配置)。
docker run --name wordpress -d -p 80:80
-e WORDPRESS_DB_HOST=mysql
-e WORDPRESS_DB_USER=root
-e WORDPRESS_DB_PASSWORD=yourpassword
-e WORDPRESS_DB_NAME=wordpress
wordpress
- 优点:环境隔离,一键部署,无依赖冲突。
- 缺点:Windows 上 Docker 性能略低于 Linux 原生,且需要 Hyper-V 支持。
总结
| 方案 | 难度 | 性能 | 维护成本 | 推荐指数 |
|---|---|---|---|---|
| Linux + Nginx + PHP + MySQL | 中 | ⭐⭐⭐⭐⭐ | 低 | ★★★★★ |
| Windows + IIS + PHP + MySQL | 高 | ⭐⭐⭐ | 高 | ★★★☆☆ |
| Windows + IIS + PHP + SQL Server | 极高 | ⭐⭐ | 极高 | ★☆☆☆☆ |
| Docker (任何 OS) | 中 | ⭐⭐⭐⭐ | 中 | ★★★★☆ |
最后建议:
如果你是个人站长或小企业,请认真考虑切换到 Linux 环境。Windows 许可证费用 + 更高的硬件要求 + 更复杂的运维,会让你的总拥有成本(TCO)显著上升。只有在有强依赖 Windows 组件(如 Active Directory 集成、特定 .NET 中间件)的情况下,才值得在 Windows 上硬扛 WordPress。
云技术博客