努力
加油

Windows服务器上如何搭建WordPress网站?

在 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,太容易出错了。

  1. 推荐方式:直接购买云厂商提供的 “WordPress 一键安装包” 镜像(如果有的话)。很多国内云厂商(如阿里云、腾讯云)提供预装了 IIS+PHP+MySQL 的镜像,开机即用,只需改数据库密码。
  2. 手动安装方式(通用性更强):
    • 操作系统: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 文件

  1. 从 wordpress.org 下载最新中文版。
  2. 解压到 IIS 默认网站目录,例如 C:inetpubwwwrootwordpress。
  3. 复制 wp-config-sample.php 为 wp-config.php。
  4. 编辑 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 重写规则。

  1. 在 IIS 中安装 URL Rewrite Module(微软官方扩展,搜一下就有)。
  2. 进入站点 → URL 重写 → 添加规则 → 选择“预设规则” → 选择 WordPress。
  3. 如果没有预设,手动添加反向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 写权限,其他只读。

三、 常见问题与避坑指南

  1. 时区问题:

    • 现象:文章发布时间比实际晚 8 小时。
    • 解决:确保 php.ini 中 date.timezone = Asia/Shanghai,同时 WordPress 后台设置里时区也要选“上海”。
  2. 上传文件大小限制:

    • Windows 下默认上传限制很小(通常 28MB 或更小)。
    • 修改 php.ini:
      upload_max_filesize = 64M
      post_max_size = 64M
    • 重启 IIS 服务生效。
  3. 性能瓶颈:

    • IIS + PHP on Windows 的资源消耗远高于 Linux + Nginx。
    • 如果并发超过 50 PV/s,建议考虑迁移到 Linux。
    • 优化技巧:启用 IIS 的 HTTP 压缩,开启 PHP OPcache(在 php.ini 中取消 zend_extension=opcache 注释)。
  4. 备份难题:

    • 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。