Cách cài đặt Redmine 3.2 với Nginx trên Ubuntu 16.04

theanh

Administrator
Nhân viên
Redmine là một công cụ quản lý dự án và theo dõi vấn đề nguồn mở dựa trên Ruby on Rails Framework. Nó dựa trên web, vì vậy bạn có thể sử dụng nó từ bất kỳ nền tảng máy khách nào cung cấp trình duyệt web. Nó rất phù hợp cho các nhóm đa ngôn ngữ vì nó chứa bản dịch cho 42 ngôn ngữ. Bạn có thể theo dõi nhiều dự án trong một lần cài đặt, nó có hỗ trợ tích hợp cho tin tức, quản lý tài liệu, quản lý tệp, wiki hỗ trợ. Bạn có thể kết nối nó với các ứng dụng khác bằng xác thực LDAP và REST API.

Hướng dẫn này bao gồm cài đặt Redmine 3.2 với máy chủ web Nginx và máy chủ cơ sở dữ liệu MySQL trên hệ điều hành Ubuntu 16.04 (64 Bit).


Điều kiện tiên quyết​

  • Ubuntu 16.04 - 64 bit.
  • Quyền root.

Bước 1 - Cài đặt các phụ thuộc​

Redmine có rất nhiều phụ thuộc nhưng chúng ta có thể cài đặt chúng dễ dàng với apt. Bước đầu tiên là trở thành người dùng root và sau đó cập nhật kho lưu trữ Ubuntu của bạn. Tất cả các bước tiếp theo trong hướng dẫn này được thực hiện dưới dạng người dùng root, đó là lý do tại sao tôi sử dụng "sudo su" thay vì thêm sudo vào trước mỗi lệnh.
Mã:
sudo su
apt-get update
Cài đặt các phụ thuộc của Redmine bằng lệnh apt bên dưới:
Mã:
apt-get install mysql-server mysql-client libmysqlclient-dev imagemagick libmagickwand-dev libcurl4-openssl-dev git-core subversion
Trình cài đặt sẽ yêu cầu mật khẩu root MySQl mới, hãy nhập mật khẩu MySQL mới và an toàn vào đó.


Bước 2 - Cài đặt Ruby và RVM​

Trong bước này, chúng ta sẽ cài đặt phiên bản RVM mới nhất và Ruby 2.2. Redmine 3.2 ổn định hỗ trợ Ruby phiên bản 2.2, vì vậy chúng ta có thể sử dụng nó ở đây. RMV (Ruby Version Manager) là một công cụ dòng lệnh tiện dụng cho phép bạn cài đặt, quản lý và làm việc với nhiều môi trường Ruby.
Mã:
gpg --keyserver hkp://keys.gnupg.net --recv-keys D39DC0E3
curl -L https://get.rvm.io | bash -s ổn định --ruby=2.2.5
Bây giờ chúng ta phải tải lại RVM và thêm nó vào .bashrc để tải lại tự động:
Mã:
source /usr/local/rvm/scripts/rvm
echo '[[ -s "/usr/local/rvm/scripts/rvm" ]] && source "/usr/local/rvm/scripts/rvm"' >> ~/.bashrc

Bước 3 - Cấu hình Cơ sở dữ liệu MySQL cho Redmine​

Chúng tôi sẽ tạo một cơ sở dữ liệu và người dùng cơ sở dữ liệu để cài đặt Redmine. Đăng nhập vào shell MySQL bằng người dùng root và mật khẩu của bạn:
Mã:
mysql -u root -p
NHẬP MẬT KHẨU CỦA BẠN
Tiếp theo, tạo một cơ sở dữ liệu mới có tên là "redmine" và một người dùng mới có tên 'redmine' với mật khẩu 'redmine' (sử dụng mật khẩu tốt hơn khi cài đặt, mật khẩu này chỉ là một ví dụ), sau đó cấp quyền cho người dùng 'redmine' vào cơ sở dữ liệu 'redmine'.
Mã:
create database redmine;
create user redmine@localhost được xác định bởi 'redmine';
grant all privileges on redmine.* to redmine@localhost được xác định bởi 'redmine';
flush privileges;
q\
Cơ sở dữ liệu và người dùng đã được tạo. Vui lòng sử dụng mật khẩu an toàn trên máy chủ của bạn!


Bước 4 - Cài đặt Phusion Passenger và Nginx​

Phusion Passenger là máy chủ web và ứng dụng có thể tích hợp với máy chủ web Apache và Nginx. Nó hỗ trợ nhiều ngôn ngữ như Ruby, Python và Nodejs. Dễ sử dụng, nhanh và cải thiện tính bảo mật của quá trình thiết lập.

Trong phần này, chúng ta sẽ cài đặt Phusion Passenger và tích hợp nó với Nginx. Redmine sẽ chạy dưới máy chủ web Nginx. Cài đặt Passenger bằng lệnh gem rồi cài đặt passenger-nginx-module.
Mã:
gem install passenger --no-ri --no-rdoc
passenger-install-nginx-module
Lệnh sẽ hỏi bạn về ngôn ngữ được hỗ trợ, hãy chọn RubyPython tại đây.

Bạn sẽ được hỏi về cài đặt Nginx, hãy chọn "Yes: download, compile and install Nginx for me. (recommended)".

Cuối cùng, bạn sẽ được hỏi về thư mục cài đặt Nginx, hãy sử dụng '/opt/nginx/' mặc định vànhấn "Enter".


