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).
Cài đặt các phụ thuộc của Redmine bằng lệnh apt bên dưới:
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â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:
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'.
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!
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.
Lệnh sẽ hỏi bạn về ngôn ngữ được hỗ trợ, hãy chọn Ruby và Python 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".
Dán dòng cấu hình bên dưới vào tệp:
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:
Dán cấu hình máy chủ ảo bên dưới:
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'.
Dán tập lệnh Nginx cho systemd bên dưới:
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:
Nếu bạn muốn kiểm tra Nginx, hãy kiểm tra cổng 80 đang mở bằng netstat:
Vào thư mục '/var/www/' và tải xuống redmine bằng lệnh svn:
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:
Sau đó chỉnh sửa tệp database.yml bằng vim:
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.
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:
Sau đó cài đặt bundler và các phụ thuộc gem cho Redmine:
Bây giờ tạo mã thông báo bí mật rồi tạo cơ sở dữ liệu:
Khởi động lại Nginx và truy cập miền redmine bằng trình duyệt web:
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.
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
Mã:
apt-get install mysql-server mysql-client libmysqlclient-dev imagemagick libmagickwand-dev libcurl4-openssl-dev git-core subversion
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
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
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\
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
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
Mã:
include vhost/*.conf;
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
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;
}
}
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
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 các 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
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/
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: "redmine"
encoding: utf8
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
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.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.