如何在阿里云轻量应用服务器上安装和配置禅道?

在阿里云轻量应用服务器(Lightweight Application Server, LAMP/LEMP 环境)上安装和配置禅道(ZenTao)是一个常见需求。以下是基于官方推荐方式的详细步骤,适用于大多数场景(以 CentOS 7/8 或 Ubuntu 20.04/22.04 为例)。


✅ 前提条件

  1. 已购买并登录阿里云轻量应用服务器实例。
  2. 已设置 root 密码或具有 sudo 权限的普通用户。
  3. 开放必要端口:80(HTTP)、443(HTTPS,可选)、3306(MySQL,仅本地访问)等。
  4. 建议系统为 CentOS 7+Ubuntu 20.04+(官方支持最佳)。

🚀 方法一:使用 Docker 安装(推荐,简单、隔离性好)

步骤 1:安装 Docker 和 Docker Compose

CentOS 7/8:

sudo yum install -y docker-compose
sudo systemctl start docker
sudo systemctl enable docker
# 若未安装 docker,先安装:
sudo yum install -y docker
sudo systemctl start docker
sudo systemctl enable docker

Ubuntu 20.04+:

sudo apt update
sudo apt install -y docker.io docker-compose-plugin
sudo systemctl start docker
sudo systemctl enable docker
sudo usermod -aG docker $USER  # 避免每次用 sudo
newgrp docker  # 使组生效

💡 验证:docker --versiondocker compose version


步骤 2:拉取并运行禅道镜像

禅道官方提供 Docker 镜像,支持一键部署:

mkdir zentao && cd zentao
cat > docker-compose.yml << 'EOF'
version: '3.8'
services:
  mysql:
    image: mysql:5.7
    environment:
      MYSQL_ROOT_PASSWORD: your_strong_password_here
      MYSQL_DATABASE: zentao
      MYSQL_USER: zentao_user
      MYSQL_PASSWORD: zentao_pass
    volumes:
      - ./data/mysql:/var/lib/mysql
    restart: always
    networks:
      - zentao-net

  zentao:
    image: zenTao/zen-tao:latest
    ports:
      - "80:80"
    depends_on:
      - mysql
    environment:
      ZENTAO_DB_HOST: mysql
      ZENTAO_DB_PORT: 3306
      ZENTAO_DB_USER: zentao_user
      ZENTAO_DB_PASS: zentao_pass
      ZENTAO_DB_NAME: zentao
    volumes:
      - ./data/zentao:/opt/zbox/data
    restart: always
    networks:
      - zentao-net

networks:
  zentao-net:
    driver: bridge
EOF

⚠️ 注意

  • your_strong_password_herezentao_userzentao_pass 替换为强密码(生产环境务必修改!)
  • 首次运行时会自动初始化数据库

启动服务:

docker compose up -d

查看状态:

docker compose ps

访问:http://<你的公网IP>
默认账号:admin / admin(首次登录后请立即修改密码!)


步骤 3:配置 HTTPS(可选但推荐)

使用 Nginx 反向X_X + Let’s Encrypt(certbot):

# 安装 certbot 插件
sudo apt install -y certbot python3-certbot-nginx  # Ubuntu
# 或:sudo yum install -y python3-certbot-nginx     # CentOS

# 申请证书(需域名解析到服务器 IP)
sudo certbot --nginx -d your-domain.com

# 自动续期测试
sudo certbot renew --dry-run

🔐 若暂无域名,可先用 HTTP 访问,后续再补 SSL。


⚙️ 方法二:传统 LAMP 手动安装(适合无 Docker 环境)

适用于无法使用 Docker 的场景,但维护成本更高。

步骤 1:安装依赖(以 Ubuntu 为例)

sudo apt update
sudo apt install -y nginx php-fpm php-mysql php-gd php-mbstring 
                    php-curl php-zip php-json php-opcache 
                    mysql-server wget unzip

步骤 2:下载并解压禅道

cd /var/www/html
sudo wget https://www.zentao.net/download/ZenTaoPMS_17.6.zip
sudo unzip ZenTaoPMS_17.6.zip
sudo mv ZenTaoPMS_17.6/* .
sudo rm ZenTaoPMS_17.6.zip
sudo chown -R www-data:www-data /var/www/html

步骤 3:配置 MySQL

CREATE DATABASE zentao DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
CREATE USER 'zentao'@'localhost' IDENTIFIED BY 'your_strong_password';
GRANT ALL PRIVILEGES ON zentao.* TO 'zentao'@'localhost';
FLUSH PRIVILEGES;

步骤 4:配置 Nginx

创建 /etc/nginx/sites-available/zentao:

server {
    listen 80;
    server_name your-domain.com;  # 或 _ (匹配所有)

    root /var/www/html;
    index index.php;

    location ~ .php$ {
        fastcgi_pass unix:/run/php/php8.1-fpm.sock;  # 根据 PHP 版本调整
        fastcgi_index index.php;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    }

    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }
}

启用站点:

sudo ln -s /etc/nginx/sites-available/zentao /etc/nginx/sites-enabled/
sudo nginx -t && sudo systemctl reload nginx

步骤 5:访问安装向导

浏览器打开 http://<服务器IP> → 按提示完成安装(输入 DB 信息:host=localhost, db=zentao, user=zentao, pass=xxx)。


🔒 安全加固建议(重要!)

项目 操作
修改默认密码 登录后立即改 admin 密码;DB 密码勿硬编码在代码中
限制 IP 访问 在阿里云控制台安全组中,仅允许特定 IP 访问 80/443(开发测试可放宽)
禁用 PHP 错误显示 display_errors = Off in php.ini
定期备份 使用 mysqldump 备份数据库 + 备份 data/zentao 目录(Docker 方式)
开启防火墙 ufw allow 80/tcp(Ubuntu)或 firewall-cmd --add-service=http(CentOS)

示例备份脚本(Docker 版):

#!/bin/bash
DATE=$(date +%Y%m%d_%H%M%S)
docker exec zentao_mysql mysqldump -u zentao_user -p'your_pass' zentao > /backup/zentao_$DATE.sql
tar czf /backup/zentao_data_$DATE.tar.gz /path/to/zentao/data/zentao

❓ 常见问题排查

问题 解决方案
页面白屏 / 500 错误 检查 docker logs zentao_zentao_1 或 Nginx/PHP-FPM 日志
无法连接数据库 确认 MySQL 容器是否运行;检查 MYSQL_* 环境变量是否一致
上传附件失败 检查 upload_max_filesizepost_max_size(php.ini)
中文乱码 确保数据库、表、字段均为 utf8mb4;Nginx/PHP 配置正确字符集

需要我为你提供:

  • 自动化安装脚本(Shell/Dockerfile)?
  • 针对具体系统版本(如 Rocky Linux 9 / Debian 12)的定制步骤?
  • 禅道高级功能配置(如 Git 集成、LDAP、多租户)?

欢迎告诉我你的具体环境,我可进一步细化方案!

未经允许不得转载:CLOUD技术博 » 如何在阿里云轻量应用服务器上安装和配置禅道?