在IIS内网环境中安装WordPress需要系统化操作,以下是详细步骤:
环境准备
-
服务器要求
- Windows Server 2016/2019/2022
- IIS 10+(需启用CGI、URL重写模块)
- .NET Framework 4.5+
- 内网固定IP(如192.168.1.100)
-
安装必要组件
# PowerShell管理员执行 Install-WindowsFeature Web-Server, Web-Asp-Net45, Web-CGI
-
下载软件包
- PHP:官网下载Non-Thread Safe版本(如php-8.2.10-nts-Win32-vs16-x64.zip)
- MySQL:官网下载MySQL Community Server 8.0+
- WordPress:官网最新中文包(.zip格式)
配置IIS环境
-
安装URL重写模块
访问Microsoft官方下载URL Rewrite Module 2.1,双击安装。 -
配置PHP环境
- 解压PHP到
C:PHP
- 复制
php.ini-production
重命名为php.ini
- 修改关键配置:
extension_dir = "C:PHPext" enable_post_data_reading = On cgi.force_redirect = 0 fastcgi.impersonate = 1 extension=mysqli extension=mbstring
- 解压PHP到
-
添加FastCGI映射
- IIS管理器 → 服务器节点 → 处理程序映射
- 添加模块映射:
请求路径:*.php 模块:FastCgiModule 可执行文件:C:PHPphp-cgi.exe 名称:PHP_FastCGI
数据库配置
-
安装MySQL
运行安装包,选择”Server only”,设置root密码(需强密码如My@ServerPwd123
)。 -
创建WordPress数据库
CREATE DATABASE wordpress_db; CREATE USER 'wp_user'@'localhost' IDENTIFIED BY 'StrongPass!2025'; GRANT ALL PRIVILEGES ON wordpress_db.* TO 'wp_user'@'localhost'; FLUSH PRIVILEGES;
部署WordPress
-
解压文件到网站根目录
- 默认路径:
C:inetpubwwwrootwordpress
- 设置IUSR完全控制权限:
icacls "C:inetpubwwwrootwordpress" /grant "IUSR:(OI)(CI)F"
- 默认路径:
-
配置wp-config.php
复制wp-config-sample.php
重命名为wp-config.php
,修改:define('DB_NAME', 'wordpress_db'); define('DB_USER', 'wp_user'); define('DB_PASSWORD', 'StrongPass!2025'); define('DB_HOST', 'localhost');
-
设置IIS站点
- 绑定内网IP:192.168.1.100(端口80)
- 错误页配置:404错误重定向到
/index.php
完成安装与优化
-
访问安装向导
浏览器输入http://192.168.1.100/wp-admin/install.php
,按提示设置管理员账号。 -
关键安全加固
- 限制wp-admin目录IP访问(通过IIS IP限制)
- 禁用XML-RPC:安装插件”Disable XML-RPC”
- 修改登录路径:使用插件”WPS Hide Login”
-
性能调优
- 启用OPcache:
php.ini
中取消注释zend_extension=opcache
- IIS输出缓存:设置静态内容缓存365天
- 启用OPcache:
故障排除
- 500错误:检查PHP错误日志(默认
C:PHPphp_errors.log
) - 数据库连接失败:确认MySQL服务运行,防火墙放行3306端口
- URL重写失效:在web.config添加规则:
<configuration> <system.webServer> <rewrite> <rules> <rule name="WordPress" patternSyntax="Wildcard"> <match url="*" /> <conditions> <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>
引用说明:本文操作基于Microsoft IIS官方文档、PHP Windows部署指南及WordPress Codex,关键安全建议参考OWASP Web应用安全标准,MySQL配置遵循最小权限原则,内网环境需额外注意定期备份与权限隔离,建议通过组策略限制服务器访问范围。
原创文章,发布者:酷盾叔,转转请注明出处:https://www.kd.cn/ask/40599.html