# 使用Windows远程桌面连接
mstsc /v:你的服务器公网IP
# 打开PowerShell(管理员身份)
# 安装Web服务器角色
Install-WindowsFeature -Name Web-Server -IncludeManagementTools
# 安装IIS管理控制台
Install-WindowsFeature -Name Web-Mgmt-Console
# 安装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(以PHP 8.2为例)
# 访问: https://windows.php.net/download/
# 解压到 C:\PHP
New-Item -ItemType Directory -Path "C:\PHP" -Force
# 解压下载的zip文件到此目录
# 复制配置文件
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
请求路径: *.php
模块: FastCgiModule
可执行文件: C:\PHP\php-cgi.exe
名称: PHP via FastCGI
# 下载Python安装包
# https://www.python.org/downloads/
# 安装时勾选"Add Python to PATH"
# 测试Python是否安装成功
python --version
# 安装必要模块
pip install flask django mysql-connector-python
# 添加Python处理程序映射
# 在IIS管理器 -> 处理程序映射中
# 下载MySQL Installer
# https://dev.mysql.com/downloads/installer/
选择安装类型:
-- 使用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;
# 创建网站目录
New-Item -ItemType Directory -Path "C:\WebSites\MySite" -Force
网站名称: MySite
物理路径: C:\WebSites\MySite
绑定:
- 类型: http
- IP地址: 全部未分配
- 端口: 80
- 主机名: (留空或填写域名)
# 允许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
# 设置网站目录权限
icacls "C:\WebSites\MySite" /grant "IIS_IUSRS:(OI)(CI)F"
<?php
// C:\WebSites\MySite\phpinfo.php
phpinfo();
?>
# C:\WebSites\MySite\test.py
print("Content-Type: text/html\n")
print("<h1>Python CGI Test</h1>")
print("<p>Python is working!</p>")
<?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();
}
?>
<!-- 修改applicationHost.config -->
<system.webServer>
<caching enabled="true" enableKernelCache="true">
<urlCompression doStaticCompression="true" doDynamicCompression="true" />
</system.webServer>
; php.ini优化
opcache.enable=1
opcache.memory_consumption=256
opcache.max_accelerated_files=10000
# 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"
C:\inetpub\logs\LogFiles\error_log设置这个部署方案为您提供了一个完整的Windows Server 2022 IIS环境,支持PHP和Python应用运行,并与MySQL数据库集成。根据您的具体需求,可能还需要调整安全设置和性能参数。