在阿里云 Windows Server 2022 上搭建网站环境,通常采用 IIS (Internet Information Services) 作为 Web 服务器,配合 PHP/Java/.NET 等语言运行环境。对于大多数中小型网站或企业官网,推荐配置 IIS + MySQL + PHP (简称 WAMP 变体) 或 IIS + Nginx (反向X_X) + .NET Core。
以下是基于 IIS + MySQL + PHP 的经典配置方案(适用于 WordPress、Discuz! 等常见 CMS),同时也包含必要的阿里云安全组设置。
第一步:基础网络与安全组配置(关键)
在操作系统内部安装软件前,必须先在阿里云控制台开放端口,否则外部无法访问。
- 登录 阿里云控制台 -> 云服务器 ECS。
- 找到你的实例,点击右侧的 更多 -> 网络和安全组 -> 安全组配置。
- 创建或编辑入方向规则,添加以下端口:
- 80 (HTTP):Web 服务默认端口。
- 443 (HTTPS):如果后续配置 SSL 证书需要。
- 3389 (RDP):远程桌面连接(仅建议通过 IP 白名单限制,生产环境不建议对全网开放)。
- 3306 (MySQL):强烈建议不要对公网开放,仅在安全组内限制为“仅限本机”或特定管理 IP,防止数据库被扫描攻击。
第二步:安装 IIS 及扩展功能
Windows Server 2022 默认已安装 IIS,但需要启用相关角色和功能。
- 打开服务器管理器:
- 右键开始菜单 -> 服务器管理器 -> 添加角色和功能。
- 选择角色:
- 勾选 Web 服务器 (IIS)。
- 在“角色服务”中,务必勾选以下核心组件:
- CGI (运行 PHP 必需)
- ASP.NET (如果使用 .NET 程序)
- HTTP 重定向
- 静态内容
- 常用 HTTP 功能 (包括目录浏览、错误页等)
- 日志记录工具
- WMI 性能
- 完成安装:点击下一步直到安装完成。
第三步:配置网站根目录与虚拟主机
假设你的网站代码放在 D:wwwrootmywebsite。
-
创建目录:
- 在
D:盘新建文件夹wwwroot,并在其中建立子文件夹mywebsite。 - 确保该文件夹有写入权限(IIS_IUSRS 用户需拥有修改权限,特别是上传插件或缓存时)。
- 在
-
启动 IIS 管理器:
- 运行
inetmgr或在开始菜单搜索 "Internet Information Services (IIS) Manager"。
- 运行
-
绑定域名/IP:
- 展开左侧树形结构,右键 网站 -> 添加网站。
- 网站名称:自定义(如
MySite)。 - 物理路径:选择
D:wwwrootmywebsite。 - 绑定:
- 类型:
http - IP 地址:
全部未分配或指定公网 IP。 - 端口:
80。 - 主机名:填写你的域名(如
www.example.com)。
- 类型:
第四步:安装数据库 (MySQL) 与 PHP 环境
推荐使用集成包简化安装,例如 phpStudy (国内常用)、XAMPP 或手动安装。考虑到稳定性,推荐手动安装或使用官方安装包。
方案 A:使用 phpStudy (适合新手,快速部署)
- 下载并安装 phpStudy for Windows。
- 启动后,在面板中选择 PHP 版本(推荐 7.4 或 8.1+)和 MySQL 版本(5.7 或 8.0)。
- 点击 启动 服务。
- 配置 IIS 关联:
- 在 phpStudy 面板中找到 伪静态 或 站点管理,将你的网站目录添加进去。
- 或者在 IIS 管理器中,进入网站 -> 处理程序映射 -> 添加模块映射。
- 请求路径:
*.php - 可执行文件:指向 php-cgi.exe 的路径(例如
C:phpstudy_proExtensionsphpphp8.1.2ntsphp-cgi.exe)。 - 请求限制:允许脚本。
- 名称:
FastCGI_PHP。
- 请求路径:
方案 B:手动安装 (更稳定,推荐生产环境)
- 安装 MySQL:
- 下载 MySQL Installer for Windows。
- 安装时注意设置 root 密码,并记住端口(默认 3306)。
- 安装 PHP:
- 从微软官网下载
php-8.x.x-Win32-vs16-x64.zip。 - 解压到
D:php。 - 复制
php.ini-development为php.ini。 - 修改
php.ini:- 取消注释
extension_dir = "ext"。 - 开启必要扩展:
extension=mysqli,extension=gd,extension=pdo_mysql等。 - 设置
memory_limit = 512M。
- 取消注释
- 从微软官网下载
- 配置 IIS 处理 PHP:
- 在 IIS 管理器 -> 网站 -> 处理程序映射 -> 添加模块映射。
- 路径:
*.php - 可执行文件:
D:phpphp-cgi.exe -b 127.0.0.1:9000(或者直接使用 FastCGI 设置)。 - 名称:
PHP-FastCGI。
- 测试:创建一个
info.php文件,内容为<?php phpinfo(); ?>,访问http://your-ip/info.php查看是否显示 PHP 信息。
第五步:配置伪静态 (Rewrite Rules)
大多数 CMS(如 WordPress, ThinkPHP)都需要伪静态支持。
- 在 IIS 管理器中,选中你的网站,双击 URL 重写 (URL Rewrite)。
- 点击右侧 添加规则 -> 预设规则 -> 选择对应的 CMS 规则(如 WordPress, Discuz! 等)。
- 如果没有预设,需手动添加
.htaccess风格的规则。- 例如 WordPress 规则:
<rule name="WordPress Rule"> <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> - 注意:IIS 的 rewrite 规则语法与 Apache 不同,建议在 IIS 管理器界面操作或导入
.rules文件。
- 例如 WordPress 规则:
第六步:SSL 证书配置 (HTTPS)
为了安全,建议配置 HTTPS。
- 申请证书:
- 可以在阿里云 SSL 证书管理服务 免费申请 DV 证书。
- 下载证书文件(
.crt和.key)。
- 绑定证书到 IIS:
- 打开 IIS 管理器 -> 选择 服务器节点(最顶层)-> 服务器证书。
- 点击右侧 导入,导入
.pfx格式证书(需将 crt 和 key 合并为 pfx,或使用阿里云提供的打包工具)。 - 回到 网站 -> 绑定 -> 添加新绑定。
- 类型选择 https,端口 443,选择刚才导入的证书。
- 强制跳转:
- 在 URL 重写 中添加规则,将所有 http 流量强制跳转到 https。
第七步:系统优化与安全加固
- 关闭不必要的服务:
- 按
Win+R输入services.msc,停止并禁用非必要的服务(如 Print Spooler, Remote Registry 等)。
- 按
- 防火墙设置:
- 确保 Windows 防火墙只开放了 80, 443, 3389 (限 IP) 等必要端口。
- 定期备份:
- 利用阿里云的 快照 功能,每周自动对系统盘和数据盘进行快照备份。
- 数据库定期导出备份到本地或其他 OSS 存储桶。
- 更新补丁:
- 保持 Windows Update 开启,及时修复系统漏洞。
常见问题排查
- 500 Internal Server Error:通常是 PHP 配置错误或权限问题。检查
php.ini语法,确认D:wwwroot文件夹权限是否授予了IIS_IUSRS和SYSTEM读写权限。 - 无法连接数据库:检查 MySQL 服务是否启动,防火墙是否拦截 3306,以及
php.ini中的mysqli.default_port是否正确。 - 中文乱码:确保
php.ini中default_charset设置为UTF-8,且数据库字符集也是utf8mb4。
按照以上步骤,你就可以在阿里云 Windows Server 2022 上构建一个稳定、安全的网站环境。如果你使用的是 .NET Core 或 Java (Tomcat),流程类似,只需替换中间件部分即可。
云计算