美国服务器租用海外主机商提供美国高防服务器租用,CN2服务器,大带宽多IP站群服务器,云服务器主机VPS等.洛杉矶数据中心,CN2、联通、移动三线直接中国大陆.

手把手教你部署Redmine

本文将指导你完成 Redmine 项目的安装部署,包括环境准备、详细操作步骤、关键命令说明以及常见问题处理。

操作前的准备或背景介绍

Redmine 是一个开源的项目管理和缺陷跟踪系统,基于 Ruby on Rails 开发。安装 Redmine 需要满足以下基本条件:

  • 操作系统:推荐 Ubuntu 18.04/20.04 或 CentOS 7/8
  • 软件依赖:Ruby 2.5+, PostgreSQL/MySQL/MariaDB 数据库, Redis (可选)
  • 系统工具:Git, Apache/Nginx, Node.js (用于资产编译)

详细操作指南

1. 安装基础环境

以 Ubuntu 系统为例,使用以下命令更新系统并安装必要依赖:

sudo apt update
sudo apt install -y ruby-full build-essential zlib1g-dev libssl-dev libreadline-dev libyaml-dev libsqlite3-dev nodejs postgresql-12 libpq-dev

创建 Redmine 用户并切换到该用户:

sudo su - postgres
createuser --username=postgres --no-superuser --pwprompt redmine

2. 下载并安装 Redmine

从官方仓库克隆最新版本:

cd /tmp
wget https://www.redmine.org/releases/redmine-4.2.2.tar.gz
tar -xvzf redmine-4.2.2.tar.gz
sudo mv redmine-4.2.2 /var/www/redmine

3. 创建数据库和数据目录

为 Redmine 创建数据库和文件存储目录:

sudo -u postgres create DATABASE redmine
sudo -u postgres create DATABASE redmine_test
sudo mkdir -p /var/www/redmine/files
sudo chown -R redmine:redmine /var/www/redmine/files

4. 配置数据库连接

编辑 Redmine 配置文件以连接到 PostgreSQL:

cd /var/www/redmine/config
cp database.yml.example database.yml
vi database.yml
# 修改 production 部分配置
production:
  adapter: postgresql
  encoding: unicode
  database: redmine
  pool: 5
  username: redmine
  password: [你的密码]
  host: localhost

5. 安装 Redmine 依赖

使用 RubyGems 安装 Redmine 所需的 gem 依赖:

cd /var/www/redmine
bundle install --without development test --path vendor/bundle

注意:–without 参数排除了开发和测试环境的依赖,适合生产环境。

6. 编译资产文件

Redmine 使用 Sass 和 CoffeeScript 编译前端资源:

cd /var/www/redmine
RAILS_ENV=production bundle exec rake assets:precompile

7. 初始化数据库

创建 Redmine 必需的数据库表:

RAILS_ENV=production bundle exec rake db:migrate

8. 创建管理员账户

运行以下命令创建初始管理员用户:

RAILS_ENV=production bundle exec rake redmine:load_default_data

9. 配置 Web 服务器

9.1 Apache 配置

<VirtualHost *:80>
    ServerName your_domain
    DocumentRoot /var/www/redmine/public
    RailsEnv production

    <Directory /var/www/redmine/public>
        Options -MultiViews
        AllowOverride All
        Require all granted
    </Directory>

    ErrorLog /var/log/apache2/redmine_error.log
    CustomLog /var/log/apache2/redmine_access.log combined
</VirtualHost>

9.2 Nginx 配置

server {
    listen 80;
    server_name your_domain;

    root /var/www/redmine/public;
    rails_env production;

    location / {
        proxy_pass http://localhost:3000;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }

    location ~ ^/robots.txt$ {
        allow all;
        log_not_found off;
        access_log off;
    }

    location ~ ^/favicon.ico$ {
        allow all;
        log_not_found off;
        access_log off;
    }

    error_log /var/log/nginx/redmine_error.log;
手把手教你部署Redmine    access_log /var/log/nginx/redmine_access.log;
}

10. 重启服务并访问

重启 Web 服务器并访问 Redmine:

sudo systemctl restart apache2  # 或 nginx
# 或直接访问 http://your_domain

涉及的关键命令、代码或配置示例解释

bundle install:安装项目依赖的 gem,–path vendor/bundle 参数将依赖缓存到 vendor 目录,避免重复安装。

RAILS_ENV=production:指定 Rails 环境为生产环境,该环境会禁用调试信息并优化性能。

assets:precompile:预编译 Sass/CoffeeScript 资源文件,减少生产环境中的动态编译开销。

db:migrate:执行数据库迁移脚本,创建 Redmine 所需的表结构。

操作过程中可能遇到的问题、注意事项或实用技巧

  • 依赖安装失败:检查 Ruby 版本是否兼容,或使用指定版本安装
  • 数据库连接问题:确保 PostgreSQL 正在运行且 redmine 用户有访问权限
  • 资产编译错误:安装 Node.js 和 Sass 并重新运行 assets:precompile
  • Apache/Nginx 配置无效:检查 DocumentRootroot 路径是否正确
  • 性能优化:考虑配置 Redis 作为缓存后端,修改 config/default_settings.yml 中的缓存配置
Shell 中使用 -f 判断文件存在性及类型的方法与实践
« 上一篇 2025年8月10日 09:50:54
Python实现JSON到Cookie字符串的转换方法
下一篇 » 2025年8月10日 09:50:54