在阿里云 2 核 2GB 的轻量应用服务器或 ECS 上部署禅道(ZenTao),由于内存资源相对紧张,需要特别注意软件版本的选型和配置优化。以下是基于 Linux 环境(推荐 Ubuntu 20.04/22.04 或 CentOS 7/8)的标准部署步骤:
1. 前期准备与系统优化
由于 2GB 内存运行 PHP + MySQL + Web 服务较为吃紧,建议先调整系统参数以防止 OOM(内存溢出)。
-
增加 Swap 交换分区(至关重要):
如果服务器没有 Swap,建议在安装前创建一个 2GB-4GB 的 Swap 文件。# 创建 2G 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 -
安全组配置:
登录阿里云控制台,在“安全组”规则中放行以下端口:80(HTTP)3306(MySQL,仅允许本地访问或特定 IP,生产环境不建议直接对公网开放)8080(禅道默认端口,若使用 Nginx 反向X_X则需开放 80)
2. 选择部署方式
对于 2 核 2G 的配置,推荐使用 Docker 方式部署,或者使用 宝塔面板(Bt-Panel)的一键部署功能。这两种方式管理方便且资源隔离较好。
方案 A:使用 Docker 部署(推荐,资源占用可控)
这是最灵活的方式,可以精确控制每个容器的内存限制。
-
安装 Docker 和 Docker Compose:
# Ubuntu 示例 curl -fsSL https://get.docker.com | sh sudo usermod -aG docker $USER newgrp docker # 安装 compose sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose sudo chmod +x /usr/local/bin/docker-compose -
创建项目目录并编写
docker-compose.yml:
创建文件夹cd /root/zentao && mkdir zentao,然后创建配置文件。注意:为了节省内存,建议将 MySQL 和 PHP 的内存限制调低。
version: '3.8' services: mysql: image: mysql:5.7 restart: always environment: MYSQL_ROOT_PASSWORD: your_password MYSQL_DATABASE: zentaodb TZ: Asia/Shanghai volumes: - ./data/mysql:/var/lib/mysql deploy: resources: limits: memory: 512M command: --max_connections=100 --innodb_buffer_pool_size=128M php: image: centos/zentao:latest restart: always ports: - "8080:80" environment: ZENTAO_ROOT: /opt/zentaopms ZENTAO_MODE: prod volumes: - ./data/zentaodata:/opt/zentaopms/data - ./data/zentaolog:/opt/zentaopms/log depends_on: - mysql deploy: resources: limits: memory: 512M(注:CentOS/ZenTao 官方镜像通常已内置 Nginx/Apache,具体版本请查阅最新文档,若镜像过大可考虑手动构建)
-
启动服务:
docker-compose up -d
方案 B:使用宝塔面板(适合新手,图形化管理)
如果你不熟悉命令行,宝塔面板是极佳的选择,它会自动处理依赖关系。
-
安装宝塔面板:
yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh ed8484bec(安装完成后记下面板地址、用户名和密码)
-
安装环境:
登录宝塔面板 -> 软件商店 -> 安装 LNMP 套件。- PHP 版本:推荐 PHP 7.4 或 8.0(避免使用过高的 PHP 8.2,2G 内存可能吃力)。
- MySQL 版本:推荐 MySQL 5.7 或 8.0(根据磁盘空间,5.7 更省资源)。
- Nginx:默认即可。
-
部署禅道:
- 进入宝塔面板“网站” -> “添加站点”。
- 输入域名(或使用服务器 IP)。
- 在“数据库”中选择新建一个 MySQL 数据库(如
zentaodb),记录账号密码。 - 下载禅道安装包(去官网下载最新版 zip 包上传到
/www/wwwroot/你的域名)。 - 解压后,在浏览器访问
http://服务器IP,按照向导进行安装。 - 关键步骤:在安装向导中填写刚才创建的数据库信息。
3. 安装后的关键配置
无论采用哪种方式,2G 内存服务器都需要进行以下优化:
-
关闭不必要的后台服务:
如果是云服务器,确保只开启了必要的服务(如 Nginx, PHP-FPM, MySQL)。 -
调整 PHP 内存限制:
编辑php.ini,设置合理的上限,防止单个请求撑爆内存。memory_limit = 128M max_execution_time = 60 post_max_size = 16M upload_max_filesize = 16M -
调整 MySQL 配置:
如果是手动配置 MySQL,需在my.cnf中限制内存:[mysqld] innodb_buffer_pool_size = 128M max_connections = 50 -
配置 Nginx 反向X_X(可选但推荐):
为了安全性,不要直接暴露后端端口。配置 Nginx 监听 80 端口,转发到 8080 或 9000 端口。server { listen 80; server_name your-domain.com; # 或服务器 IP location / { proxy_pass http://127.0.0.1:8080; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } }
4. 常见问题排查
- 页面加载慢或卡死:通常是 MySQL 连接数过多或 PHP 内存不足。检查
top命令查看进程占用,适当增加 Swap 大小。 - 无法访问:检查阿里云安全组是否放行了 80 端口,以及 Nginx/Apache 状态是否正常 (
systemctl status nginx)。 - 数据丢失风险:定期通过宝塔的“备份”功能或脚本,将数据库和代码目录备份到阿里云 OSS 或本地 NAS。
总结建议
对于 2 核 2GB 的配置:
- 必须开启 Swap,否则高并发下极易宕机。
- 优先使用 Docker 部署,利用容器限制内存(如限制 MySQL 为 512MB,PHP 为 512MB),比传统 LAMP/LNMP 架构更容易控制资源。
- 如果业务量较大(超过 10 人同时在线),建议考虑升级至 4GB 内存,或开启阿里云的“按量付费”弹性扩容策略。
CLOUD技术博