在阿里云 2核2GB(2C2G)服务器上部署禅道(ZenTao)是一个常见但具有挑战性的任务,因为禅道对内存有一定要求。虽然官方推荐配置更高,但在优化得当的情况下,2C2G 可以运行社区版。
以下是详细、安全的部署步骤,采用 Docker 方式(推荐,资源隔离好、易管理)和 源码/安装包方式(备选)两种方案。
✅ 推荐方案:使用 Docker 部署(最简洁、稳定)
前提条件
- 登录阿里云 ECS 控制台。
- 确保服务器已安装 Docker 和 Docker Compose。
- 开放安全组端口:
80,443,3306(如使用外部 MySQL)。
步骤 1:安装 Docker 和 Docker Compose
# 更新系统
sudo yum update -y
# 安装 Docker
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
# 启动 Docker 并设置开机自启
sudo systemctl start docker
sudo systemctl enable docker
# 验证安装
docker --version
docker-compose --version # 如果未安装,可执行:pip install docker-compose 或单独下载二进制文件
💡 注意:阿里云 CentOS 7/8 推荐使用
yum安装;Ubuntu 用户使用apt。
步骤 2:创建项目目录与配置文件
mkdir ~/zentao-docker
cd ~/zentao-docker
创建 docker-compose.yml 文件:
version: '3'
services:
zentao:
image: easzlab/zentao:latest
container_name: zentao
ports:
- "80:80"
- "443:443"
environment:
- PMA_ARBITRARY=1
- ZENTAO_MODE=standard
volumes:
- ./data/zentao:/opt/www
- ./logs:/var/log/apache2
restart: always
depends_on:
- mysql
mysql:
image: mysql:5.7
container_name: zentao-mysql
environment:
MYSQL_ROOT_PASSWORD: your_secure_password_here # ⚠️ 修改为强密码
MYSQL_DATABASE: zentao
MYSQL_USER: zentao
MYSQL_PASSWORD: zentao_password_here # ⚠️ 修改为强密码
volumes:
- ./data/mysql:/var/lib/mysql
restart: always
🔒 安全提示:务必替换
your_secure_password_here和zentao_password_here为强密码!
步骤 3:启动服务
docker-compose up -d
等待几分钟,检查容器状态:
docker ps
应看到两个运行中的容器:zentao 和 zentao-mysql。
步骤 4:访问禅道 Web 界面
浏览器访问:http://<你的公网IP>
首次访问会进入安装向导:
- 数据库类型:MySQL
- 主机:
mysql(Docker 内部网络名称) - 用户名:
zentao - 密码:你设置的
zentao_password_here - 数据库名:
zentao
按照提示完成管理员账户创建。
步骤 5:性能优化(关键!针对 2C2G)
由于内存有限,需进行以下优化:
1. 限制 MySQL 内存使用
编辑 docker-compose.yml 中 mysql 服务的 command:
mysql:
image: mysql:5.7
command: --max_connections=100 --innodb-buffer-pool-size=64M --tmp-table-size=16M --max-heap-table-size=16M
...
2. 启用 Swap 分区(防止 OOM)
# 创建 2GB swap 文件
sudo fallocate -l 2G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
# 永久生效
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
3. 调整 PHP 内存限制(可选)
如需自定义 php.ini,可挂载到容器中,但通常默认值在 2C2G 下勉强够用。
❗ 备选方案:使用宝塔面板 + 一键安装包
如果你不熟悉 Docker,可使用宝塔面板简化操作:
步骤 1:安装宝塔面板
curl -sSO https://download.bt.cn/install/install_6.0.sh && sh install_6.0.sh ed8484bec
安装完成后记录账号密码。
步骤 2:安装 LNMP 环境
在宝塔面板中:
- 软件商店 → 安装 Nginx 1.20+、MySQL 5.7、PHP 7.4
- 关闭不必要的扩展以节省内存
步骤 3:部署禅道
- 下载禅道 Linux 安装包(官网:https://www.zentao.net/download.html)
- 解压到
/www/wwwroot/zentao - 配置虚拟主机指向该目录
- 访问域名/IP 进行安装
⚠️ 此方式资源占用略高,建议同样开启 Swap 并优化 MySQL 参数。
🛡️ 安全与维护建议
- 防火墙与安全组:仅开放 80/443 端口,禁止直接 SSH 暴露(改用密钥认证)。
- 定期备份:
# 备份数据目录 tar -czf /backup/zentao-backup-$(date +%F).tar.gz ~/zentao-docker/data/ - 监控资源:使用
htop或阿里云云监控观察 CPU/内存使用情况。 - 升级禅道:拉取最新镜像即可:
docker-compose pull docker-compose up -d
📊 性能预期
| 指标 | 表现 |
|---|---|
| 并发用户 | ≤ 10 人同时在线 |
| 项目数量 | ≤ 5 个活跃项目 |
| 响应速度 | 正常,高峰可能略有延迟 |
| 稳定性 | 配合 Swap 可长期运行 |
💡 如果团队超过 10 人或项目增多,建议升级到 4C8G 以上配置。
如有问题,可查看日志:
docker logs zentao
docker logs zentao-mysql
祝你部署顺利!🎉
云服务器