Redmine là một ứng dụng nguồn mở sử dụng để quản lý dự án và kiểm soát các vấn đề liên quan.
Redmine gồm rất nhiều các tính năng linh hoạt giúp hỗ trợ người dùng làm việc việc nhóm hiệu quả, quản lý nhiều dự án tốt hơn

Để sở hữu hệ thống Redmine một cách nhanh các bạn có thể tham khảo sử dụng Template Redmine mà Nhân Hòa cung cấp.

Trong bài viết này mình sẽ hướng dẫn cài đặt Redmine trên CentOS 7 bao gồm các thành phần sau:

  • Ruby 2.4
  • MySQL 5.7
  • Apache
  • Redmine v4.1.0
  • Postfix

Mục lục :

  1. Chuẩn bị môi trường cài đặt
  2. Update hệ thống vào cài đặt các gói cần thiết
  3. Cấu hình gửi mail sử dụng postfix
  4. Cài đặt Apache
  5. Cài đặt MySQL
  6. Cài đặt Ruby
  7. Download và cấu hình Redmine
  8. Cấu hình Apache với Redmine
  9. Cấu hình firewall
  10. Đăng nhập vào Redmine

Chuẩn bị môi trường cài đặt

Redmine không yêu cầu server có cấu hình quá cao. Ở trong môi trường LAB mình chỉ cần server có cấu hình như sau:

  • 1 CPU
  • 1 GB RAM
  • 15 GB Disk
  • OS CentOS 7 (x64)
  • IP Server thực hiện trong bài hướng dẫn: 10.10.10.193

Update hệ thống và cài đặt các gói cần thiết

Truy cập vào server

ssh root@10.10.10.193

Đặt hostname

hostnamectl set-hostname redmine
exec bash
hostname

Update hệ thống và cài đặt các gói cần thiết

yum update -y
yum install epel-release -y
yum -y install ImageMagick ImageMagick-devel git libxml2-devel libxslt-devel gcc bzip2 openssl-devel zlib-devel gdbm-devel ncurses-devel autoconf automake bison gcc-c++ libffi-devel libtool patch readline-devel sqlite-devel glibc-headers glibc-devel libyaml-devel libicu-devel libidn-devel ftp wget subversion make ipa-pgothic-fonts make

Cấu hình gửi mail sử dụng postfix

Chú ý: Cấu hình gửi mail sử dụng postfix thông thường sẽ không gửi được đến hệ thống email của google. Nếu bạn sử dụng email Google để nhận mail thì không cần thực hiện bước này. Mình sẽ nói rõ hơn phần này ở mục cài đặt Redmine.

Cấu hình gửi mail với postfix

yum -y install postfix cyrus-sasl-plain mailx
 
alternatives --set mta /usr/sbin/sendmail.postfix
 
systemctl restart postfix
systemctl enable postfix

Sửa các cấu hình sau

vi /etc/postfix/main.cf
#Dòng 75
myhostname = redmine.local
#Dòng 83
mydomain = redmine.local
#Dòng 99
myorigin = $mydomain
#Dòng 116
inet_interfaces = all
#Dòng 164
mydestination = $myhostname, localhost, $mydomain
#Dòng 264
mynetworks = 127.0.0.0/8, /32
#Dòng 419
home_mailbox = Maildir/
systemctl restart postfix

Kiểm tra lại

 echo "Test content" | mail -s "Test subject" inbox@mail.cloud365.vn 

Cài đặt Apache

sudo yum -y install httpd httpd-devel libcurl-devel
systemctl restart httpd
systemctl enable httpd

Cài đặt MySQL

wget http://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm
sudo yum localinstall mysql57-community-release-el7-9.noarch.rpm
sudo yum install mysql-community-server -y 

sudo systemctl start mysqld.service

Lấy password root tạm thời sau khi cài đặt

sudo grep 'temporary password' /var/log/mysqld.log

Sinh password mới

openssl rand -hex 16

Đổi mật khẩu tài khoản root mysql với password nhận được từ bước trên

mysql -u root -p
mysql>ALTER USER 'root'@'localhost' IDENTIFIED BY '9c4b10b124d24379fe64a1bc38f47e8a';
mysql>FLUSH PRIVILEGES;
mysql>\q

Tạo User và Database cho redmine

mysql -u root -p
mysql>CREATE USER 'redmine'@'localhost' identified by 'RedminePassword';
mysql>CREATE DATABASE redmine CHARACTER SET utf8;
mysql>GRANT ALL PRIVILEGES ON redmine.* to 'redmine'@'localhost';
mysql>FLUSH PRIVILEGES;
mysql>\q

Cài đặt ruby

Trong bài viết này mình sẽ sử dụng Ruby 2.4. Ruby là ngôn ngữ lập trình, cũng giống như php hay java.

