速卖通素材
努力

IIS + Windows Server能否运行WordPress?配置步骤是什么?

服务器

是的,IIS(Internet Information Services)+ Windows Server 完全可以运行 WordPress,这是微软官方支持且有完善文档的方案。虽然 WordPress 传统上与 LAMP(Linux + Apache + MySQL + PHP)栈关联更紧密,但 Microsoft 已长期优化 IIS 对 PHP 和 WordPress 的支持(包括 Web Platform Installer、PHP Manager、URL Rewrite 模块等),目前在 Windows Server 2016/2019/2022 上部署稳定、性能良好,且可与 Windows 身份验证、AD 集成、Azure 混合云等场景无缝结合。

以下是 生产环境推荐的详细配置步骤(以 Windows Server 2022 + IIS 10 + PHP 8.2+ + MySQL 8.0+ 为例)


✅ 前置要求

  • Windows Server 2016 / 2019 / 2022(建议 2022,最新安全与兼容性)
  • 管理员权限
  • 网络连通性(用于下载组件)
  • (可选)已安装 .NET Framework 4.8(IIS 所需)

🛠️ 分步配置流程

1️⃣ 启用 IIS 及必要功能

以管理员身份运行 PowerShell:

# 启用核心 IIS 功能(含 ASP.NET Core 支持,虽非必需但推荐)
Install-WindowsFeature -Name Web-Server,Web-Common-Http,Web-Static-Content,Web-Default-Doc,Web-Dir-Browsing,Web-Http-Errors,Web-Http-Redirect,Web-Http-Tracing,Web-Security,Web-Filtering,Web-IP-Security,Web-Performance,Web-Stat-Compression,Web-Dyn-Compression,Web-Mgmt-Console,Web-Mgmt-Compat,Web-Metabase,Web-Scripting-Tools,Web-Mgmt-Service -IncludeAllSubFeature -IncludeManagementTools

# 启用 URL Rewrite 模块(WordPress 固定链接必需!)
# ⚠️ 注意:此模块需单独下载安装(见下一步)

💡 提示:Web-Mgmt-Service 启用后可通过远程 IIS 管理器管理服务器。


2️⃣ 安装 URL Rewrite 模块(关键!)

  • 下载地址:https://www.iis.net/downloads/microsoft/url-rewrite
  • 下载 rewrite_amd64.msi(或对应架构版本)
  • 运行安装(默认路径即可),无需重启 IIS

✅ 验证:打开 IIS 管理器 → 选择服务器节点 → 右侧“模块”中应看到 RewriteModule


3️⃣ 安装并配置 PHP(推荐使用官方 Windows 版本)

强烈建议使用 windows.php.net 的 Non-Thread-Safe (NTS) + VC17 x64 版本(如 PHP 8.2.x 或 8.3.x)
不推荐使用 Web Platform Installer(已停更),避免过时 PHP

