IIS + Windows Server 完全可以运行 WordPress。事实上,这是微软生态下最经典的建站组合之一。虽然 Linux (Nginx/Apache) 是 WordPress 的默认首选,但通过正确的配置,Windows 环境下的性能和稳定性同样出色。
核心难点在于:WordPress 原生是为 PHP + MySQL/MariaDB 设计的,而 Windows 需要 IIS 来解析 PHP 请求,并配合 FastCGI 模块。 只要把这几个环节打通,就能完美运行。
以下是基于 Windows Server(如 2016/2019/2022)+ IIS 的实操配置步骤:
第一步:安装基础运行环境
不要手动去下载 PHP 和 IIS 组件,直接使用 Web Platform Installer (WPI) 或者 Server Manager 会更稳妥。这里推荐手动安装以理解原理,或者直接下载官方推荐的安装包。
-
启用 IIS 功能:
- 打开“服务器管理器” -> “添加角色和功能”。
- 在“Web 服务器 (IIS)"部分,确保勾选了以下关键组件:
- 应用程序开发 -> .NET Extensibility, ISAPI Extensions, ISAPI Filters。
- 健康性和诊断 -> HTTP 错误日志、跟踪日志(可选)。
- 性能 -> 静态内容。
- 安全性 -> 请求过滤。
- 重要提示:必须安装 PHP 支持模块。通常建议直接下载并安装特定版本的 PHP for Windows (推荐使用 Thread Safe 版本),然后在 IIS 中注册。
-
安装数据库 (MySQL/MariaDB):
- Windows 上运行 WordPress 通常需要 MySQL。你可以下载 MySQL Installer 或 MariaDB 进行安装。
- 安装时设置 root 密码,并创建一个专门用于 WordPress 的数据库和用户(例如
wp_db),赋予相应权限。
-
安装 PHP:
- 下载对应版本的 PHP ZIP 包(推荐 PHP 8.x 版本,注意选择 Thread Safe 版)。
- 解压到指定目录(例如
C:php)。 - 复制
php.ini-development为php.ini。 - 修改
php.ini配置:- 取消
extension_dir = "ext"前面的注释。 - 启用必要扩展:
extension=gd2,extension=curl,extension=fileinfo,extension=mbstring,extension=mysqli等。 - 设置
date.timezone为你所在的时区(如Asia/Shanghai),否则后台时间会乱。
- 取消
第二步:配置 IIS 处理程序映射 (FastCGI)
这是最关键的一步,让 IIS 知道如何把 .php 文件交给 PHP 解释器处理。
- 打开 IIS 管理器。
- 选中你的网站根目录,点击右侧操作栏的 “处理程序映射”。
- 点击 “添加模块映射”:
- 请求路径:
*.php - 可执行模块:选择
CgiModule或直接指向 PHP 的可执行文件路径(例如C:phpphp-cgi.exe)。 - 名称:输入
PHP via FastCGI。
- 请求路径:
- 系统可能会弹窗警告,确认即可。
- 验证配置:
- 确保
php.ini中的cgi.force_redirect = 0设置为0(有些版本默认就是 0,需检查)。 - 在
php.ini中确保cgi.fix_pathinfo = 1(这能解决 WordPress 伪静态路由问题,防止 404 错误)。
- 确保
第三步:部署 WordPress 代码
- 下载最新的 WordPress 压缩包,解压后上传到 IIS 网站的物理路径下(例如
D:wwwrootwordpress)。 - 确保文件夹权限正确:
- IIS_IUSRS 组需要对
wp-content目录拥有写入权限(用于上传插件、主题、图片缓存)。 - 其他文件通常只需读取权限。
- IIS_IUSRS 组需要对
第四步:配置 URL 重写 (Rewrite Rules)
WordPress 依赖伪静态(Permalinks)来实现友好的 URL 结构。在 Windows 上,这需要 IIS 的 URL Rewrite Module。
- 如果未安装,请在 IIS 管理器 -> “功能视图”中搜索并安装 URL Rewrite。
- 在网站根目录下,你会看到 WordPress 自带的
web.config文件(如果你从官网下载的是包含该文件的版本)。如果没有,可以手动创建或从 GitHub 获取标准的web.config内容粘贴进去。- 该文件的作用是拦截非真实存在的文件请求,将其重定向到
index.php。
- 该文件的作用是拦截非真实存在的文件请求,将其重定向到
- 进入 IIS 管理器的 URL 重写 功能,查看规则是否生效。
第五步:完成安装向导
- 浏览器访问你的域名或 IP。
- 按照屏幕提示输入:
- 站点标题
- 用户名、密码、邮箱
- 数据库信息(主机名通常是
localhost,数据库名是你之前创建的wp_db,用户名和密码是你设置的)。
- 提交后,WordPress 会自动检测环境并生成最终配置文件。
常见问题与优化建议
- 404 错误:绝大多数情况是因为
web.config没放对,或者php.ini里的cgi.fix_pathinfo没设为 1。 - 内存不足:Windows Server 默认配置较保守。在
php.ini中调大memory_limit(例如256M)和max_execution_time。 - SSL 证书:生产环境务必配置 HTTPS。IIS 自带 SSL 绑定功能,申请一个免费的 Let’s Encrypt 证书并在 IIS 中绑定端口 443 即可。
- 性能提速:可以考虑安装 WinCache 或 APCu(PHP 用户级缓存)来提升 PHP 脚本的执行速度,减少磁盘 IO。
总结:IIS + Windows Server 跑 WordPress 没有技术壁垒,核心在于PHP-FastCGI 的映射以及URL Rewrite 规则的匹配。只要这两个环节配置无误,其稳定性和安全性完全能满足企业级需求。
云知道CLOUD