Centos 7 安裝 Redmine 4.x

不飞则已,一飞冲天;不鸣则已,一鸣惊人。这篇文章主要讲述Centos 7 安裝 Redmine 4.x相关的知识,希望能为你提供帮助。
Centos 7 安裝 Redmine 4.x??https://www.redmine.org/projects/redmine/wiki/RedmineInstall??https://rvm.io/
環境說明
CentOS 7(Minimal Install)

# cat /etc/centos-release
CentOS Linux release 7.9.2009 (Core)

本次安装范围
Ruby 2.6
mysql 5.7
Redmine 4.1.5
安裝RVM
# 卸載舊版本ruby
$ yum remove ruby -y
# 安裝RVM
$ curl -sSL https://rvm.io/mpapis.asc | gpg2 --import -
$ curl -sSL https://rvm.io/pkuczynski.asc | gpg2 --import -
$ curl -L get.rvm.io | bash -s stable
# 添加用戶到rvm用戶組
$ gpasswd -a root rvm
# 加載RVM環境
$ source /etc/profile.d/rvm.sh
$ rvm reload
# 校驗依賴項並安裝
$ rvm requirements run

安裝Ruby
# 檢查可用Ruby版本
$ rvm list known
# 安裝想要的版本,以安裝2.6為例
$ rvm install 2.6

### 设置默认 Ruby 版本
$ rvm list
=* ruby-2.6.6 [ x86_64 ]

# => - current
# =* - current & & default
#* - default

# 如果有多個版本,通過以下命令設置默認Ruby版本
$ rvm use 2.6 --default
Using /usr/local/rvm/gems/ruby-2.6.6

# 查看版本信息
$ ruby --version
ruby 2.6.6p146 (2020-03-31 revision 67876) [x86_64-linux]

安裝Mysql
下载 mysql 源安装包
$ curl -LO http://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm

安装 mysql 源
$ rpm -ivh mysql57-community-release-el7-11.noarch.rpm

检查 yum 源是否安装成功
$ sudo yum repolist enabled | grep "mysql.*-community.*"
mysql-connectors-communityMySQL Connectors Community21
mysql-tools-communityMySQL Tools Community38
mysql57-communityMySQL 5.7 Community Server130

如上所示,找到了 mysql 的安装包
安裝
$ sudo yum install mysql-community-server -y

配置數據庫创建 redmine 用户和数据库,并分配权限,请替换 my_password 为您自己的密码。
$ mysql -u root -p
mysql> CREATE DATABASE redmine CHARACTER SET utf8mb4;
mysql> CREATE USER redmine@localhost IDENTIFIED BY my_password;
mysql> GRANT ALL PRIVILEGES ON redmine.* TO redmine@localhost;
mysql> flush privileges;

升级准备(可选)如果您以前使用过 Redmine,需要升级,请先从原来的数据库导出 redmine 的数据库,再导入本数据库
# 原数据库导出
$ mysqldump -u root -p redmine > redmine.sql
# 将数据库备份文件上传到服务器后,导入数据库使用如下命令
$ mysql -u root -p --default-character-set=utf8 redmine < redmine.sql

安裝Redmine
安裝依賴包
$ sudo yum install mysql-devel libcurl-devel ImageMagick ImageMagick-devel

安裝Redmine
# 下載安裝包
$ curl -LO https://www.redmine.org/releases/redmine-4.1.5.tar.gz
# 解壓到/opt文件夾
$ tar -zxvf redmine-4.1.5.tar.gz -C /opt/
# 創建軟連接
$ cd /opt/
$ ln -s /opt/redmine-4.1.5 /opt/redmine

配置數據庫參數修改 database.yml文件
# cd /opt/redmine/config
# cp database.yml.exampledatabase.yml
# vi database.yml

使用MYSQL數據庫配置,注意替換my_password為您的密碼
production:
adapter: mysql2
database: redmine
host: localhost
username: redmine
password: "my_password"

依賴安裝Redmine 使用 Bundler 管理 gems 依赖
# 首先安装 Bundler
$ cd /opt/redmine
$ gem install bundler
# 安裝依賴
$ bundle install --without development test
# 設置密鑰
$ bundle exec rake generate_secret_token

創建數據庫Schema創建數據庫,包括升級數據庫
$ bundle exec rake db:migrate RAILS_ENV=production

升级(可选)
# 升级插件数据库
$ sudo bundle exec rake redmine:plugins:migrate RAILS_ENV=production
# 附件拷贝
# 使用老版本的 redmine 系统,如果使用过程中上传了附件,需要拷贝一下,默认目录 $REDMINE_HOME\\files
$ cd /opt/redmine/files

将以前的 redline 附件拷贝到这个文件夹中,过程省略,请自行搜索文件拷贝相关命令如 scp。
初始化数据库注意,如果是升级,可以不用执行此步骤
$ bundle exec rake redmine:load_default_data RAILS_ENV=production

測試安裝
$ bundle exec rails server webrick -e production

启动之后,访问 http://ip:3000 即可访问。admin/admin
其他設置
郵箱設置??https://www.redmine.org/projects/redmine/wiki/EmailConfiguration??注意 Redmine 4 开始,不需要使用 async_smtp 即可异步发送邮件。
代理設置本例使用 nginx + Passenger 为例
$ sudo gem install passenger

安装完之后,安装 Nginx 的配置模块
$ rvmsudo passenger-install-nginx-module

按照安装步骤进行,默认会将 Nginx 安装到 /opt/nginx 目录内
注意:
$ rvmsudo passenger-install-nginx-module
sudo: passenger-install-nginx-module: command not found
# 因為它不在bash的$PATH var中。要找出路徑,請執行which passenger-install-nginx-module
$ which passenger-install-nginx-module
/usr/local/rvm/gems/ruby-2.6.6/bin/passenger-install-nginx-module
$ rvmsudo /usr/local/rvm/gems/ruby-2.6.6/bin/passenger-install-nginx-module

配置Nginx
$ cd /opt/nginx/conf
$ sudo vi nginx.conf

如果想使用根目录 http://ip 访问,类似如下设置
http
# passenger 配置
passenger_root /usr/local/rvm/gems/ruby-2.6.5/gems/passenger-6.0.4;
passenger_ruby /usr/local/rvm/gems/ruby-2.6.5/wrappers/ruby;

...
...

server
listen80;
server_namelocalhost;
# 跟目录的 passenger配置
root /opt/redmine/public;
passenger_enabled on;

error_page500 502 503 504/50x.html;
location = /50x.html
roothtml;



如果想使用 Sub-URI http://domain/redmine 访问,类似如下配置
http
# passenger 配置
passenger_root /usr/local/rvm/gems/ruby-2.6.5/gems/passenger-6.0.4;
passenger_ruby /usr/local/rvm/gems/ruby-2.6.5/wrappers/ruby;

...
...

server
listen80;
server_namelocalhost;
passenger_enabled on;

location /
roothtml;


# sub-uri 的 passenger 配置
location ~ ^/redmine(/.*|$)
alias /opt/redmine/public$1;
passenger_base_uri /redmine;
passenger_app_root /opt/redmine;
passenger_document_root /opt/redmine/public;
passenger_enabled on;


error_page500 502 503 504/50x.html;
location = /50x.html
roothtml;



【Centos 7 安裝 Redmine 4.x】系統服務
$ vim /lib/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=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true

[Install]
WantedBy=multi-user.target

$ systemctl daemon-reload
$ systemctl start nginx


    推荐阅读