步骤:
  1. 下载 ZIP 包(例:php-8.2.15-nts-Win32-vs17-x64.zip

  2. 解压到 C:PHP(路径无空格/中文,如 C:PHP82

  3. 复制 php.ini-production → 重命名为 php.ini

  4. 编辑 php.ini(关键配置):

    ; 基础设置
    extension_dir = "C:PHP82ext"
    date.timezone = "Asia/Shanghai"  ; 替换为你所在时区
    cgi.fix_pathinfo=0                ; ⚠️ 必须设为 0(防止 CVE-2012-1823)
    
    ; 启用 WordPress 所需扩展(取消注释)
    extension=php_mysqli.dll
    extension=php_pdo_mysql.dll
    extension=php_opcache.dll
    extension=php_curl.dll
    extension=php_gd.dll
    extension=php_mbstring.dll
    extension=php_xml.dll
    extension=php_zip.dll
    
    ; OPcache 优化(生产环境推荐)
    opcache.enable=1
    opcache.memory_consumption=128
    opcache.interned_strings_buffer=8
    opcache.max_accelerated_files=4000
    opcache.revalidate_freq=60
    opcache.fast_shutdown=1
  5. C:PHP82 加入系统 PATH 环境变量

  6. 在 IIS 中注册 PHP:

    • IIS 管理器 → 服务器节点 → “PHP Manager”(若未安装,请先装:见下一步)
      → 或手动添加:
      “处理程序映射” → “添加模块映射”

      • 请求路径:*.php
      • 模块:FastCgiModule
      • 可执行文件:C:PHP82php-cgi.exe
      • 名称:PHP_via_FastCGI
      • ✅ 勾选“记录请求”(调试用)

🔔 PHP Manager for IIS(可选但强烈推荐)
下载地址:https://phpmanager.codeplex.com/(注意:CodePlex 已关闭,改用 GitHub 镜像或直接用 IIS 手动配置)
实际推荐:跳过 PHP Manager,直接用 IIS GUI 或 PowerShell 配置 FastCGI(更可控)

✅ 验证 PHP:在网站根目录新建 info.php,内容 <?php phpinfo(); ?>,浏览器访问 http://yoursite/info.php


4️⃣ 安装数据库(MySQL 或 MariaDB 或 SQL Server + WP插件)

  • 推荐 MySQL 8.0+(x64):从 https://dev.mysql.com/downloads/mysql/ 下载 MSI 安装器
  • 安装时选择:
    • Developer Default 或自定义 → 勾选 MySQL Server + MySQL Workbench
    • 设置 root 密码(强密码!)
    • 配置选项 → 使用 Use Legacy Authentication Method(因 WordPress 默认不支持 caching_sha2_password,除非你手动创建用户指定 auth plugin)
  • 创建 WordPress 数据库与用户(推荐使用 MySQL Workbench 或命令行):
    CREATE DATABASE wordpress DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
    CREATE USER 'wpuser'@'localhost' IDENTIFIED BY 'StrongPass123!';
    GRANT ALL PRIVILEGES ON wordpress.* TO 'wpuser'@'localhost';
    FLUSH PRIVILEGES;

✅ 替代方案:使用 MariaDB(更轻量)或 Microsoft SQL Server + WP Db Abstraction 插件(企业级合规场景)


5️⃣ 部署 WordPress

  1. 下载最新版 WordPress:https://wordpress.org/latest.zip
  2. 解压到网站目录(如 C:inetpubwwwrootwordpress
  3. 设置文件权限(关键!):
    • 右键文件夹 → “属性” → “安全” → 编辑 → 添加用户:
      • IIS_IUSRS:读取 & 执行、列出文件夹内容、读取
      • IUSR:同上(匿名访问用户)
      • (可选)若需自动更新/插件安装,给 IIS_IUSRS 写入权限(仅 wp-contentwp-config.php 目录,不要给整个根目录写入!
  4. 访问 http://your-server-ip/wordpress/,进入 Web 安装向导:
    • 输入数据库名、用户名、密码、主机(默认 localhost
    • 表前缀可保留 wp_ 或修改增强安全性
    • 点击“提交” → “运行安装”
    • 填写站点标题、管理员账号密码(务必强密码!

6️⃣ 配置固定链接(Permalinks)—— 依赖 URL Rewrite

  1. WordPress 后台 → 设置 → 固定链接 → 选择“文章名”等非默认结构 → 保存
  2. IIS 会自动生成 web.config(位于 WordPress 根目录)
    ✅ 若未生成或 404,请手动创建 web.config(放在 wordpress/ 目录下):

    <?xml version="1.0" encoding="UTF-8"?>
    <configuration>
     <system.webServer>
       <rewrite>
         <rules>
           <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>
         </rules>
       </rewrite>
     </system.webServer>
    </configuration>

    ✅ 验证:访问 http://yoursite/post-slug/ 应正常显示,而非 404


7️⃣ 生产环境加固(必做!)

项目 推荐操作
HTTPS 使用 Let’s Encrypt(推荐 win-acme 自动签发)+ 绑定 SSL 证书到站点
PHP 安全 php.ini 中禁用危险函数:
disable_functions = exec,passthru,shell_exec,system,proc_open,popen,curl_exec,curl_multi_exec,parse_ini_file,show_source
WordPress 安全 安装 Wordfence 或 iThemes Security;隐藏 wp-login.php(用插件);定期更新
IIS 安全 在 IIS 中禁用 HTTP 方法(如 TRACE, OPTIONS);启用请求过滤;限制上传大小(requestLimits
备份 配置 Windows Server Backup 或使用 UpdraftPlus(含 DB + 文件)

✅ 验证是否成功

  • http://yoursite/ → 显示 WordPress 首页
  • http://yoursite/wp-admin/ → 可登录后台
  • ✅ 发布一篇测试文章 → http://yoursite/hello-world/ 可访问
  • ✅ 上传图片到媒体库 → 成功显示
  • ✅ 安装一个主题/插件 → 无需 FTP(因已配 IIS 权限)

🚫 常见问题速查

现象 原因 解决
白屏/500 错误 php.ini 语法错误、扩展加载失败、opcache 冲突 查看 C:WindowsTempphp-errors.log;临时禁用 opcache 测试
404(固定链接) web.config 缺失/错误;URL Rewrite 未安装;规则未生效 检查 IIS 是否加载 RewriteModule;确认 web.config 在正确目录;重启 IIS
数据库连接失败 MySQL 认证插件不兼容(caching_sha2_password) 创建用户时指定 IDENTIFIED WITH mysql_native_password,或改用 MariaDB
无法自动更新 wp-content 无写入权限 IIS_IUSRS 用户赋予 wp-content 及子目录“修改”权限(非完全控制)
上传文件过大 IIS 请求限制(默认30MB) IIS → 站点 → “请求筛选” → “编辑功能设置” → 提高“允许的最大内容长度”

✅ 最佳实践总结

  • ✅ 使用 PHP NTS + FastCGI(非 ISAPI)
  • 始终启用 URL Rewrite(WordPress SEO/固定链接基石)
  • ✅ 数据库优先选 MySQL 8.0 + mysql_native_passwordMariaDB 10.6+
  • ✅ 权限最小化:IIS_IUSRS 仅需 wp-contentwp-config.php 写入
  • ✅ 强制 HTTPS + HSTS(IIS 中配置)
  • ✅ 日志监控:启用 IIS 日志 + PHP 错误日志 + WordPress Debug Log(wp-config.php 中定义 define('WP_DEBUG_LOG', true);

如需自动化脚本(PowerShell 一键部署)、Docker on Windows Server 方案、或与 Azure App Service / AKS 集成方案,我可继续为你提供。欢迎随时追问! 🌐🔧

未经允许不得转载:轻量云Cloud » IIS + Windows Server能否运行WordPress?配置步骤是什么?