Redmine là một ứng dụng web nguồn mở để quản lý dự án và theo dõi vấn đề. Redmine dựa trên Ruby on Rails Framework, hỗ trợ đa nền tảng và đa cơ sở dữ liệu và đi kèm bản dịch cho 42 ngôn ngữ. Phần mềm cho phép bạn theo dõi nhiều dự án, tích hợp quản lý tin tức, tài liệu và tệp và wiki hỗ trợ cho mỗi dự án. Tài khoản người dùng có thể được xác thực với thư mục LDAP và phần mềm của bên thứ ba có thể được kết nối thông qua REST API.
Trong hướng dẫn này, chúng ta sẽ cài đặt Redmine 3.2 với Nginx làm máy chủ web, MySQL làm máy chủ cơ sở dữ liệu trên hệ điều hành CentOS 7 (64 bit).
Điều kiện tiên quyết
Cài đặt tất cả các gói phụ thuộc mà Redmine yêu cầu và các gói cần thiết cho ruby và rvm bằng lệnh theyum bên dưới:
Quá trình cài đặt sẽ yêu cầu nhập mật khẩu MySQL. Nhập mật khẩu gốc MySQL mới của bạn khi được yêu cầu.
Khi quá trình cài đặt hoàn tất, chúng ta phải tải lại RVM và thêm nó vào tệp .bashrc để tải lại tự động:
Tải lại tệp .bashrc và kiểm tra phiên bản Ruby và RVM.
Thêm kho lưu trữ Oracle MySQL và kiểm tra danh sách kho lưu trữ.
để đảm bảo rằng kho lưu trữ máy chủ MySQL đã được thêm thành công.
Cài đặt máy chủ MySQL bằng lệnh yum này.
Khi quá trình cài đặt hoàn tất, hãy khởi động dịch vụ mysqld và cấu hình mật khẩu gốc MySQL.
Máy chủ MySQL đã được khởi động. Bây giờ hãy lấy mật khẩu gốc tạm thời cho máy chủ mysql bằng lệnh grep bên dưới:
Bạn sẽ thấy kết quả tương tự như sau:
Vì vậy, chúng ta biết mật khẩu gốc cho máy chủ MySQL là: />y.)uWui8j*
Bây giờ chúng ta sẽ đặt mật khẩu gốc mới cho máy chủ mysql. Đăng nhập vào shell mysql với người dùng root và mật khẩu đã tạo:
Đặt mật khẩu người dùng root mới với truy vấn mysql bên dưới:
Tiếp theo, tạo một cơ sở dữ liệu mới có tên là "redmine" và tạo một người dùng mới 'redmine' với mật khẩu 'redmine' (hãy sử dụng mật khẩu an toàn trên máy chủ của bạn tại đây!). Sau đó cấp tất cả các quyền cho người dùng vào cơ sở dữ liệu 'redmine'.
Database and user has been created.
Trong chương này, chúng ta sẽ cài đặt Phusion Passenger và tích hợp nó với máy chủ web nginx của chúng ta. Cài đặt Passenger bằng lệnh gem bên dưới, sau đó chạy lệnh passenger-nginx-module.
Lệnh sẽ hỏi bạn sẽ sử dụng ngôn ngữ lập trình nào, hãy chọn Ruby và Python.
Bạn sẽ được hỏi về cài đặt nginx; chọn "Có: tải xuống, biên dịch và cài đặt Nginx cho tôi. (khuyến nghị)".
Bạn sẽ được yêu cầu cung cấp thư mục cài đặt ginx, sử dụng mặc định là '/opt/nginx/', chỉ cần nhấn "Enter".
Dán cấu hình bên dưới vào dòng 24:
Lưu tệp và thoát khỏi trình chỉnh sửa.
Tạo thư mục 'vhost' mới cho máy chủ ảo cấu hình.
mkdir -p /opt/nginx/conf/vhost
Đi tới thư mục vhost và tạo cấu hình máy chủ ảo redmine bằng vim:
Dán cấu hình máy chủ ảo bên dưới:
Lưu tệp.
Ubuntu 16.04 sử dụng systemd làm hệ thống khởi tạo. Tiếp theo, chúng ta cấu hình nginx cho systemd. Vào thư mục systemd và tạo tệp dịch vụ mới có tên 'nginx.service'.
Dán tập lệnh nginx cho systemd bên dưới:
Lưu và thoát.
Tải lại dịch vụ systemd và thử khởi động nginx bằng lệnh systemctl:
Nếu bạn muốn kiểm tra nginx, hãy kiểm tra cổng mở 80:
Kết quả sẽ như thế này:
Đi đến thư mục '/var/www/' và tải xuống Redmine bằng lệnh svn:
Đi đến 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:
Chỉnh sửa tệp database.yml bằng vim:
Trong dòng phần sản xuất, hãy điền tên người dùng và mật khẩu cơ sở dữ liệu:
Lưu tệp.
Trong thư mục redmine, tạo một số thư mục mới và thay đổi chủ sở hữu thành người dùng và nhóm nobody:
Cài đặt bundler và gem dependency cho redmine:
Tạo mã thông báo bí mật, sau đó tạo cơ sở dữ liệu:
Khởi động lại nginx và truy cập tên miền redmine bằng trình duyệt web:
Truy cập cài đặt redmine, của tôi là: www.redmine.co
Đăng nhập vào trang quản trị: www.redmine.co/login
Người dùng và mật khẩu mặc định là 'admin'.
Tạo một dự án mẫu mới.
Trang dự án mẫu.
Cài đặt Redmine với Nginx và MySQL trên CentOS 7 đã thành công.
Trong hướng dẫn này, chúng ta sẽ cài đặt Redmine 3.2 với Nginx làm máy chủ web, MySQL làm máy chủ cơ sở dữ liệu trên hệ điều hành CentOS 7 (64 bit).
Điều kiện tiên quyết
- CentOS 7 - 64 bit.
- Quyền root.
Bước 1 - Cài đặt các phụ thuộc Redmine
Redmine có rất nhiều phụ thuộc mà chúng ta sẽ cài đặt trước. Đăng nhập vào máy chủ CentOS 7 của bạn với tư cách là người dùng root:
Mã:
ssh [emailprotected]
Mã:
yum install zlib-devel curl-devel openssl-devel httpd-devel apr-devel apr-util-devel mysql-devel ftp wget ImageMagick-devel gcc-c++ patch readline readline-devel zlib libyaml-devel libffi-devel make bzip2 autoconf automake libtool bison iconv-devel subversion
Bước 2 - Cài đặt Ruby và RVM
Trong bước này, chúng ta sẽ cài đặt rvm (phiên bản mới nhất) và ruby 2.2. Redmine 3.2 hỗ trợ ruby phiên bản 2.2. RVM (Ruby Version Manager) là một công cụ dòng lệnh 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 trên cùng một máy chủ.
Mã:
gpg2 --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3
curl -L https://get.rvm.io | bash -s stable --ruby=2.2.5
Mã:
source /usr/local/rvm/scripts/rvm
echo '[[ -s "/usr/local/rvm/scripts/rvm" ]] && source "/usr/local/rvm/scripts/rvm"' >> ~/.bashrc
Mã:
source ~/.bashrc
ruby -v
rvm -v
Bước 3 - Cấu hình Cơ sở dữ liệu cho Redmine
Trong bước này, chúng ta sẽ cài đặt gói mysql-server từ kho lưu trữ MySQL chính thức.Thêm kho lưu trữ Oracle MySQL và kiểm tra danh sách kho lưu trữ.
Mã:
rpm -Uvh https://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm
yum repolist
Cài đặt máy chủ MySQL bằng lệnh yum này.
Mã:
yum cài đặt mysql-server
Mã:
systemctl start mysqld
Mã:
grep 'temporary password' /var/log/mysqld.log
Mã:
2016-10-31T23:06:50.974555Z 1 [Lưu ý] Một mật khẩu tạm thời được tạo cho root@localhost: />y.)uWui8j*
Bây giờ chúng ta sẽ đặt mật khẩu gốc mới cho máy chủ mysql. Đăng nhập vào shell mysql với người dùng root và mật khẩu đã tạo:
Mã:
mysql -u root -p
MẬT KHẨU ĐƯỢC TẠO: [B]/>y.)uWui8j*[/b]
Mã:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'Aqwe123@!';
Mã:
create database redmine;
create user redmine@localhost defined by 'Redmine123@!';
grant all privileges on redmine.* to redmine@localhost defined by 'Redmine123@!';
flush privileges;
exit
Bước 4 - Cài đặt Phusion Passenger và Nginx
Phusion Passenger là máy chủ ứng dụng web có thể sử dụng cùng với apache và nginx. Nó hỗ trợ nhiều ngôn ngữ: Ruby, Python và Nodejs. Nó dễ sử dụng, nhanh, có thể xử lý nhiều lưu lượng hơn và cung cấp các cải tiến về bảo mật.Trong chương này, chúng ta sẽ cài đặt Phusion Passenger và tích hợp nó với máy chủ web nginx của chúng ta. Cài đặt Passenger bằng lệnh gem bên dưới, sau đó chạy lệnh passenger-nginx-module.
Mã:
gem install passenger --no-ri --no-rdoc
passenger-install-nginx-module
Bạn sẽ được hỏi về cài đặt nginx; chọn "Có: tải xuống, biên dịch và cài đặt Nginx cho tôi. (khuyến nghị)".
Bạn sẽ được yêu cầu cung cấp thư mục cài đặt ginx, sử dụng mặc định là '/opt/nginx/', chỉ cần nhấn "Enter".
Bước 5 - Cấu hình Nginx
Khi quá trình cài đặt ginx hoàn tất, hãy 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.
Mã:
cd /opt/nginx/
cd conf/
vim nginx.conf
Mã:
include vhost/*.conf;
Tạo thư mục 'vhost' mới cho máy chủ ảo cấu hình.
mkdir -p /opt/nginx/conf/vhost
Đi tới thư mục vhost và tạo cấu hình máy chủ ảo redmine bằng vim:
Mã:
cd /opt/nginx/conf/vhost/
vim redmine.conf
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;
}
}
Ubuntu 16.04 sử dụng systemd làm hệ thống khởi tạo. Tiếp theo, chúng ta cấu hình nginx cho systemd. Vào thư mục systemd và tạo tệp dịch vụ mới có tên 'nginx.service'.
Mã:
cd /lib/systemd/system/
vim nginx.service
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
Tải lại dịch vụ systemd và thử khởi động nginx bằng lệnh systemctl:
Mã:
systemctl daemon-reload
systemctl start nginx
Mã:
netstat -plntu | grep nginx
Mã:
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 4871/nginx
Bước 6 - Cài đặt Redmine
Tạo một thư mục mới để cài đặt Redmine. Tôi sẽ sử dụng thư mục '/var/www/' ở đây.
Mã:
mkdir -p /var/www/
Mã:
cd /var/www/
svn co https://svn.redmine.org/redmine/branches/3.2-stable redmine
Mã:
cd redmine
cp config/configuration.yml.example config/configuration.yml
cp config/database.yml.example config/database.yml
Mã:
vim config/database.yml
Mã:
production:
adapter: mysql2
database: redmine
host: localhost
username: redmine
password: "Redmine123@!"
encoding: utf8
Trong thư mục redmine, tạo một số thư mục mới và thay đổi chủ sở hữu thành người dùng và nhóm nobody:
Mã:
mkdir -p tmp tmp/pdf public/plugin_assets
sudo chown -R nobody:nobody files log tmp public/plugin_assets
sudo chmod -R 775 files log tmp public/plugin_assets
Mã:
gem install bundler
bundle install --without development test
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
Mã:
systemctl restart nginx
Đăng nhập vào trang quản trị: www.redmine.co/login
Người dùng và mật khẩu mặc định là 'admin'.
Tạo một dự án mẫu mới.
Trang dự án mẫu.
Cài đặt Redmine với Nginx và MySQL trên CentOS 7 đã thành công.