# 一键部署方案

目标：像彩虹 kangle（kangle.cccyun.cn）一样，用一条命令把 kangle + easypanel + 面板模板装好。

## 一、彩虹那套的安装链路（已研究）

```
wget https://kangle.cccyun.cn/start && sh start
  └─ start（引导，23 行）
       ├─ 下载 /config     → 定义 DOWNLOAD_URL / DOWNLOAD_FILE_URL
       └─ 下载 /main.sh    → 安装为 /usr/bin/kanglesh（交互式菜单工具箱）
              └─ 调用 https://kangle.cccyun.cn/sh/kangle.sh <版本>
                     └─ 下载预编译包：
                        http://file.kangle.cccyun.cn/file/completed/kangle-ent-<版本>-<el版本>-x64.tar.gz
```

关键结论：
- **kangle 本体是预编译 tar 包**，可直接复用（已实测该 URL 返回 200）
- **PHP 各版本是在脚本里现场编译的**（kangle.sh 中有 cmake/make 流程），没有现成的 phpXX.tar.gz 可下
- main.sh 里另一半是运维工具箱（换源、DNS、NTP、BBR、Swap、iptables、MySQL 参数、Redis、fail2ban、SSL）

## 二、本仓库提供什么

| 脚本 | 作用 | 状态 |
|---|---|---|
| `deploy/apply-panel-template.sh` | 把模板 + 数据库模块 + 用量统计部署到现有服务器 | ✅ 本机验证过 |
| `deploy/harden-php.sh` | 启用 opcache、memory_limit 提到 256M | ✅ 本机验证过 |
| `tools/quota_scan.sh` | 统计各站点磁盘占用（修复首页用量空白） | ✅ 已在跑 |
| `install.sh`（规划中） | 从零一键装 kangle + 模板 + 加固 | ⏳ 需干净机器验证 |

## 三、现有服务器上怎么用

```bash
git clone http://git.ciyunshuju.com/root/kangle-easypanel-template.git /tmp/tpl
cd /tmp/tpl
bash deploy/apply-panel-template.sh    # 部署模板（自动备份 + 可回滚）
bash deploy/harden-php.sh              # PHP 加固
```

## 四、从零装一台新机（已验证的部分 + 待验证的部分）

已验证可直接复用：

```bash
# kangle 企业版预编译包（实测 200）
wget http://file.kangle.cccyun.cn/file/completed/kangle-ent-3.5.21.16-7-x64.tar.gz
tar xzf kangle-ent-3.5.21.16-7-x64.tar.gz
mkdir -p /vhs/kangle && cp -a kangle/. /vhs/kangle/
```

待验证（需要在干净 CentOS 7 上跑一遍）：
1. PHP 各版本的编译安装（照搬 kangle.sh 的编译参数）
2. MySQL / pure-ftpd 安装与初始化
3. easypanel 的授权文件与初始化向导

> 没有干净机器的情况下，把这些写死进一键脚本风险很高（装到一半失败会留下半残环境），
> 所以 `install.sh` 只做到「环境检查 + 依赖 + kangle 释放 + 模板部署 + 加固」，
> PHP/MySQL 留给面板或单独脚本，避免误导。

## 五、为什么不自建二进制源

PHP 扩展包与 kangle 一样是编译产物，涉及 glibc/openssl 版本绑定。自建源需要为每个
版本维护编译环境，成本高于收益；更实际的做法是复用官方预编译包 + 在面板里切换版本。
