您好,登录后才能下订单哦!
# CentOS8中如何部署Redmine项目管理和缺陷跟踪系统
## 一、Redmine简介与部署准备
### 1.1 Redmine核心功能
Redmine是一款开源的、基于Web的项目管理和缺陷跟踪系统,采用Ruby on Rails框架开发,具有以下核心功能:
- 多项目管理支持
- 灵活的基于角色的访问控制
- 问题跟踪系统(缺陷管理)
- Gantt图和日历视图
- 新闻、文档和文件管理
- 电子邮件通知
- 与版本控制系统集成(SVN、CVS、Git等)
- 支持多种数据库(MySQL/MariaDB、PostgreSQL等)
### 1.2 系统环境要求
在CentOS 8上部署Redmine需要满足以下环境要求:
- **操作系统**:CentOS 8.x(建议最小化安装)
- **内存**:至少2GB(生产环境建议4GB以上)
- **存储空间**:至少10GB可用空间
- **软件依赖**:
- Ruby 2.6+
- Rails 5.2+
- 数据库(MySQL/MariaDB或PostgreSQL)
- Web服务器(Apache/Nginx)
### 1.3 准备工作
1. 更新系统:
```bash
sudo dnf update -y
sudo reboot
安装EPEL仓库:
sudo dnf install epel-release -y
sudo dnf config-manager --set-enabled powertools
安装基础工具:
sudo dnf install -y wget curl tar unzip git make gcc gcc-c++ patch
Redmine支持多种数据库,这里以MariaDB为例:
sudo dnf install -y mariadb-server mariadb-devel
sudo systemctl enable --now mariadb
运行安全安装脚本:
sudo mysql_secure_installation
按照提示设置root密码并移除匿名用户、测试数据库等。
mysql -u root -p
# 在MySQL shell中执行:
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;
EXIT;
安装RVM依赖:
sudo dnf install -y gnupg2 autoconf automake bison libffi-devel \
libtool readline-devel sqlite-devel openssl-devel zlib-devel
安装RVM:
gpg2 --keyserver hkp://keyserver.ubuntu.com --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB
curl -sSL https://get.rvm.io | bash -s stable
source /etc/profile.d/rvm.sh
安装Ruby 2.7:
rvm install 2.7
rvm use 2.7 --default
ruby -v # 应显示ruby 2.7.x
gem -v # 检查gem版本
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
编辑配置文件:
cd /opt/redmine
cp config/database.yml.example config/database.yml
vim config/database.yml
修改production部分:
production:
adapter: mysql2
database: redmine
host: localhost
username: redmine
password: "your_strong_password"
encoding: utf8mb4
安装Bundler:
gem install bundler
安装依赖包:
bundle config set --local without 'development test'
bundle install
bundle exec rake generate_secret_token
RLS_ENV=production bundle exec rake db:migrate
RLS_ENV=production bundle exec rake redmine:load_default_data
# 选择语言(zh为简体中文)
gem install passenger --no-document
passenger-install-nginx-module --auto --prefix=/opt/nginx \
--auto-download --languages ruby
创建Nginx服务文件:
sudo vim /etc/systemd/system/nginx.service
内容如下:
[Unit]
Description=The NGINX HTTP and reverse proxy server
After=syslog.target network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
PIDFile=/opt/nginx/logs/nginx.pid
ExecStartPre=/opt/nginx/sbin/nginx -t
ExecStart=/opt/nginx/sbin/nginx
ExecReload=/opt/nginx/sbin/nginx -s reload
ExecStop=/bin/kill -s QUIT $MNPID
PrivateTmp=true
[Install]
WantedBy=multi-user.target
配置Nginx支持Redmine:
sudo vim /opt/nginx/conf/nginx.conf
在http块中添加:
server {
listen 80;
server_name your_domain.com;
root /opt/redmine/public;
passenger_enabled on;
passenger_ruby /usr/local/rvm/gems/ruby-2.7.6/wrappers/ruby;
client_max_body_size 10m;
location ~ ^/attachments {
passenger_enabled on;
expires 30d;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
sudo systemctl daemon-reload
sudo systemctl enable --now nginx
sudo setsebool -P httpd_can_network_connect 1
cd /opt/redmine
cp config/configuration.yml.example config/configuration.yml
vim config/configuration.yml
示例配置(以Gmail为例):
production:
email_delivery:
delivery_method: :smtp
smtp_settings:
address: "smtp.gmail.com"
port: 587
domain: "yourdomain.com"
authentication: :plain
user_name: "your_email@gmail.com"
password: "your_password"
enable_starttls_auto: true
RLS_ENV=production bundle exec rails console
> ActionMailer::Base.delivery_method = :smtp
> ActionMailer::Base.smtp_settings = YAML.load_file('config/configuration.yml')['production']['email_delivery']['smtp_settings']
> ActionMailer::Base.perform_deliveries = true
> Mail.deliver do
> to 'test@example.com'
> from 'admin@example.com'
> subject 'Redmine邮件测试'
> body '这是一封测试邮件'
> end
http://your_server_ip
可能原因: - Passenger未正确安装 - Ruby路径配置错误
解决方法:
passenger-config validate-install
passenger-memory-stats
检查database.yml
配置,确保:
- 数据库服务正在运行
- 用户名密码正确
- 数据库已创建
测试命令:
RLS_ENV=production bundle exec rake redmine:email:test[test@example.com]
创建备份脚本/opt/redmine/backup.sh
:
#!/bin/bash
DATE=$(date +%Y%m%d)
BACKUP_DIR="/opt/redmine_backups"
mkdir -p $BACKUP_DIR
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
重要日志位置:
- Redmine日志:/opt/redmine/log/production.log
- Nginx访问日志:/opt/nginx/logs/access.log
- Nginx错误日志:/opt/nginx/logs/error.log
本文详细介绍了在CentOS 8系统上部署Redmine的完整流程,包括: 1. 系统环境准备 2. MariaDB数据库安装配置 3. Ruby环境搭建 4. Redmine核心安装 5. Nginx+Passenger集成 6. 邮件系统配置 7. 基础使用和安全建议
通过以上步骤,您已经成功搭建了一个功能完整的Redmine项目管理平台。后续可以根据团队需求安装插件、定制工作流程或进行性能优化。 “`
这篇文章提供了从零开始部署Redmine的完整指南,包含约2800字的详细步骤和技术细节,采用Markdown格式编写,可直接用于技术文档发布。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。