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

IIS + Windows Server 完全可以运行 WordPress,但体验与 Linux + Apache/Nginx 有显著差异。

核心结论先行:

  • 可行性:✅ 可行。WordPress 原生支持 PHP,而 IIS 是 Windows 上最成熟的 PHP 宿主环境之一。
  • 推荐度:⚠️ 不推荐用于生产环境的高并发场景。Linux (Nginx/Apache) + MySQL/MariaDB + PHP-FPM 是 WordPress 的“黄金组合”,性能、稳定性、社区支持均优于 Windows 方案。
  • 适用场景:企业内部网、开发测试环境、已有 Windows 服务器资产需复用、或团队熟悉 .NET/IIS 生态。

一、为什么通常不推荐?(客观对比)

维度 IIS + Windows Server Nginx/Apache + Linux
性能 PHP 在 IIS 下多采用 CGI/FastCGI 模式,资源开销较大;Windows 系统本身内存/CPU 占用更高 PHP-FPM 进程管理更高效;Linux 内核对网络 IO 优化更好
成本 Windows Server 许可证费用高;SQL Server 若使用则更贵 系统免费;MySQL/MariaDB 开源免费
插件兼容性 极少数依赖 Linux shell 命令的插件可能失效 几乎所有插件开箱即用
运维复杂度 需配置 FastCGI、URL Rewrite、权限继承等,易出错 .htaccess 自动处理伪静态,配置简单
安全性 Windows 攻击面更大,需额外加固 社区安全补丁响应快,默认配置更安全

📌 合规提示:使用正版 Windows Server 授权,避免X_X风险;建议使用微软官方渠道获取技术支持。


二、详细配置步骤(以 Windows Server 2019/2022 + IIS 10+ 为例)

✅ 前置准备

  1. 安装 Windows Server(建议 2019 或 2022,支持最新 PHP 版本)
  2. 安装 IIS(通过“服务器管理器” → “添加角色和功能” → Web 服务器)
  3. 下载并安装 PHP(推荐 PHP 8.1/8.2,从 windows.php.net 下载 VC15/x64 Non Thread Safe 版本)
  4. 下载并安装 MySQL 或 MariaDB(或使用 Azure SQL / AWS RDS 等云数据库服务)
  5. 下载 WordPress 最新中文版(cn.wordpress.org)

🔧 步骤 1:配置 IIS 支持 PHP

  1. 解压 PHP
    将下载的 PHP ZIP 包解压到 C:php(路径可自定义,但需一致)

  2. 复制 php.ini-development 为 php.ini
    编辑 C:phpphp.ini,修改以下关键项:

    extension_dir = "C:phpext"
    date.timezone = Asia/Shanghai
    expose_php = Off
    max_execution_time = 300
    memory_limit = 256M
    post_max_size = 64M
    upload_max_filesize = 64M

    ⚠️ 启用所需扩展(取消注释):

    extension=gd
    extension=mysqlnd
    extension=pdo_mysql
    extension=fileinfo
    extension=mbstring
    extension=openssl
    extension=curl
  3. 在 IIS 中注册 PHP Handler

    • 打开 IIS 管理器
    • 点击服务器节点 → 双击 “处理程序映射”
    • 点击右侧 “添加模块映射”
      • 请求路径:*.php
      • 模块:FastCgiModule
      • 可执行文件:C:phpphp-cgi.exe
      • 名称:PHP_via_FastCGI
    • 点击 “请求限制” → 勾选“仅当调用该处理程序映射的请求匹配下列条件时调用处理程序” → 选择“文件”
    • 确认添加
  4. 创建 PHP 测试页验证
    在网站根目录创建 info.php,内容:

    <?php phpinfo(); ?>

    访问 http://localhost/info.php,确认 PHP 正常加载。


🔧 步骤 2:配置 URL 重写(伪静态)

