# 🚀 部署指南

将您的 Astro 网站部署到 jiao77.cn (110.42.70.70) 服务器的完整步骤。

## 📋 部署前准备

### 1. 确认服务器环境
登录到您的服务器并检查：
```bash
# SSH 连接到服务器
ssh root@110.42.70.70  # 或您的用户名

# 检查 Apache 状态
sudo systemctl status apache2

# 检查 Apache 网站根目录
ls -la /var/www/jiao77.cn/

# 检查 Apache 模块
apache2ctl -M | grep -E "(rewrite|deflate|expires|headers)"
```

### 2. 启用必要的 Apache 模块
如果模块未启用，请运行：
```bash
sudo a2enmod rewrite
sudo a2enmod deflate  
sudo a2enmod expires
sudo a2enmod headers
sudo systemctl reload apache2
```

## 🚀 部署步骤

### 方法一：自动部署 (推荐)

1. **构建项目**
```bash
npm run build
```

2. **运行部署脚本**
```bash
./deploy.sh
```
按提示输入服务器用户名和网站根目录路径。

### 方法二：手动部署

1. **构建项目**
```bash
npm run build
```

2. **压缩文件**
```bash
cd dist
tar -czf ../website.tar.gz *
cd ..
```

3. **上传到服务器**
```bash
scp website.tar.gz root@110.42.70.70:/tmp/
```

4. **在服务器上解压**
```bash
ssh root@110.42.70.70
cd /var/www/html
sudo rm -rf *  # 清空现有文件 (请谨慎!)
sudo tar -xzf /tmp/website.tar.gz -C /var/www/html/
sudo chown -R www-data:www-data /var/www/html/
sudo chmod -R 755 /var/www/html/
```

### 方法三：使用 rsync (最佳选择)

```bash
# 直接同步 dist 目录内容
rsync -avz --delete --progress dist/ root@110.42.70.70:/var/www/html/
```

## ⚙️ Apache 配置

### 1. 配置虚拟主机 (可选但推荐)

将 `apache-config.conf` 的内容添加到您的 Apache 配置中：

```bash
# 在服务器上
sudo nano /etc/apache2/sites-available/jiao77.conf
# 粘贴 apache-config.conf 的内容

# 启用站点
sudo a2ensite jiao77.conf
sudo systemctl reload apache2
```

### 2. 上传 .htaccess 文件

确保 `.htaccess` 文件已上传到网站根目录：
```bash
scp .htaccess root@110.42.70.70:/var/www/html/
```

## 🔧 服务器优化

### 1. 设置正确的文件权限
```bash
sudo chown -R www-data:www-data /var/www/html/
sudo find /var/www/html/ -type d -exec chmod 755 {} \;
sudo find /var/www/html/ -type f -exec chmod 644 {} \;
```

### 2. 配置防火墙 (如果启用)
```bash
sudo ufw allow 80/tcp    # HTTP
sudo ufw allow 443/tcp   # HTTPS
```

## 📊 部署后检查

### 1. 功能测试
- [ ] 访问 http://jiao77.cn 或 http://110.42.70.70
- [ ] 检查首页导航卡片是否正常显示
- [ ] 访问 `/reports` 页面确认报告组件正常
- [ ] 测试页眉展开/收缩功能
- [ ] 检查移动端响应式设计
- [ ] 验证动画效果是否流畅

### 2. 性能测试
```bash
# 使用 curl 测试压缩
curl -H "Accept-Encoding: gzip" -I http://jiao77.cn

# 检查响应时间
curl -o /dev/null -s -w "时间: %{time_total}s\n" http://jiao77.cn
```

### 3. 在线工具检测
- [GTmetrix](https://gtmetrix.com/) - 性能分析
- [PageSpeed Insights](https://pagespeed.web.dev/) - Google 性能评分
- [SSL Labs](https://www.ssllabs.com/ssltest/) - SSL 配置检测 (如果使用 HTTPS)

## 🔄 更新部署流程

当您需要更新网站时：

1. **修改代码**
2. **重新构建**: `npm run build`
3. **部署**: `./deploy.sh`

## 🛡️ SSL/HTTPS 配置 (推荐)

### 1. 获取免费 SSL 证书 (Let's Encrypt)
```bash
sudo apt update
sudo apt install certbot python3-certbot-apache
sudo certbot --apache -d jiao77.cn -d www.jiao77.cn
```

### 2. 自动续期
```bash
sudo crontab -e
# 添加这行：
0 12 * * * /usr/bin/certbot renew --quiet
```

## 🐛 故障排除

### 问题1：页面不显示或显示 Apache 默认页
- 检查文件权限
- 确认 DocumentRoot 配置正确
- 查看 Apache 错误日志：`sudo tail -f /var/log/apache2/error.log`

### 问题2：CSS/JS 文件加载失败
- 检查 .htaccess 文件是否正确上传
- 确认 mod_rewrite 模块已启用
- 检查文件路径是否正确

### 问题3：动画效果不工作
- 检查 JavaScript 控制台错误
- 确认所有资源文件都已上传
- 验证 Content-Security-Policy 配置

### 问题4：移动端显示异常
- 检查 viewport meta 标签
- 验证响应式 CSS 是否正确加载
- 测试不同设备和浏览器

## 📞 技术支持

如果遇到部署问题，请检查：
1. Apache 错误日志：`/var/log/apache2/error.log`
2. Apache 访问日志：`/var/log/apache2/access.log`
3. 浏览器开发者工具控制台
4. 网络连接和防火墙设置

## 📈 监控和维护

建议设置：
- 定期备份网站文件
- 监控服务器资源使用情况
- 定期更新 Apache 和系统安全补丁
- 设置网站监控服务检测可用性