Hướng dẫn cài đặt Ruby on Rail, Redmine lên hệ thống sử dụng Directadmin + Nginx reverse proxy 2020

Ruby on Rails là một khung làm việc (web framework) được viết trên ngôn ngữ lập trình Ruby và được sử dụng trong việc xây dựng và phát triển các ứng dụng web.

Redmine là một công cụ quản lý vấn đề (issue) dựa trên nền tảng web, có thể áp dụng thực hiện các chức năng quản lý các loại vấn đề: nhiệm vụ, lỗi, yêu cầu hỗ trợ, … của dự án một cách cơ bản. Redmine có ưu thế trong quản lý dự án là đáp ứng sẵn sàng những nội dung được quan tâm cho các vai trò từ quản lý dự án tới các thành viên trong dự án và các cá nhân/nhóm/bộ phận liên quan khác.

DirectAdmin là một công cụ quản trị hosting, trực quan, dễ sử dụng,

Redmine là một công cụ để quản lý dự án, được viết bằng ngôn ngữ Ruby on Rails. Redmine là một ứng dụng open source nên nó miễn phí và được cung cấp bởi GNU General Public License v2 (GPL). Một số tính năng của redmine:

  • Hỗ trợ nhiều project
  • Quản lý kết nối
  • Hệ thống theo dõi tiến độ công việc
  • Quản lý tin tức, tài liệu
  • Hệ thống cảnh báo qua email
  • Hỗ trợ xác thực bằng Ldap
  • Hỗ trợ đa ngôn ngữ
  • Hỗ trợ nhiều database

Thực Hiện

Bước 1: Cài đặt các gói cần thiết

  1. yum install gcc-c++ patch readline readline-devel zlib zlib-devel ImageMagick ImageMagick-devel
  1. yum install libyaml-devel libffi-devel openssl-devel make
  1. yum install bzip2 autoconf automake libtool bison iconv-devel

Bước 2: Cài đặt Ruby on Rails

  • Cài đặt gnupg keyserver
  1. gpg2 --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3

Trong trường hợp lệnh trên không thực hiện được, có thể thay thế bằng lệnh sau:

  1. command curl -sSL https://rvm.io/mpapis.asc | gpg2 --import -"

Tiến hành cài đặt rvm hay còn gọi là Ruby version manager, với phần mềm này, ta có thể dễ dàng cài đặt và thay đổi các version của ruby được cài trên hệ thống, mà không cần thao tác phức tạp.

Thực hiện câu lệnh sau để cài đặt

  1. curl -L https://get.rvm.io | bash -s stable --ruby

Mặc định hệ thống sẽ cài đặt phiên bản Ruby mới nhất.

Sau khi cài đặt xong, ta sẽ cần thiết lập môi trường cho Ruby, bằng cách sử dụng lệnh sau:

  1. source /etc/profile.d/rvm.sh

Redmine phiên bản mới nhất (3.3) được hỗ trợ tốt nhất bởi Ruby 2.3 vì vậy, ta sẽ tiến hành chuyển phiên bản Ruby được cài đặt trên hệ thống sang phiên bản cần thiết.

Cài đặt Ruby 2.3.1

  1. rvm install 2.3.1

Chuyển phiên bản mặc định của hệ thống sang Ruby 2.3.1

  1. rvm use 2.3.1 --default

Kiểm tra lại thông tin

  1. ruby --version

Bạn sẽ thấy thông tin như sau

  1. [root@cloud9591 ~]# ruby --version
  2. ruby 2.3.1p112 (2016-04-26 revision 54768) [x86_64-linux]

Tiến hành cài đặt Rails 4.2.3 bằng lệnh sau :

  1. gem install rails -v 4.2.3

Trong trường hợp quá trình cài đặt thành công, hệ thống sẽ trả lại thông số trên màn hình tương tự như sau ( có thể sai khác số gems được cài đặt)

  1. Done installing documentation for thread_safe, tzinfo, concurrent-ruby, i18n, activesupport, rails-deprecated_sanitizer, mini_portile2, nokogiri, rails-dom-testing, crass, loofah, rails-html-sanitizer, erubis, builder, actionview, rack, rack-test, actionpack, sprockets, sprockets-rails, bundler, thor, railties, globalid, activejob, mini_mime, mail, actionmailer, arel, activemodel, activerecord, rails after 413 seconds
  2. 32 gems installed

