欢迎光临中国护送网
详情描述

一、环境准备

1. 阿里云ECS配置

  • 系统: Windows Server 2022 数据中心版
  • 实例规格: 建议2核4GB或以上
  • 安全组配置:
    • 开放端口: 80(HTTP), 443(HTTPS), 3389(RDP), 3306(MySQL可选)

2. 远程连接ECS

# 使用Windows远程桌面连接
mstsc /v:你的服务器公网IP

二、IIS服务器安装

1. 安装IIS服务

# 打开PowerShell(管理员身份)

# 安装Web服务器角色
Install-WindowsFeature -Name Web-Server -IncludeManagementTools

# 安装IIS管理控制台
Install-WindowsFeature -Name Web-Mgmt-Console

2. 安装必要功能

# 安装ASP.NET Core模块(可选)
Install-WindowsFeature -Name Web-Asp-Net45

# 安装CGI支持(用于PHP和Python)
Install-WindowsFeature -Name Web-CGI

# 安装URL重写模块
Install-WindowsFeature -Name Web-Url-Auth

# 或者通过Web平台安装器
# 下载WebPI: https://www.microsoft.com/web/downloads/platform.aspx

三、PHP安装与配置

1. 下载并安装PHP

# 下载PHP(以PHP 8.2为例)
# 访问: https://windows.php.net/download/

# 解压到 C:\PHP
New-Item -ItemType Directory -Path "C:\PHP" -Force
# 解压下载的zip文件到此目录

2. 配置PHP

# 复制配置文件
Copy-Item "C:\PHP\php.ini-production" "C:\PHP\php.ini"

# 编辑php.ini,修改以下配置
notepad C:\PHP\php.ini

php.ini关键配置:

extension_dir = "C:\PHP\ext"
upload_max_filesize = 100M
post_max_size = 100M
max_execution_time = 300
date.timezone = Asia/Shanghai

# 启用必要扩展
extension=mysqli
extension=mbstring
extension=openssl
extension=pdo_mysql

3. IIS配置PHP处理程序

打开IIS管理器 进入处理程序映射 添加模块映射:
请求路径: *.php
模块: FastCgiModule
可执行文件: C:\PHP\php-cgi.exe
名称: PHP via FastCGI

四、Python配置

1. 安装Python

# 下载Python安装包
# https://www.python.org/downloads/

# 安装时勾选"Add Python to PATH"

2. 配置Python CGI

# 测试Python是否安装成功
python --version

# 安装必要模块
pip install flask django mysql-connector-python

3. IIS配置Python处理

# 添加Python处理程序映射
# 在IIS管理器 -> 处理程序映射中

五、MySQL安装

1. 下载MySQL

# 下载MySQL Installer
# https://dev.mysql.com/downloads/installer/

2. 安装MySQL

选择安装类型:

  • 选择"Server only"或自定义安装
  • 设置root密码
  • 选择身份验证方式(推荐MySQL 8.0 caching_sha2_password)

3. 配置MySQL

-- 使用MySQL命令行创建数据库和用户
mysql -u root -p

CREATE DATABASE webapp DEFAULT CHARACTER SET utf8mb4;
CREATE USER 'webuser'@'localhost' IDENTIFIED BY 'YourPassword123!';
GRANT ALL PRIVILEGES ON webapp.* TO 'webuser'@'localhost';
FLUSH PRIVILEGES;

六、IIS网站配置

1. 创建网站

# 创建网站目录
New-Item -ItemType Directory -Path "C:\WebSites\MySite" -Force

2. IIS管理器配置

右键"网站" -> 添加网站 配置:
网站名称: MySite
物理路径: C:\WebSites\MySite
绑定: 
  - 类型: http
  - IP地址: 全部未分配
  - 端口: 80
  - 主机名: (留空或填写域名)

3. 应用程序池配置

创建新的应用程序池 设置.NET CLR版本: "无托管代码" 托管管道模式: 集成

七、安全配置

1. 防火墙设置

# 允许HTTP/HTTPS端口
New-NetFirewallRule -DisplayName "HTTP" -Direction Inbound -Protocol TCP -LocalPort 80 -Action Allow
New-NetFirewallRule -DisplayName "HTTPS" -Direction Inbound -Protocol TCP -LocalPort 443 -Action Allow

2. 文件权限设置

# 设置网站目录权限
icacls "C:\WebSites\MySite" /grant "IIS_IUSRS:(OI)(CI)F"

八、测试部署

1. PHP测试文件

<?php
// C:\WebSites\MySite\phpinfo.php
phpinfo();
?>

2. Python测试文件

# C:\WebSites\MySite\test.py
print("Content-Type: text/html\n")
print("<h1>Python CGI Test</h1>")
print("<p>Python is working!</p>")

3. 数据库连接测试

<?php
// C:\WebSites\MySite\db_test.php
$host = 'localhost';
$dbname = 'webapp';
$user = 'webuser';
$pass = 'YourPassword123!';