WordPress 依赖 .htaccess,但 IIS 不支持,需安装 URL Rewrite Module:

  1. 下载并安装 Microsoft URL Rewrite Module
  2. 在 IIS 站点中,双击 “URL 重写”
  3. 点击右侧 “导入规则”,粘贴以下规则:
    <rule name="WordPress Rule 1" stopProcessing="true">
     <match url="^index.php$" ignoreCase="false" />
     <action type="None" />
    </rule>
    <rule name="WordPress Rule 2" stopProcessing="true">
     <match url="^([_0-9a-zA-Z-]+/)?files/(.+)" ignoreCase="false" />
     <action type="Rewrite" url="wp-includes/ms-files.php?file={R:2}" appendQueryString="false" />
    </rule>
    <rule name="WordPress Rule 3" stopProcessing="true">
     <match url="^([_0-9a-zA-Z-]+/)?admin/(.*)$" ignoreCase="false" />
     <action type="Rewrite" url="{R:0}" />
    </rule>
    <rule name="WordPress Rule 4" stopProcessing="true">
     <match url="^" ignoreCase="false" />
     <conditions logicalGrouping="MatchAll">
       <add input="{REQUEST_FILENAME}" matchType="IsFile" ignoreCase="false" negate="true" />
       <add input="{REQUEST_FILENAME}" matchType="IsDirectory" ignoreCase="false" negate="true" />
     </conditions>
     <action type="Rewrite" url="index.php" />
    </rule>

    💡 也可手动创建 web.config 文件放在网站根目录,内容同上。


🔧 步骤 3:创建数据库 & 导入 WordPress

  1. 创建 MySQL 数据库和用户

    CREATE DATABASE wordpress_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
    CREATE USER 'wp_user'@'localhost' IDENTIFIED BY 'StrongPassword123!';
    GRANT ALL PRIVILEGES ON wordpress_db.* TO 'wp_user'@'localhost';
    FLUSH PRIVILEGES;
  2. 部署 WordPress 文件

    • 将解压后的 WordPress 文件夹上传至 IIS 网站根目录(如 C:inetpubwwwrootwordpress)
    • 确保 IIS_IUSRS 用户对文件夹有 读取和执行 权限
  3. 运行安装向导

    • 浏览器访问 http://your-domain/wp-admin/install.php
    • 输入数据库名、用户名、密码、表前缀(默认 wp_)
    • 完成安装,设置管理员账号

🔧 步骤 4:权限与安全加固(关键!)

  1. 禁用危险函数
    在 php.ini 中设置:

    disable_functions = passthru,exec,system,chroot,scandir,chgrp,chown,shell_exec,proc_open,proc_get_status,ini_alter,ini_restore,dl,pfsockopen,openlog,syslog,readlink,symlink,popepassthru,stream_socket_server,fsocket,fsockopen
  2. 限制 PHP 上传大小
    已在 php.ini 中设置 upload_max_filesize 和 post_max_size

  3. 关闭目录浏览
    在 IIS 中选中站点 → “目录浏览” → 禁用

  4. 启用 HTTPS
    申请 SSL 证书(Let’s Encrypt 或阿里云/腾讯云免费证书),在 IIS 中绑定 HTTPS

  5. 定期更新
    WordPress、PHP、IIS、Windows 均需保持最新安全补丁


三、性能优化建议(可选)

  • 使用 OPcache:在 php.ini 中启用 opcache.enable=1
  • 启用 HTTP/2:IIS 10+ 支持,提升加载速度
  • 使用 CDN:如阿里云 CDN、腾讯云 CDN 提速静态资源
  • 缓存插件:WP Super Cache、W3 Total Cache(注意部分插件在 Windows 下可能异常)

四、替代方案建议

如果你追求稳定、高性能、低成本,强烈建议迁移至:

Linux (Ubuntu/CentOS) + Nginx + MySQL/MariaDB + PHP-FPM + Redis 缓存

或使用国内云厂商的 WordPress 一键镜像(阿里云、腾讯云、华为云均提供),开箱即用,免配置。


总结

IIS + Windows Server 能跑 WordPress,适合特定场景,但非最优解。配置过程繁琐,维护成本高。如无特殊需求,优先选择 Linux 方案。若必须使用 Windows,请严格遵循上述步骤,并做好安全加固与性能调优。

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