sudo yum install centos-release-scl -y
sudo yum install rh-ruby24 -y
scl enable rh-ruby24 bash
ruby -v
which ruby

Enable ruby mỗi khi login vào hệ thống

cat << EOF >> /etc/profile.d/rh-ruby24.sh
#!/bin/bash
source /opt/rh/rh-ruby24/enable
export X_SCLS="`scl enable rh-ruby24 'echo $X_SCLS'`"
EOF

Download và cấu hình Redmine

Download và giải nén Redmine v4.1.0

cd ~
wget http://www.redmine.org/releases/redmine-4.1.0.tar.gz
tar -xzvf redmine-4.1.0.tar.gz
mv redmine-4.1.0 /var/www/redmine

Cấu hình database cho Redmine

cd /var/www/redmine

cat << EOF >> ./config/database.yml
production:
  adapter: mysql2
  database: redmine
  host: localhost
  username: redmine
  password: RedminePassword
  encoding: utf8
EOF

Cấu hình gửi mail cho Redmine

Nếu các bạn cấu hình gửi mail bằng Postfix thì các bạn sử dụng chạy câu lệnh sau:

cd /var/www/redmine

cat << EOF >> ./config/configuration.yml
default:
  email_delivery:
    delivery_method: :smtp
    smtp_settings:
      address: "localhost" 
      port: 25
      domain: "redmine.local"
  rmagick_font_path: /usr/share/fonts/ipa-pgothic/ipagp.ttf
EOF

Nếu các bạn cấu hình gửi mail bằng cách sử dụng các tài khoản của hệ thống mail khác. (Trong ví dụ này mình sử dụng email google)

cat << EOF >> ./config/configuration.yml
production:
  email_delivery:
    delivery_method: :smtp
    smtp_settings:
      address: smtp.gmail.com
      port: 587
      domain: redmine.local
      authentication: :login
      user_name: cloud365@gmail.com
      password: mypassword
  rmagick_font_path: /usr/share/fonts/ipa-pgothic/ipagp.ttf
EOF

Cài đặt các thư viện cần thiết

yum install rh-ruby24-ruby-devel -y
yum install mysql-devel -y
gem install bundler -v 1.17.1

Khởi tạo cấu hình và đồng bộ database cho redmine

bundle install --without development test postgres sqlite
bundle exec rake generate_secret_token
bundle exec rake db:migrate RAILS_ENV=production

Cấu hình apache với Redmine

Để redmine có thể deploy lên apache, chúng ta cần sử dụng module passenger

Build module passenger

cd ~
gem install passenger
passenger-install-apache2-module

Tại đây chúng ta lựa chọn như sau

  • Chọn 1 : The Apache 2 module will be installed for you
  • Sử dụng phím <space> để lựa chọn Ruby
  • Nhấn <Enter> để tiếp tục cài đặt

Đợi quá trình cài đặt hoàn tất

Nhấn <Enter> 2 lần để kết thúc build module

image2020-3-20_22-53-31.png

Khi build xong module passenger sẽ nằm tại đường dẫn /opt/rh/rh-ruby24/root/usr/local/share/gems/gems/passenger-6.0.4/buildout/apache2/mod_passenger.so

Tạo virtual host cho remine

cat << EOF >> /etc/httpd/conf.d/passenger.conf
LoadModule passenger_module /opt/rh/rh-ruby24/root/usr/local/share/gems/gems/passenger-6.0.4/buildout/apache2/mod_passenger.so
PassengerRoot /opt/rh/rh-ruby24/root/usr/local/share/gems/gems/passenger-6.0.4
PassengerDefaultRuby /opt/rh/rh-ruby24/root/usr/bin/ruby
SetEnv LD_LIBRARY_PATH /opt/rh/rh-ruby24/root/usr/lib64
NameVirtualHost *:80
<VirtualHost *:80>
    Servername 10.10.10.193
    DocumentRoot /var/www/redmine/public
</VirtualHost>
EOF

Restart lại apache

chown -R apache. /var/www/redmine
systemctl restart httpd
systemctl enable httpd

Cấu hình firewall

Vì Redmine sử dụng Apache để deploy + với Postfix sử dụng để send mail nên mình sẽ allow port 80, 443, 25

firewall-cmd --permanent --add-port=80/tcp
firewall-cmd --permanent --add-port=443/tcp
firewall-cmd --permanent --add-port=25/tcp
sudo firewall-cmd --reload

Đăng nhập Redmine

Sử dụng Browser và truy cập vào địa chỉ http://<ip_server>

Username: admin
Password: admin

Ngoài ra để nhanh chóng và thuận tiện, các bạn có thể sử dụng template Redmine mà Cloud365 cung cấp.

bài viết tiếp theo mình sẽ hướng dẫn các bạn sử dụng Redmine để quản lý dự án một cách cơ bản.