Redmine搭建(PostgreSQL+Apache版)
0. 环境说明
Redmine需要的环境:
- 能运行Ruby的OS
- 数据库(MySQL / PostgreSQL / SQLite / SQL服务器)
- 网站服务(Apache / Nginx )
本次搭建环境:
Software |
Version |
Command |
OS |
CentOS Linux release 8.4.2105 |
cat /etc/os-release /etc/redhat-release /etc/system-release |
Redmine |
4.2.3 |
|
Postgresql |
postgres (PostgreSQL) 10.17 |
postgres -V |
Ruby |
ruby 2.5.9p229 (2021-04-05 revision 67939) [x86_64-linux] |
ruby -v |
Apache |
Apache/2.4.37 (centos) |
apachectl -v |
1. 下载需要的软件包
1 2 3
| dnf -y update dnf -y groupinstall "Development Tools" dnf -y install vim wget tar openssl* httpd httpd-devel ruby ruby-devel libcurl-devel
|
2. 安装数据库
1 2
| dnf -y install postgresql-server postgresql-devel rpm -qa | grep postgresql
|
初始化数据库
开机自动启动
1 2
| systemctl enable --now postgresql systemctl status postgresql
|
创建redmine用户以及redmine数据库
1 2 3 4
| [root@localhost ~]# su - postgres [postgres@localhost ~]$ psql CREATE ROLE redmine LOGIN ENCRYPTED PASSWORD 'Your_Password' NOINHERIT VALID UNTIL 'infinity'; CREATE DATABASE redmine WITH ENCODING='UTF8' OWNER=redmine;
|
1 2 3
| \du #查看用户 \l #查看数据库 \q #退出
|
编辑pg_hba.conf文件
1 2 3 4 5
| vim /var/lib/pgsql/data/pg_hba.conf # configuration parameter, or via the -i or -h command line switches.
host redmine redmine 127.0.0.1/32 md5 host redmine redmine ::1/128 md5
|
注意:
添加的规则放在73行的: configuration parameter…下面。否则会出现psql: FATAL: Ident authentication failed for user "postgres"
的错误而且无法访问数据库的问题。
重启数据库
1
| systemctl restart postgresql
|
验证看看能不能正常访问数据库
1 2 3
| psql -U redmine -d redmine -h 127.0.0.1 Password for user redmine: #←正常情况下会提示输入密码
|
3. 关闭Selinux
1 2 3 4
| vim /etc/selinux/config #SELINUX=enforcing
SELINUX=disabled
|
1 2
| reboot getenforce # 确认结果
|
4. 下载安装Redmine
获取最新版本:
Redmine官方下载地址
4.1. 下载以及解压
1 2 3
| wget https://www.redmine.org/releases/redmine-4.2.3.tar.gz tar -zxvf redmine-4.2.3.tar.gz mv redmine-4.2.3 /redmine
|
4.2. 配置database.yml文件
根据数据库设置,配置Redmine的连接数据库设定文件
1 2 3 4 5 6 7 8 9 10 11 12 13
| cd /redmine/config/ cp database.yml.example database.yml vim database.yml
###postgresql production: adapter: postgresql database: redmine host: localhost username: redmine password: "Your_Password" encoding: utf8 t#pool: 5
|
注意:
要把development,test等区域给删了
排版缩进要正确!
4.3. 通过Ruby部署
我对Ruby不了解,这些命令不是很懂,似乎可以自动导入 Redmine 操作所需的 Ruby 软件包,为 MySQL 数据库创建所需的表或加载默认数据?注意不能忘了,在执行操作前移动到Redmine目录。
1 2 3 4 5 6 7 8
| cd /redmine gem install bundler --no-rdoc --no-ri gem install bundler bundle install --without development test rmagick bundle exec rake generate_secret_token RAILS_ENV=production bundle exec rake db:migrate RAILS_ENV=production bundle exec rake redmine:load_default_data
|
执行最后一行的时候选择想要的语言。
5. 配置Apache
5.1. 安装passenger
1 2
| gem install passenger passenger-install-apache2-module --auto --languages ruby
|
有大量的日志在画面上滚动,需要花一点时间。虽然有很多警告,但是如果不因错误而掉落的话应该没什么问题。
5.2. 安装snippet
1 2 3 4 5 6
| [root@localhost redmine]# passenger-install-apache2-module --snippet LoadModule passenger_module /usr/local/share/gems/gems/passenger-6.0.11/buildout/apache2/mod_passenger.so <IfModule mod_passenger.c> PassengerRoot /usr/local/share/gems/gems/passenger-6.0.11 PassengerDefaultRuby /usr/bin/ruby </IfModule>
|
5.3. 设置Redmine为Apache的根目录,并把上一步5.2的结果复制下来粘贴到redmine.conf文件中
1 2 3 4 5 6 7 8 9 10 11 12
| vim /etc/httpd/conf.d/redmine.conf
<Directory "/redmine/public"> Require all granted </Directory>
LoadModule passenger_module /usr/local/share/gems/gems/passenger-6.0.11/buildout/apache2/mod_passenger.so <IfModule mod_passenger.c> PassengerRoot /usr/local/share/gems/gems/passenger-6.0.11 PassengerDefaultRuby /usr/bin/ruby </IfModule>
|
5.4.
1 2 3
| vim /etc/httpd/conf/httpd.conf
DocumentRoot "/redmine/public"
|
5.5. 给Apache权限
1
| chown -R apache:apache /redmine
|
5.6. 重启Apache
1 2 3
| systemctl enable httpd systemctl start httpd
|
6. 防火墙
1 2 3
| firewall-cmd --zone=public --permanent --add-service=http firewall-cmd --zone=public --permanent --add-service=https firewall-cmd --reload
|
7. 排错
7.1. 删除PostgreSQL数据库以及用户
1 2 3 4
| [root@localhost ~]# su - postgres [postgres@localhost ~]$ psql drop database redmine; drop role redmine;
|
1 2 3
| \du #查看用户 \l #查看数据库 \q #退出
|
参考:
Redmine官方安装教程
CentOS8にRedmine4.1をインストールする
如何在 CentOS 8 上安装 Postgresql