1. 项目概述
Redmine作为一款开源的项目管理工具,在中小型团队中有着广泛的应用。我第一次接触Redmine是在2013年参与一个跨部门的敏捷开发项目,当时团队需要一个轻量级但功能全面的项目管理平台。相比商业软件,Redmine的开源特性、灵活的插件系统和Ruby on Rails架构深深吸引了我。
十年来,我参与过不下20次Redmine的部署实施,从单机测试环境到高可用生产集群都有涉及。这个过程中积累了不少实战经验,也踩过不少坑。今天就把Redmine的完整安装部署流程梳理出来,特别会强调那些官方文档没有明确说明但实际很重要的细节。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 环境准备
2.1 系统要求
Redmine对硬件要求不高,但有些关键点需要注意:
- 内存:至少2GB(实测1GB会频繁触发交换,影响性能)
- 磁盘:建议50GB以上,特别是需要处理大量附件时
- CPU:现代双核处理器即可满足中小团队需求
操作系统方面,我强烈推荐使用Ubuntu LTS版本。以Ubuntu 20.04为例,其长期支持特性和稳定的软件源能减少很多后续维护麻烦。CentOS也可以,但需要注意其默认的Ruby版本可能较低。
重要提示:避免使用Windows服务器部署生产环境,我在Windows Server 2016上遇到过文件权限和性能问题,排查起来非常耗时。
2.2 依赖安装
先更新系统并安装基础依赖:
bash复制sudo apt update && sudo apt upgrade -y
sudo apt install -y build-essential zlib1g-dev libssl-dev libreadline-dev \
libyaml-dev libcurl4-openssl-dev libffi-dev libsqlite3-dev \
libxml2-dev libxslt1-dev libmagickwand-dev imagemagick
数据库选择上,MySQL/MariaDB是主流选择。安装MariaDB 10.3+:
bash复制sudo apt install -y mariadb-server libmariadb-dev
sudo mysql_secure_installation
Ruby环境建议使用rbenv管理,避免系统Ruby的版本冲突:
bash复制git clone https://github.com/rbenv/rbenv.git ~/.rbenv
echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(rbenv init -)"' >> ~/.bashrc
source ~/.bashrc
git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build
rbenv install 2.7.6 # Redmine 4.2+推荐版本
rbenv global 2.7.6
3. Redmine核心安装
3.1 获取源码
建议从官网下载稳定版而非Git仓库,除非你需要最新功能:
bash复制wget https://www.redmine.org/releases/redmine-4.2.3.tar.gz
tar xvf redmine-4.2.3.tar.gz
sudo mv redmine-4.2.3 /opt/redmine
3.2 数据库配置
创建数据库和用户(注意字符集必须为utf8mb4):
sql复制CREATE DATABASE redmine CHARACTER SET utf8mb4;
CREATE USER 'redmine'@'localhost' IDENTIFIED BY 'your_strong_password';
GRANT ALL PRIVILEGES ON redmine.* TO 'redmine'@'localhost';
FLUSH PRIVILEGES;
修改配置文件config/database.yml:
yaml复制production:
adapter: mysql2
database: redmine
host: localhost
username: redmine
password: "your_strong_password"
encoding: utf8mb4
3.3 安装依赖和配置
安装Bundler并解决常见的Gem安装问题:
bash复制gem install bundler --no-document
cd /opt/redmine
bundle config set --local without 'development test'
bundle install
处理常见的ImageMagick报错:
bash复制sudo sed -i 's/<policy domain="path" rights="none" pattern="@\*"\/>/<!-- & -->/' /etc/ImageMagick-6/policy.xml
4. 系统配置与优化
4.1 初始化数据库
执行迁移和初始化:
bash复制bundle exec rake db:migrate RAILS_ENV=production
bundle exec rake redmine:load_default_data RAILS_ENV=production
这个过程中常见的两个问题:
- "Access denied for user"错误:检查database.yml中的密码和MySQL权限
- "Mysql2::Error: Specified key was too long":确保使用utf8mb4字符集
4.2 文件权限设置
正确的权限设置能避免很多后续问题:
bash复制sudo chown -R www-data:www-data /opt/redmine
sudo chmod -R 755 /opt/redmi
