在阿里云 Windows Server 2022 64 位服务器上搭建网站环境,最主流且稳定的方案是 IIS + PHP/ASP.NET + MySQL/MariaDB(即类似 WAMP/XAMPP 的组合)。
以下是基于生产环境的详细配置指南,分为基础环境准备、Web 服务搭建、数据库安装、站点部署及安全加固五个步骤。
第一步:基础环境准备
在开始安装软件前,建议先完成系统层面的优化和端口开放。
-
连接与更新
- 通过远程桌面 (RDP) 登录服务器。
- 打开 PowerShell(管理员身份),运行以下命令更新系统补丁:
Start-Process powershell -ArgumentList "winget upgrade --all" -Verb RunAs # 或者使用 Windows Update 手动检查更新
-
配置阿里云安全组(关键)
- 登录阿里云控制台 -> 云服务器 ECS -> 实例列表 -> 点击实例 ID -> 网络和安全组 -> 安全组规则。
- 确保入方向规则已放行以下端口:
80(HTTP)443(HTTPS)3306(MySQL,建议仅对特定 IP 开放或关闭网络访问)3389(远程桌面,建议修改默认端口以增加安全性)
-
启用 IIS 功能
- 打开“服务器管理器” -> “管理” -> “添加角色和功能”。
- 一路 Next,直到“服务器角色”页面。
- 勾选 Web 服务器 (IIS)。
- 在右侧的“角色服务”中,根据需求勾选:
- 通用 HTTP 功能
- 应用程序开发:勾选
.NET Extensibility、CGI、ISAPI Extensions、ISAPI Filters。 - 性能:
Static Content Compression(静态内容压缩)。 - 安全性:
Request Filtering(请求筛选)。
- 完成安装后重启服务器。
第二步:安装 Web 语言环境 (以 PHP 为例)
注:如果您的网站是 ASP.NET (.NET Core/.NET Framework),请跳过此步,直接安装 .NET Runtime。以下以 PHP 7.4/8.x 为例。
-
下载安装包
- 推荐从 phpstudy_pro 或 WampServer 下载集成包(适合新手,一键安装)。
- 或者前往 windows.php.net 下载非线程安全 (NTS) 版本,配合 IIS 使用(推荐高级用户)。
-
IIS + PHP 配置 (手动版流程)
如果使用官方独立包,需进行以下配置:- 解压:将 PHP 解压到
C:PHP。 - 配置文件:复制
php.ini-development为php.ini,编辑该文件:- 取消注释
extension_dir = "ext"。 - 开启常用扩展:
extension=php_curl.dll,extension=php_mysqli.dll,extension=php_mbstring.dll等。
- 取消注释
- IIS 配置:
- 打开 IIS 管理器。
- 点击左侧服务器节点 -> 处理程序映射 -> 添加模块映射。
- 路径:
*.php,可执行模块:C:PHPphp-cgi.exe。 - 名称:
PHP via FastCGI。 - 点击右侧 请求筛选 -> 编辑特征集 -> 勾选 允许脚本源。
- 测试:创建一个
info.php文件放在网站根目录,内容为<?php phpinfo(); ?>,浏览器访问http://你的公网IP/info.php查看是否显示信息。
- 解压:将 PHP 解压到
第三步:安装数据库 (MySQL / MariaDB)
-
下载与安装
- 访问 MySQL 官网 或 MariaDB 下载 Windows MSI 安装包。
- 安装过程中选择 Developer Default 或 Server only。
- 重要:设置
root密码(建议使用强密码),并勾选 Configure the MySQL Server now 进行初始化。
-
配置防火墙例外
- 如果未自动添加规则,需在 Windows 防火墙中添加
3306端口的入站规则(TCP)。 - 安全建议:在阿里云安全组中,不要对公网开放 3306 端口。仅允许本地回环
127.0.0.1或应用服务器内部 IP 访问数据库。
- 如果未自动添加规则,需在 Windows 防火墙中添加
-
验证连接
- 使用命令行
mysql -u root -p登录,确认无报错。
- 使用命令行
第四步:部署网站代码
-
创建网站目录
- 在 D 盘或 C 盘创建项目文件夹,例如
D:wwwrootmywebsite。 - 上传您的网站源码(支持 FTP/SFTP 工具如 FileZilla,或使用 WinSCP)。
- 在 D 盘或 C 盘创建项目文件夹,例如
-
配置 IIS 站点
- 打开 IIS 管理器 -> 网站 -> 添加网站。
- 站点名称:自定义(如 MyWebSite)。
- 物理路径:指向刚才创建的文件夹 (
D:wwwrootmywebsite)。 - 绑定:
- 类型:
http - IP 地址:
所有未分配 - 端口:
80 - 主机名:填写您的域名(如
www.example.com)。
- 类型:
- 应用程序池:
- 如果是 PHP,选择默认的
DefaultAppPool或新建一个。 - 右键应用程序池 -> 高级设置 -> 托管管道模式 选择 Integrated (集成模式)。
- 如果是 PHP,确保勾选 启用 32 位应用程序 为
True(取决于 PHP 版本是 32 位还是 64 位,通常 64 位系统用 64 位 PHP 设为 False)。
- 如果是 PHP,选择默认的
-
权限设置
- 右键网站文件夹 -> 属性 -> 安全。
- 确保
IIS_IUSRS和Users拥有 读取和执行 权限。 - 如果是写数据(如上传附件、日志),需赋予 修改 权限给
IIS_IUSRS。
第五步:SSL 证书与安全加固 (HTTPS)
为了保障数据传输安全,强烈建议配置 HTTPS。
-
申请 SSL 证书
- 免费方式:在阿里云控制台搜索“云盾 SSL 证书”,申请免费的 DV 证书(有效期 1 年)。
- 付费方式:购买商业证书以获得更多信任标识。
-
导入证书
- 下载证书文件(
.crt和.key或.pfx)。 - 在 IIS 管理器 -> 点击左侧服务器节点 -> 服务器证书 -> 完成证书向导,导入
.pfx文件(需包含私钥)或分别导入公钥和私钥。
- 下载证书文件(
-
绑定 HTTPS
- 回到 网站 -> 选中您的站点 -> 绑定。
- 点击 添加 -> 类型选择
https-> 端口443-> 选择刚才导入的证书。 - 保存。
-
强制跳转 HTTP 到 HTTPS (可选)
- 在 IIS 中安装 URL Rewrite 模块。
- 在站点下添加重写规则,将所有 80 端口的请求重定向到 443。
常见问题排查
- 500 错误:通常是 PHP 版本不匹配、权限不足或
php.ini配置错误。查看C:WindowsSystem32winevtLogsMicrosoft-IIS下的日志或 IIS 事件查看器。 - 无法连接数据库:检查 SQL 服务是否启动 (
services.msc中找 MySQL),检查防火墙是否拦截了 3306,以及代码中的连接账号密码是否正确。 - 404 错误:检查网站物理路径是否正确,或者
.htaccess(Apache 风格) 文件在 IIS 中未被识别(IIS 主要依赖web.config)。
按照以上步骤,您即可在阿里云 Windows Server 2022 上构建一个稳定、安全的 Web 环境。如果您有特定的框架需求(如 WordPress, ThinkPHP, .NET Core),可以在第四步替换对应的部署脚本。
CLOUD云枢