Kiểm tra lại thông tin

  1. [root@cloud9591 ~]# rails --version
  2. Rails 4.2.3

Cài đặt bundler bằng lệnh sau :

  1. gem install bundler

Cài đặt passengerpassenger bằng lệnh sau :

  1. gem install passenger

Cài đặt Apache passenger modude

  1. passenger-install-apache2-module

Có thể sử dụng các thiết đặt mặc định của module (Enter 2 lần khi được hỏi thông số cài đặt)

Khi module được cài đặt xong, hệ thống sẽ tự động tạo ra đường dẫn tới thư viện của Passenger, bạn cần lưu các thông tin này để thêm vào file cấu hình httpd.conf sau này. Tại đây thông số được tạo ra là:

LoadModule passenger_module /usr/local/rvm/gems/ruby-2.3.1/gems/passenger-5.1.2/buildout/apache2/mod_passenger.sobr IfModule mod_passenger.cbr PassengerRoot /usr/local/rvm/gems/ruby-2.3.1/gems/passenger-5.1.2br PassengerDefaultRuby /usr/local/rvm/gems/ruby-2.3.1/wrappers/rubybr /IfModule

Bước 3: Cài đặt Redmine

Tạo database cho redmine:

  1. mysql -u root -p
  1. mysql CREATE DATABASE redmine;
  2. mysql GRANT ALL PRIVILEGES ON redmine.* TO 'redmine'@'localhost' IDENTIFIED BY 'redmine';
  3. mysql FLUSH PRIVILEGES;
  4. mysql EXIT;

Cấu hình virtual host cho nginx:

Thêm dòng sau vào mục http của file /opt/nginx/conf/nginx.conf

  1. include vhost/*.conf;

Tạo thư mục vhost để cấu hình virtual host.

  1. mkdir -p /opt/nginx/conf/vhost

Trong thư mục vhost tạo file redmine.conf

  1. server { listen 80; server_name www.redmine-test.com;
  2. root /var/www/redmine/public; passenger_enabled on; client_max_body_size 50m; # Max attachemnt size
  3. # redirect server error pages to the static page /50x.html # error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } }

Tạo file script để bật tắt service nginx

  1. vim /lib/systemd/system/nginx.service

Thêm vào file đoạn code sau:

  1. [Unit] Description=The NGINX HTTP and reverse proxy server After=syslog.target network.target remote-fs.target nss-lookup.target
  2. [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
  3. [Install] WantedBy=multi-user.target

Khởi động nginx:

  1. systemctl daemon-reload
  2. systemctl start nginx

Cài đặt Redmine:

  1. cd /var/www/
  2. svn co https://svn.redmine.org/redmine/branches/3.4-stable redmine
  3. cp config/configuration.yml.example config/configuration.yml
  4. cp config/database.yml.example config/database.yml

Chỉnh sửa file database.yml

  1. vim /opt/nginx/config/database.yml

Chỉnh sửa lại file đoạn config sau:

  1. production:
  2. adapter: mysql2
  3. database: redmine
  4. host: localhost
  5. username: redmine
  6. password: "redmine"
  7. encoding: utf8

Tạo thư mục để cài đặt các plugin

  1. mkdir -p tmp tmp/pdf public/plugin_assets
  2. chown -R nobody:nobody files log tmp public/plugin_assets
  3. chmod -R 775 files log tmp public/plugin_assets

Cài đặt Bundle để quản lý gems:

  1. gem install bundler
  2. bundle install --without development test
  3. bundle exec rake generate_secret_token

Tạo cấu trúc databse cho redmine

  1. RAILS_ENV=production bundle exec rake db:migrate
  2. RAILS_ENV=production bundle exec rake redmine:load_default_data

Restart lại nginx

  1. systemctl restart nginx

Kết nối vào redmine qua trình duyệt web

 

 


Thủ Thuật Hay

470 Blog posts

Comments