Redmine开源项目管理工具安装与配置指南
2026/8/10 10:57:33 网站建设 项目流程

1. Redmine简介与核心价值

Redmine作为一款开源的项目管理工具,已经在全球范围内被各种规模的企业和团队广泛采用。它基于Ruby on Rails框架开发,采用GPL v2许可协议,这意味着你可以自由地使用、修改和分发它。我最早在2013年接触Redmine时就被它的灵活性所吸引,当时我们团队正在寻找一个能够同时处理多个项目的解决方案。

Redmine最核心的价值在于它集成了项目管理中的多个关键功能模块。不同于那些功能单一的issue跟踪系统,Redmine提供了一个完整的生态系统。它包含了问题跟踪、甘特图、日历、新闻、文档管理、文件存储、Wiki以及论坛等功能。特别值得一提的是它的多项目支持能力,这让我们可以在一个平台上管理数十个不同性质的项目,而无需为每个项目单独部署系统。

在实际使用中,我发现Redmine的权限系统设计得非常精细。你可以为不同角色的用户设置不同级别的访问权限,甚至可以精确控制某个用户对特定项目的特定功能模块的访问权限。这种灵活性对于需要处理敏感项目或客户数据的团队来说尤为重要。

另一个Redmine的杀手级功能是它的插件体系。通过安装各种社区开发的插件,你可以扩展Redmine的功能,比如添加敏捷看板、时间跟踪、报表生成等特性。我在过去几年里尝试过不下20个插件,有些已经成为我们日常工作流程中不可或缺的部分。

2. 安装前的环境准备

2.1 硬件与操作系统要求

在开始安装Redmine之前,我们需要确保系统满足基本要求。根据我的经验,即使是小团队使用,也建议至少配置2核CPU和4GB内存的服务器。Redmine对数据库的依赖较重,当issue数量超过1万条时,性能差异就会显现出来。

操作系统方面,Redmine可以运行在大多数Linux发行版上。我个人偏好使用Ubuntu LTS版本(目前是22.04),因为它的长期支持特性和广泛的社区资源。CentOS/RHEL也是不错的选择,特别是在企业环境中。以下是一个基本的环境检查清单:

  • Ruby版本:2.7或3.0(Redmine 5.x支持)
  • 数据库:MySQL 5.7+/MariaDB 10.3+ 或 PostgreSQL 10+
  • Web服务器:Apache或Nginx
  • 内存:至少4GB(生产环境建议8GB+)
  • 存储:SSD硬盘,至少20GB可用空间(考虑附件存储)

2.2 依赖包安装

在Ubuntu系统上,我们需要先安装一些基础依赖包。这些包包括编译工具、数据库客户端库和其他必要的系统组件:

sudo apt update sudo apt install -y build-essential libssl-dev libyaml-dev libreadline-dev \ openssl curl git-core zlib1g-dev libffi-dev libxml2-dev libxslt1-dev \ libcurl4-openssl-dev libmagickwand-dev imagemagick libsqlite3-dev

对于使用MySQL/MariaDB作为后端数据库的情况,还需要安装对应的开发包:

sudo apt install -y default-libmysqlclient-dev

如果是选择PostgreSQL,则安装以下包:

sudo apt install -y libpq-dev postgresql-client

2.3 数据库准备

数据库是Redmine的核心组件,正确的配置对系统性能至关重要。以MySQL为例,我们需要先创建数据库和用户:

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

对于生产环境,我强烈建议进行以下优化配置(在MySQL的my.cnf中):

[mysqld] innodb_buffer_pool_size = 1G innodb_log_file_size = 256M innodb_flush_log_at_trx_commit = 2 innodb_flush_method = O_DIRECT character-set-server = utf8mb4 collation-server = utf8mb4_unicode_ci

这些配置将显著提升Redmine在处理大量issue时的性能表现。

3. Ruby环境配置

3.1 使用RVM或rbenv管理Ruby版本

Redmine对Ruby版本有特定要求,使用版本管理器可以方便地切换不同Ruby版本。我个人偏好使用rbenv,因为它更轻量且易于管理:

# 安装rbenv git clone https://github.com/rbenv/rbenv.git ~/.rbenv echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc echo 'eval "$(rbenv init -)"' >> ~/.bashrc source ~/.bashrc # 安装ruby-build插件 git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build # 安装Ruby 3.0.4(Redmine 5.x兼容版本) rbenv install 3.0.4 rbenv global 3.0.4

安装完成后,验证Ruby版本:

ruby -v

3.2 Bundler和Gem配置

Ruby的包管理工具Bundler是管理Redmine依赖的关键。首先安装Bundler:

gem install bundler

为了提高gem安装速度,我们可以配置国内镜像源:

bundle config set --local mirror.https://rubygems.org https://gems.ruby-china.com

这个配置会显著加快后续的依赖安装过程,特别是在国内网络环境下。

4. Redmine核心安装步骤

4.1 获取Redmine源代码

Redmine提供了多种安装方式,但从源代码安装能给我们最大的灵活性。我建议从官方下载最新稳定版本:

wget https://www.redmine.org/releases/redmine-5.0.5.tar.gz tar xvf redmine-5.0.5.tar.gz sudo mv redmine-5.0.5 /opt/redmine cd /opt/redmine

4.2 配置数据库连接

在/opt/redmine/config目录下,我们需要创建database.yml文件。以下是MySQL配置示例:

production: adapter: mysql2 database: redmine host: localhost username: redmine password: "your_strong_password" encoding: utf8mb4

对于PostgreSQL,配置略有不同:

production: adapter: postgresql database: redmine host: localhost username: redmine password: "your_strong_password" encoding: utf8 schema_search_path: public

4.3 安装依赖包

在Redmine根目录下运行:

bundle install --without development test

这个过程可能会花费一些时间,因为它需要下载和编译所有必要的Ruby gem。如果遇到libssl或libmysqlclient问题,请确保之前已经正确安装了开发包。

4.4 生成密钥和数据库迁移

接下来我们需要生成会话存储密钥并初始化数据库:

bundle exec rake generate_secret_token RAILS_ENV=production bundle exec rake db:migrate RAILS_ENV=production bundle exec rake redmine:load_default_data

在加载默认数据时,系统会提示选择语言。输入"zh"可以选择中文作为默认语言。

5. Web服务器集成

5.1 使用Passenger + Nginx

Passenger是一个优秀的Ruby应用服务器,与Nginx集成良好。首先安装Passenger:

sudo apt install -y dirmngr gnupg sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 561F9B9CAC40B2F7 sudo apt-get install -y apt-transport-https ca-certificates sudo sh -c 'echo deb https://oss-binaries.phusionpassenger.com/apt/passenger $(lsb_release -cs) main > /etc/apt/sources.list.d/passenger.list' sudo apt-get update sudo apt-get install -y passenger nginx

然后配置Nginx站点。在/etc/nginx/sites-available/redmine中添加:

server { listen 80; server_name redmine.yourdomain.com; passenger_enabled on; passenger_ruby /home/youruser/.rbenv/versions/3.0.4/bin/ruby; root /opt/redmine/public; client_max_body_size 10m; location ~ ^/assets/ { expires 1y; add_header Cache-Control public; add_header ETag ""; break; } }

启用站点并重启Nginx:

sudo ln -s /etc/nginx/sites-available/redmine /etc/nginx/sites-enabled/ sudo nginx -t sudo systemctl restart nginx

5.2 使用Puma作为应用服务器

如果你更喜欢Puma,可以这样配置。首先在Gemfile中添加:

gem 'puma'

然后运行bundle install。创建config/puma.rb:

workers 2 threads 1, 6 app_dir = '/opt/redmine' shared_dir = "#{app_dir}/shared" environment 'production' daemonize true bind "unix://#{shared_dir}/tmp/sockets/puma.sock" pidfile "#{shared_dir}/tmp/pids/puma.pid" state_path "#{shared_dir}/tmp/pids/puma.state" stdout_redirect "#{shared_dir}/log/puma.stdout.log", "#{shared_dir}/log/puma.stderr.log", true preload_app!

然后创建一个systemd服务文件/etc/systemd/system/redmine.service:

[Unit] Description=Redmine Puma Server After=network.target [Service] Type=simple User=redmine Group=redmine WorkingDirectory=/opt/redmine Environment=RAILS_ENV=production ExecStart=/home/redmine/.rbenv/shims/bundle exec puma -C /opt/redmine/config/puma.rb Restart=always [Install] WantedBy=multi-user.target

启动服务:

sudo systemctl daemon-reload sudo systemctl start redmine sudo systemctl enable redmine

6. 邮件通知配置

Redmine的邮件通知功能对于团队协作至关重要。以下是通过Gmail SMTP发送邮件的配置示例(config/configuration.yml):

production: email_delivery: delivery_method: :smtp smtp_settings: address: "smtp.gmail.com" port: 587 domain: "yourdomain.com" authentication: :plain user_name: "your@gmail.com" password: "your_app_specific_password" enable_starttls_auto: true openssl_verify_mode: 'none'

对于企业环境,可能需要配置本地邮件服务器或使用其他SMTP服务提供商。测试邮件配置:

RAILS_ENV=production bundle exec rake redmine:email:test[recipient@example.com]