try {
    $pdo = new PDO("mysql:host=$host;dbname=$dbname;charset=utf8mb4", $user, $pass);
    echo "Database connection successful!";
} catch(PDOException $e) {
    echo "Connection failed: " . $e->getMessage();
}
?>

九、性能优化

1. IIS优化

<!-- 修改applicationHost.config -->
<system.webServer>
    <caching enabled="true" enableKernelCache="true">
    <urlCompression doStaticCompression="true" doDynamicCompression="true" />
</system.webServer>

2. PHP优化

; php.ini优化
opcache.enable=1
opcache.memory_consumption=256
opcache.max_accelerated_files=10000

3. MySQL优化

# my.ini优化
[mysqld]
innodb_buffer_pool_size = 512M
max_connections = 200
query_cache_size = 64M

十、常用维护命令

# 重启IIS
iisreset /restart

# 重启MySQL服务
net stop mysql
net start mysql

# 查看IIS日志
Get-Content C:\inetpub\logs\LogFiles\W3SVC1\u_ex*.log -Tail 100

# 备份网站
Compress-Archive -Path "C:\WebSites\MySite\*" -DestinationPath "C:\Backup\website_$(Get-Date -Format 'yyyyMMdd').zip"

十一、故障排查

常见问题解决:

500错误:检查应用程序池和文件权限 PHP无法执行:验证FastCGI设置和PHP安装 数据库连接失败:检查MySQL服务状态和防火墙设置 静态文件访问正常,动态文件500:检查处理程序映射

日志位置:

  • IIS日志: C:\inetpub\logs\LogFiles\
  • PHP错误日志: 查看php.ini中error_log设置
  • Windows事件日志: 应用程序和服务日志 -> Microsoft -> Windows

这个部署方案为您提供了一个完整的Windows Server 2022 IIS环境,支持PHP和Python应用运行,并与MySQL数据库集成。根据您的具体需求,可能还需要调整安全设置和性能参数。

相关帖子
红旗系统redflag6.0上 安装QQ的最简单方法
红旗系统redflag6.0上 安装QQ的最简单方法
2026年主流共享充电宝品牌的计费方式是怎样的,是否存在隐藏费用?
2026年主流共享充电宝品牌的计费方式是怎样的,是否存在隐藏费用?
铜陵市救护车出租收费标准-长途救护车租车
铜陵市救护车出租收费标准-长途救护车租车
在自媒体中引用他人的观点或图片时,怎样的“适当引用”才不算作侵权?
在自媒体中引用他人的观点或图片时,怎样的“适当引用”才不算作侵权?
影响降水概率预报准确性的主要因素,包括哪些技术挑战?
影响降水概率预报准确性的主要因素,包括哪些技术挑战?
乙肝会变成肝癌吗
乙肝会变成肝癌吗
德阳市SEO推广#商城网站定制开发,高端网站开发设计
德阳市SEO推广#商城网站定制开发,高端网站开发设计
如何看待网络上互相矛盾的信息,并从中梳理出更接近事实的版本?
如何看待网络上互相矛盾的信息,并从中梳理出更接近事实的版本?
郑州市小视频营销推广@品牌网站开发设计,服务可靠
郑州市小视频营销推广@品牌网站开发设计,服务可靠
枣庄市120救护车转运病人服务-急救车出租咨询电话,按公里收费
枣庄市120救护车转运病人服务-急救车出租咨询电话,按公里收费
六安市救护车长途转运病人-病人转院救护车,24小时随叫随到
六安市救护车长途转运病人-病人转院救护车,24小时随叫随到
对于工作繁忙的成年人,有哪些策略可以显著降低业余时间学习新知识的综合成本?
对于工作繁忙的成年人,有哪些策略可以显著降低业余时间学习新知识的综合成本?
2026年亲人离世后,如何通过“身后一件事”联办服务一次性处理多项事务?
2026年亲人离世后,如何通过“身后一件事”联办服务一次性处理多项事务?
Windows Server 2025服务器组介绍小结
Windows Server 2025服务器组介绍小结
良好的信用记录除了在借贷方面,在求职、租房等其他生活场景中有何重要作用?
良好的信用记录除了在借贷方面,在求职、租房等其他生活场景中有何重要作用?
在数字档案日益重要的未来,“被遗忘权”可能会面临哪些新的挑战?
在数字档案日益重要的未来,“被遗忘权”可能会面临哪些新的挑战?
人车分流设计真的能显著降低社区内儿童玩耍时的交通安全风险吗?
人车分流设计真的能显著降低社区内儿童玩耍时的交通安全风险吗?
港澳居民委托内地亲友代办购房手续,需要准备哪些公证认证文件?
港澳居民委托内地亲友代办购房手续,需要准备哪些公证认证文件?
宿州市救护车接送患者转院-医疗转运车出租
宿州市救护车接送患者转院-医疗转运车出租