Bước 5 - Cấu hình Nginx​

Vào thư mục cài đặt và chỉnh sửa tệp nginx.conf bằng trình chỉnh sửa, tôi sẽ sử dụng trình chỉnh sửa vim ở đây.
Mã:
cd /opt/nginx/conf/
vim nginx.conf
Dán dòng cấu hình bên dưới vào tệp:
Mã:
include vhost/*.conf;
Lưu và thoát.

Tiếp theo, tạo thư mục 'vhost' mới để cấu hình máy chủ ảo.

mkdir -p /opt/nginx/conf/vhost

Vào thư mục vhost và tạo tệp cấu hình máy chủ ảo aredmine bằng vim:
Mã:
cd /opt/nginx/conf/vhost/
vim redmine.conf
Dán cấu hình máy chủ ảo bên dưới:
Mã:
server {
 listen 80;
 server_name www.redmine.me;

 root /var/www/redmine/public;
 passenger_enabled on;
 client_max_body_size 10m; # Kích thước tệp đính kèm tối đa

 # chuyển hướng các trang lỗi máy chủ đến trang tĩnh /50x.html
 #
 error_page 500 502 503 504 /50x.html;
 location = /50x.html {
 root html;
 }
 }
Lưu và thoát.

Tiếp theo, chúng ta sẽ cấu hình Nginx để bắt đầu với systemd. Vào thư mục systemd và tạo một tệp dịch vụ mới 'nginx.service'.
Mã:
cd /lib/systemd/system/
vim nginx.service
Dán tập lệnh Nginx cho systemd bên dưới:
Mã:
[Unit]
Description=Máy chủ proxy ngược và HTTP NGINX
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
 
[Cài đặt]
WantedBy=multi-user.target
Lưu tệp và thoát.

Tải lại các dịch vụ systemd và thử khởi động Nginx bằng lệnh systemctl:
Mã:
systemctl daemon-reload
systemctl start nginx
Nếu bạn muốn kiểm tra Nginx, hãy kiểm tra cổng 80 đang mở bằng netstat:
Mã:
netstat -plntu | grep nginx
 
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 4871/nginx

Bước 6 - Cài đặt Redmine​

Tạo thư mục mới để cài đặt Redmine, ở đây tôi sẽ sử dụng thư mục '/var/www/'.
Mã:
mkdir -p /var/www/
Vào thư mục '/var/www/' và tải xuống redmine bằng lệnh svn:
Mã:
cd /var/www/
svn co https://svn.redmine.org/redmine/branches/3.2-stable redmine
Vào thư mục redmine và sao chép tệp cấu hình và tệp cấu hình cơ sở dữ liệu:
Mã:
cd redmine
cp config/configuration.yml.example config/configuration.yml
cp config/database.yml.example config/database.yml
Sau đó chỉnh sửa tệp database.yml bằng vim:
Mã:
vim config/database.yml
Trên dòng sản phẩm, hãy điền thông tin chi tiết cho cơ sở dữ liệu, người dùng cơ sở dữ liệu và mật khẩu. Sử dụng thông tin chi tiết về cơ sở dữ liệu mà bạn đã tạo trong chương 3.
Mã:
production:
adapter: mysql2
database: redmine
host: localhost
username: redmine
password: "redmine"
encoding: utf8
Lưu tệp và thoát khỏi trình soạn thảo.

Trong thư mục redmine, tạo một thư mục mới và đổi chủ sở hữu thành www-data:
Mã:
mkdir -p tmp tmp/pdf public/plugin_assets
sudo chown -R www-data:www-data files log tmp public/plugin_assets
sudo chmod -R 775 files log tmp public/plugin_assets
Sau đó cài đặt bundler và các phụ thuộc gem cho Redmine:
Mã:
gem install bundler
bundle install --without development test
Bây giờ tạo mã thông báo bí mật rồi tạo cơ sở dữ liệu:
Mã:
bundle exec rake generate_secret_token
RAILS_ENV=production bundle exec rake db:migrate
RAILS_ENV=production bundle exec rake redmine:load_default_data
Khởi động lại Nginx và truy cập miền redmine bằng trình duyệt web:
Mã:
systemctl restart nginx
Truy cập cài đặt redmine, trong trường hợp của tôi: www.redmine.me



Đăng nhập vào trang quản trị: www.redmine.me/login

Người dùng và mật khẩu mặc định là 'admin'.



Tạo dự án mẫu mới.



Trang dự án mẫu.



Quá trình cài đặt Redmine với Nginx và MySQL đã hoàn tất thành công.


Kết luận​

Redmine là ứng dụng dựa trên web để quản lý dự án và theo dõi sự cố. Redmine là ứng dụng đa nền tảng, vì vậy chúng ta có thể chạy trên Windows, Linux và Mac OS. Nó hỗ trợ nhiều cơ sở dữ liệu khác nhau như MySQL, PostgreSQL, Microsoft SQL Server và SQLite. Redmine dễ cài đặt và cấu hình, chúng ta có thể sử dụng Apache hoặc Nginx làm máy chủ web. Redmine rất mạnh mẽ và có nhiều tính năng như hỗ trợ đa ngôn ngữ, quản lý tệp, wiki và REST API. Redmine là một trong những giải pháp OpenSource tốt nhất để xây dựng quản lý dự án của riêng bạn với tính năng theo dõi sự cố.
 
Back
Bên trên