Redmine – Hướng dẫn cài đặt Redmine trên CentOS 7

30/12/2020

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à Onet 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.Onet.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: Onet@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

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à Onet 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.

ONET IDC thành lập vào năm 2012, là công ty chuyên nghiệp tại Việt Nam trong lĩnh vực cung cấp dịch vụ Hosting, VPS, máy chủ vật lý, dịch vụ Firewall Anti DDoS, SSL… Với 10 năm xây dựng và phát triển, ứng dụng nhiều công nghệ hiện đại, ONET IDC đã giúp hàng ngàn khách hàng tin tưởng lựa chọn, mang lại sự ổn định tuyệt đối cho website của khách hàng để thúc đẩy việc kinh doanh đạt được hiệu quả và thành công.
Bài viết liên quan

Hướng dẫn cách sử dụng câu lệnh History trong Linux

Trong bài viết này, Onet sẽ giúp các bạn tìm hiểu làm thế nào bạn có thể sử dụng lệnh history...
30/12/2020

Hướng dẫn cảnh báo checkmk cùng với telegram

Cảnh báo qua mail cùng với check_mk cũng là một cách. Nhưng có nhiều người lại thích dùng với telegram....
30/12/2020

[Graylog] [LAB] [Phần 6] Cấu hình Dashboards SSH

Các bạn chắc hẳn đã biết đến graylog từ các bài trước của chúng tôi. Nhưng ta cứ check mọi...
30/12/2020