7. 安全加固与优化

7.1 文件权限设置

正确的文件权限可以防止安全漏洞:

sudo chown -R redmine:redmine /opt/redmine sudo chmod -R 755 /opt/redmine/public sudo chmod -R 755 /opt/redmine/tmp sudo chmod -R 644 /opt/redmine/config/{configuration.yml,database.yml}

7.2 启用HTTPS

使用Let's Encrypt免费SSL证书:

sudo apt install certbot python3-certbot-nginx sudo certbot --nginx -d redmine.yourdomain.com

自动续期测试:

sudo certbot renew --dry-run

7.3 备份策略

创建备份脚本/opt/redmine/backup.sh:

#!/bin/bash DATE=$(date +%Y%m%d) BACKUP_DIR="/backups/redmine" # 备份数据库 mysqldump -u redmine -p'your_password' redmine | gzip > $BACKUP_DIR/redmine_db_$DATE.sql.gz # 备份文件 tar czf $BACKUP_DIR/redmine_files_$DATE.tar.gz /opt/redmine/files /opt/redmine/plugins /opt/redmine/public/themes # 保留最近30天备份 find $BACKUP_DIR -type f -mtime +30 -delete

设置cron任务每天凌晨执行:

0 2 * * * /opt/redmine/backup.sh

8. 插件安装与管理

Redmine的强大之处在于其插件生态系统。以下是安装常用插件的步骤:

8.1 安装Redmine Agile插件

cd /opt/redmine/plugins git clone https://github.com/RCRM/redmine_agile.git cd .. bundle install RAILS_ENV=production bundle exec rake redmine:plugins:migrate

8.2 安装Redmine Checklists插件

cd /opt/redmine/plugins git clone https://github.com/RCRM/redmine_checklists.git cd .. bundle install RAILS_ENV=production bundle exec rake redmine:plugins:migrate

安装插件后,需要重启Redmine服务:

sudo systemctl restart redmine

9. 常见问题排查

9.1 502 Bad Gateway错误

这通常是由于应用服务器没有正确运行导致的。检查步骤:

  1. 确认Puma/Passenger是否运行:

    sudo systemctl status redmine
  2. 检查socket文件权限:

    ls -la /opt/redmine/shared/tmp/sockets/
  3. 查看应用日志:

    tail -n 100 /opt/redmine/log/production.log

9.2 数据库连接问题

如果遇到"ActiveRecord::ConnectionTimeoutError",可以尝试:

  1. 增加数据库连接池大小(config/database.yml):

    production: pool: 20 timeout: 5000
  2. 检查MySQL最大连接数:

    SHOW VARIABLES LIKE 'max_connections';

9.3 性能优化技巧

  1. 启用缓存(config/environments/production.rb):

    config.cache_store = :mem_cache_store, "localhost"
  2. 安装memcached:

    sudo apt install memcached
  3. 定期清理旧会话:

    RAILS_ENV=production bundle exec rake db:sessions:trim

10. 升级与维护

10.1 升级流程

  1. 备份当前安装:

    cp -r /opt/redmine /opt/redmine_backup
  2. 下载新版本:

    wget https://www.redmine.org/releases/redmine-5.1.0.tar.gz tar xvf redmine-5.1.0.tar.gz
  3. 迁移配置和文件:

    cp /opt/redmine_backup/config/database.yml /opt/redmine-5.1.0/config/ cp -r /opt/redmine_backup/files /opt/redmine-5.1.0/ cp -r /opt/redmine_backup/plugins /opt/redmine-5.1.0/ cp -r /opt/redmine_backup/public/themes /opt/redmine-5.1.0/public/
  4. 执行升级:

    cd /opt/redmine-5.1.0 bundle install --without development test RAILS_ENV=production bundle exec rake db:migrate RAILS_ENV=production bundle exec rake tmp:cache:clear RAILS_ENV=production bundle exec rake tmp:sessions:clear
  5. 切换目录并重启服务:

    sudo rm /opt/redmine sudo ln -s /opt/redmine-5.1.0 /opt/redmine sudo systemctl restart redmine

10.2 日常维护任务

  1. 定期清理日志:

    find /opt/redmine/log -type f -name "*.log" -mtime +30 -delete
  2. 监控磁盘空间:

    df -h /opt/redmine/files
  3. 检查cron任务:

    crontab -l
  4. 更新插件:

    cd /opt/redmine/plugins/redmine_agile git pull origin master cd /opt/redmine RAILS_ENV=production bundle exec rake redmine:plugins:migrate

在实际运维中,我发现每周进行一次简单的系统检查可以预防大多数问题。这包括检查日志文件大小、数据库连接数、磁盘空间和备份完整性等基本指标。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询