在阿里云2核2GB服务器上部署禅道需要哪些步骤?

在阿里云 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 部署(推荐,资源占用可控)

这是最灵活的方式,可以精确控制每个容器的内存限制。

  1. 安装 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
  2. 创建项目目录并编写 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,具体版本请查阅最新文档,若镜像过大可考虑手动构建)

  3. 启动服务

    docker-compose up -d

方案 B:使用宝塔面板(适合新手,图形化管理)

如果你不熟悉命令行,宝塔面板是极佳的选择,它会自动处理依赖关系。

  1. 安装宝塔面板

    yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh ed8484bec

    (安装完成后记下面板地址、用户名和密码)

  2. 安装环境
    登录宝塔面板 -> 软件商店 -> 安装 LNMP 套件。

    • PHP 版本:推荐 PHP 7.4 或 8.0(避免使用过高的 PHP 8.2,2G 内存可能吃力)。
    • MySQL 版本:推荐 MySQL 5.7 或 8.0(根据磁盘空间,5.7 更省资源)。
    • Nginx:默认即可。
  3. 部署禅道

    • 进入宝塔面板“网站” -> “添加站点”。
    • 输入域名(或使用服务器 IP)。
    • 在“数据库”中选择新建一个 MySQL 数据库(如 zentaodb),记录账号密码。
    • 下载禅道安装包(去官网下载最新版 zip 包上传到 /www/wwwroot/你的域名)。
    • 解压后,在浏览器访问 http://服务器IP,按照向导进行安装。
    • 关键步骤:在安装向导中填写刚才创建的数据库信息。

3. 安装后的关键配置

无论采用哪种方式,2G 内存服务器都需要进行以下优化:

  1. 关闭不必要的后台服务
    如果是云服务器,确保只开启了必要的服务(如 Nginx, PHP-FPM, MySQL)。

  2. 调整 PHP 内存限制
    编辑 php.ini,设置合理的上限,防止单个请求撑爆内存。

    memory_limit = 128M
    max_execution_time = 60
    post_max_size = 16M
    upload_max_filesize = 16M
  3. 调整 MySQL 配置
    如果是手动配置 MySQL,需在 my.cnf 中限制内存:

    [mysqld]
    innodb_buffer_pool_size = 128M
    max_connections = 50
  4. 配置 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 的配置:

  1. 必须开启 Swap,否则高并发下极易宕机。
  2. 优先使用 Docker 部署,利用容器限制内存(如限制 MySQL 为 512MB,PHP 为 512MB),比传统 LAMP/LNMP 架构更容易控制资源。
  3. 如果业务量较大(超过 10 人同时在线),建议考虑升级至 4GB 内存,或开启阿里云的“按量付费”弹性扩容策略。
未经允许不得转载:CLOUD技术博 » 在阿里云2核2GB服务器上部署禅道需要哪些步骤?