Redmine là một hệ thống quản lý dự án và theo dõi vấn đề miễn phí, mã nguồn mở, phổ biến. Nó hỗ trợ cơ sở dữ liệu PostgreSQL và MariaDB và được xây dựng trên nền tảng Ruby on Rails. Nó có hỗ trợ plugin của bên thứ ba tích hợp, cho phép bạn thiết lập nhiều dự án, wiki và diễn đàn. Nó cung cấp nhiều tính năng, bao gồm thông báo Email và Nguồn cấp dữ liệu, Hỗ trợ nhiều ngôn ngữ, Kiểm soát truy cập dựa trên vai trò, Quản lý tệp, v.v.
Hướng dẫn này sẽ giải thích cách cài đặt hệ thống quản lý dự án Redmine trên CentOS.
Sau khi tất cả các gói được cài đặt, bạn có thể tiến hành bước tiếp theo.
Sau khi máy chủ MariaDB được cài đặt, hãy khởi động dịch vụ MariaDB và cho phép nó khởi động khi khởi động lại hệ thống:
Tiếp theo, hãy đăng nhập vào shell MariaDB bằng lệnh sau lệnh:
Sau khi đăng nhập, hãy tạo cơ sở dữ liệu và người dùng cho Redmine bằng lệnh sau:
Tiếp theo, xóa các đặc quyền và thoát khỏi MariaDB bằng lệnh sau lệnh:
Sau khi hoàn tất, bạn có thể tiến hành bước tiếp theo.
Đầu tiên, hãy cài đặt và kích hoạt kho EPEL bằng lệnh sau lệnh:
Tiếp theo, cài đặt Ruby và Passenger bằng lệnh sau:
Sau khi tất cả các gói được cài đặt, bạn có thể tiến hành bước tiếp theo.
Tiếp theo, đăng nhập vào người dùng Redmine và tải xuống phiên bản Redmine mới nhất bằng lệnh sau:
Sau khi tải xuống hoàn tất, hãy giải nén tệp đã tải xuống bằng lệnh sau lệnh:
Tiếp theo, đổi tên thư mục đã giải nén bằng lệnh sau:
Tiếp theo, thay đổi thư mục thành redmine và sao chép cấu hình cơ sở dữ liệu mẫu tệp:
Tiếp theo, chỉnh sửa tệp cấu hình cơ sở dữ liệu và xác định cài đặt cơ sở dữ liệu của bạn:
Thay đổi các dòng sau cho phù hợp với cơ sở dữ liệu:
Lưu và đóng tệp sau đó cài đặt Bundler bằng lệnh sau:
Tiếp theo, cài đặt các phụ thuộc khác bằng lệnh sau lệnh:
Tiếp theo, tạo một mã thông báo bí mật bằng lệnh sau:
Tiếp theo, tạo các đối tượng cơ sở dữ liệu cần thiết cho ứng dụng bằng cách sử dụng lệnh sau lệnh:
Cuối cùng, khởi động ứng dụng bằng lệnh sau:
Bạn sẽ thấy kết quả sau:
Nhấn CTRL + C để dừng ứng dụng.
Tiếp theo, thoát khỏi người dùng Redmine bằng lệnh sau:
Thêm các dòng sau:
Lưu và đóng tệp, sau đó tải lại daemon systemd bằng lệnh sau lệnh:
Tiếp theo, khởi động dịch vụ Redmine và cho phép nó khởi động khi khởi động lại hệ thống:
Bây giờ, hãy kiểm tra trạng thái của Redmine bằng lệnh sau lệnh:
Bạn sẽ thấy đầu ra sau:
Lúc này, Redmine đã được khởi động và đang lắng nghe trên cổng 3000. Bạn có thể kiểm tra bằng lệnh sau lệnh:
Bạn sẽ nhận được kết quả đầu ra sau:
Tiếp theo, hãy tạo tệp cấu hình máy chủ ảo Nginx bằng lệnh sau:
Thêm nội dung sau dòng:
Lưu và đóng tệp sau đó xác minh Nginx xem có lỗi cú pháp nào không bằng lệnh sau:
Bạn sẽ nhận được thông báo sau đầu ra:
Tiếp theo, khởi động dịch vụ Nginx và cho phép nó khởi động khi khởi động lại hệ thống:
Bạn cũng có thể kiểm tra trạng thái của Nginx bằng lệnh sau lệnh:
Bạn sẽ nhận được kết quả sau:
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22258%22%3E%3C/svg%3E
Nhấp vào nút Đăng nhập. Bạn sẽ thấy trang đăng nhập Redmine:
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22271%22%3E%3C/svg%3E
Cung cấp tên người dùng và mật khẩu mặc định là admin, sau đó nhấp vào nút Đăng nhập. Bạn sẽ được chuyển hướng đến màn hình thay đổi mật khẩu:
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22295%22%3E%3C/svg%3E
Đặt mật khẩu quản trị mới và nhấp vào nút Lưu để lưu các thay đổi.
Hướng dẫn này sẽ giải thích cách cài đặt hệ thống quản lý dự án Redmine trên CentOS.
Điều kiện tiên quyết
- Máy chủ chạy CentOS 8.
- Mật khẩu gốc được cấu hình trên máy chủ.
Cài đặt các phụ thuộc bắt buộc
Trước khi bắt đầu, bạn sẽ cần cài đặt một số phụ thuộc trên máy chủ của mình. Bạn có thể cài đặt tất cả chúng bằng lệnh sau:
Mã:
dnf group install "Development Tools"
dnf install zlib-devel curl-devel openssl-devel -y
Cài đặt và cấu hình cơ sở dữ liệu MariaDB
Redmine sử dụng MariaDB làm cơ sở dữ liệu backend vì vậy bạn sẽ cần cài đặt máy chủ cơ sở dữ liệu MariaDB trong máy chủ của mình. Bạn có thể cài đặt nó bằng lệnh sau:
Mã:
dnf install mariadb-server mariadb-devel -y
Mã:
systemctl start mariadb
systemctl enable mariadb
Mã:
mysql
Mã:
MariaDB [(none)]> CREATE DATABASE redmine CHARACTER SET utf8mb4;
MariaDB [(none)]> GRANT ALL PRIVILEGES ON redmine.* TO 'redmine'@'localhost' IDENTIFIED BY 'password';
Mã:
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> EXIT;
Cài đặt Ruby và Passenger
Tiếp theo, bạn sẽ cần cài đặt Ruby và Passenger vào hệ thống của mình.Đầu tiên, hãy cài đặt và kích hoạt kho EPEL bằng lệnh sau lệnh:
Mã:
dnf install epel-release -y
dnf config-manager --enable epel -y
Mã:
dnf install mod_passenger passenger passenger-devel ruby ruby-devel -y
Cài đặt Redmine
Đầu tiên, bạn sẽ cần tạo một người dùng riêng cho Redmine. Bạn có thể tạo nó bằng lệnh sau:
Mã:
useradd -m -U -r -d /opt/redmine redmine
Mã:
su - redmine
wget --no-check-certificate https://www.redmine.org/releases/redmine-4.2.1.zip
Mã:
unzip redmine-4.2.1.zip
Mã:
mv redmine-4.2.1 redmine
Mã:
cd redmine
cp config/database.yml.example config/database.yml
Mã:
nano config/database.yml
Mã:
production: adapter: mysql2 database: redmine host: localhost username: redmine password: "password" encoding: utf8mb4
Mã:
gem install bundler --no-rdoc --no-ri
Mã:
bundle install --without development test postgresql sqlite --path vendor/bundle
Mã:
bundle exec rake generate_secret_token
Mã:
RAILS_ENV=production bundle exec rake db:migrate
Mã:
bundle exec rails server webrick -e production
Mã:
/usr/bin/ruby: warning: shebang line ending with \r may cause problems
=> Booting WEBrick
=> Rails 5.2.5 application starting in production on http://0.0.0.0:3000
=> Run `rails server -h` for more startup options
[2021-06-24 00:40:15] INFO WEBrick 1.4.2
[2021-06-24 00:40:15] INFO ruby 2.5.5 (2019-03-15) [x86_64-linux]
[2021-06-24 00:40:15] INFO WEBrick::HTTPServer#start: pid=43076 port=3000
Tiếp theo, thoát khỏi người dùng Redmine bằng lệnh sau:
Mã:
exit
Tạo tệp dịch vụ Systemd cho Redmine
Tiếp theo, bạn sẽ cần tạo một tệp dịch vụ systemd để quản lý ứng dụng Redmine. Bạn có thể tạo tệp này bằng lệnh sau:
Mã:
nano /usr/lib/systemd/system/redmine.service
Mã:
[Unit]
Description=Redmine server
After=syslog.target
After=network.target
[Service]
Type=simple
User=redmine
Group=redmine
ExecStart=/bin/ruby /opt/redmine/redmine/bin/rails server webrick -e production
# Give a reasonable amount of time for the server to start up/shut down
TimeoutSec=300
[Install]
WantedBy=multi-user.target
Mã:
systemctl daemon-reload
Mã:
systemctl start redmine
systemctl enable redmine
Mã:
systemctl status redmine
Mã:
? redmine.service - Redmine server Loaded: loaded (/usr/lib/systemd/system/redmine.service; disabled; vendor preset: disabled) Active: active (running) since Thu 2021-06-24 04:26:51 EDT; 1min 37s ago Main PID: 44044 (ruby) Tasks: 3 (limit: 25014) Memory: 121.6M CGroup: /system.slice/redmine.service ??44044 /bin/ruby /opt/redmine/redmine/bin/rails server webrick -e production
Jun 24 04:26:51 centos8 systemd[1]: Started Redmine server.
Jun 24 04:26:52 centos8 ruby[44044]: /bin/ruby: warning: shebang line ending with \r may cause problems
Jun 24 04:26:56 centos8 ruby[44044]: [2021-06-24 04:26:56] INFO WEBrick 1.4.2
Jun 24 04:26:56 centos8 ruby[44044]: [2021-06-24 04:26:56] INFO ruby 2.5.5 (2019-03-15) [x86_64-linux]
Jun 24 04:26:56 centos8 ruby[44044]: [2021-06-24 04:26:56] INFO WEBrick::HTTPServer#start: pid=44044 port=3000
Mã:
ss -antpl | grep 3000
Mã:
LISTEN 0 128 0.0.0.0:3000 0.0.0.0:* users:(("ruby",pid=44044,fd=9))
Cấu hình Nginx làm Proxy ngược cho Redmine
Tiếp theo, bạn sẽ cần cài đặt và cấu hình Nginx làm proxy ngược cho Redmine. Trước tiên, hãy cài đặt máy chủ Nginx bằng lệnh sau:
Mã:
dnf install nginx -y
Mã:
nano /etc/nginx/conf.d/redmine.conf
Mã:
upstream backend { server 127.0.0.1:3000;
}
server { listen 80; server_name redmine.example.com; access_log /var/log/nginx/redmine.example.com-access.log; error_log /var/log/nginx/redmine.example.com-error.log; location / { proxy_pass http://backend/; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forward-For $proxy_add_x_forwarded_for; proxy_set_header X-Forward-Proto http; proxy_set_header X-Nginx-Proxy true; proxy_redirect off; }
}
Mã:
nginx -t
Mã:
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
Mã:
systemctl start nginx
systemctl enable nginx
Mã:
systemctl status nginx
Mã:
? nginx.service - The nginx HTTP and reverse proxy server Loaded: loaded (/usr/lib/systemd/system/nginx.service; disabled; vendor preset: disabled) Drop-In: /usr/lib/systemd/system/nginx.service.d ??php-fpm.conf Active: active (running) since Thu 2021-06-24 04:33:48 EDT; 25s ago Process: 45832 ExecStart=/usr/sbin/nginx (code=exited, status=0/SUCCESS) Process: 45830 ExecStartPre=/usr/sbin/nginx -t (code=exited, status=0/SUCCESS) Process: 45828 ExecStartPre=/usr/bin/rm -f /run/nginx.pid (code=exited, status=0/SUCCESS) Main PID: 45833 (nginx) Tasks: 3 (limit: 25014) Memory: 5.3M CGroup: /system.slice/nginx.service ??45833 nginx: master process /usr/sbin/nginx ??45834 nginx: worker process ??45835 nginx: worker process
Jun 24 04:33:48 centos8 systemd[1]: Starting The nginx HTTP and reverse proxy server...
Jun 24 04:33:48 centos8 nginx[45830]: nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
Jun 24 04:33:48 centos8 nginx[45830]: nginx: configuration file /etc/nginx/nginx.conf test is successful
Jun 24 04:33:48 centos8 systemd[1]: Started The nginx HTTP and reverse proxy server.
Truy cập Redmine
Bây giờ, bạn có thể truy cập giao diện web Redmine bằng URL . Bạn sẽ thấy trang sau:data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22258%22%3E%3C/svg%3E
Nhấp vào nút Đăng nhập. Bạn sẽ thấy trang đăng nhập Redmine:
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22271%22%3E%3C/svg%3E
Cung cấp tên người dùng và mật khẩu mặc định là admin, sau đó nhấp vào nút Đăng nhập. Bạn sẽ được chuyển hướng đến màn hình thay đổi mật khẩu:
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22295%22%3E%3C/svg%3E
Đặt mật khẩu quản trị mới và nhấp vào nút Lưu để lưu các thay đổi.