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+ 为例)
✅ 前置准备
- 安装 Windows Server(建议 2019 或 2022,支持最新 PHP 版本)
- 安装 IIS(通过“服务器管理器” → “添加角色和功能” → Web 服务器)
- 下载并安装 PHP(推荐 PHP 8.1/8.2,从 windows.php.net 下载 VC15/x64 Non Thread Safe 版本)
- 下载并安装 MySQL 或 MariaDB(或使用 Azure SQL / AWS RDS 等云数据库服务)
- 下载 WordPress 最新中文版(cn.wordpress.org)
🔧 步骤 1:配置 IIS 支持 PHP
-
解压 PHP
将下载的 PHP ZIP 包解压到C:php(路径可自定义,但需一致) -
复制 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 -
在 IIS 中注册 PHP Handler
- 打开 IIS 管理器
- 点击服务器节点 → 双击 “处理程序映射”
- 点击右侧 “添加模块映射”
- 请求路径:
*.php - 模块:
FastCgiModule - 可执行文件:
C:phpphp-cgi.exe - 名称:
PHP_via_FastCGI
- 请求路径:
- 点击 “请求限制” → 勾选“仅当调用该处理程序映射的请求匹配下列条件时调用处理程序” → 选择“文件”
- 确认添加
-
创建 PHP 测试页验证
在网站根目录创建info.php,内容:<?php phpinfo(); ?>访问
http://localhost/info.php,确认 PHP 正常加载。
🔧 步骤 2:配置 URL 重写(伪静态)
WordPress 依赖 .htaccess,但 IIS 不支持,需安装 URL Rewrite Module:
- 下载并安装 Microsoft URL Rewrite Module
- 在 IIS 站点中,双击 “URL 重写”
- 点击右侧 “导入规则”,粘贴以下规则:
<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
-
创建 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; -
部署 WordPress 文件
- 将解压后的 WordPress 文件夹上传至 IIS 网站根目录(如
C:inetpubwwwrootwordpress) - 确保 IIS_IUSRS 用户对文件夹有 读取和执行 权限
- 将解压后的 WordPress 文件夹上传至 IIS 网站根目录(如
-
运行安装向导
- 浏览器访问
http://your-domain/wp-admin/install.php - 输入数据库名、用户名、密码、表前缀(默认
wp_) - 完成安装,设置管理员账号
- 浏览器访问
🔧 步骤 4:权限与安全加固(关键!)
-
禁用危险函数
在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 -
限制 PHP 上传大小
已在php.ini中设置upload_max_filesize和post_max_size -
关闭目录浏览
在 IIS 中选中站点 → “目录浏览” → 禁用 -
启用 HTTPS
申请 SSL 证书(Let’s Encrypt 或阿里云/腾讯云免费证书),在 IIS 中绑定 HTTPS -
定期更新
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云枢