Cách cài đặt phần mềm quản lý dự án Redmine trên Rocky Linux 8

theanh

Administrator
Nhân viên
Redmine là phần mềm quản lý dự án và công cụ theo dõi vấn đề miễn phí và mã nguồn mở. Nó được viết bằng khuôn khổ Ruby on Rails và có thể tích hợp với nhiều hệ thống kiểm soát phiên bản khác nhau. Nó bao gồm trình duyệt kho lưu trữ và trình xem diff. Nó có thể được sử dụng để quản lý các tính năng của dự án theo wiki và diễn đàn dự án, theo dõi thời gian và kiểm soát truy cập dựa trên vai trò. Nó là đa nền tảng, đa cơ sở dữ liệu và hỗ trợ 49 ngôn ngữ.

Trong hướng dẫn này, bạn sẽ học cách cài đặt Redmine trên máy chủ chạy Rocky Linux 8.

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


  • Máy chủ chạy Rocky Linux.

  • Người dùng không dùng sudo có quyền root.

  • Tắt SELinux.

  • Mọi thứ đều được cập nhật.
Mã:
$ sudo dnf update

Bước 1 - Cấu hình Tường lửa​

Bước đầu tiên là cấu hình tường lửa. Rocky Linux sử dụng Tường lửa Firewalld. Kiểm tra trạng thái của tường lửa.
Mã:
$ sudo firewall-cmd --staterunning
Mở cổng 3000, chúng ta có thể sử dụng để kiểm tra Redmine.
Mã:
$ sudo firewall-cmd --permanent --add-port=3000
Cho phép các cổng HTTP và HTTPS.
Mã:
$ sudo firewall-cmd --permanent --add-service=http$ sudo firewall-cmd --permanent --add-service=https
Tải lại tường lửa để kích hoạt các thay đổi.
Mã:
$ sudo firewall-cmd --reload

Bước 2 - Cài đặt Apache Server​

Chúng ta sẽ sử dụng máy chủ web Apache để triển khai Redmine. Cài đặt Apache bằng lệnh sau.
Mã:
$ sudo dnf install httpd
Kích hoạt và khởi động dịch vụ Apache.
Mã:
$ sudo systemctl enable --now httpd.service
Cấp quyền cho người dùng apache đã đăng nhập hiện tại của bạn để người dùng này có quyền truy cập cần thiết vào thư mục /var/www/redmine.
Mã:
$ sudo usermod -aG $USER apache

Bước 3 - Cài đặt và cấu hình MySQL Server​

Chúng ta sẽ sử dụng cơ sở dữ liệu MySQL để lưu trữ dữ liệu. Kho lưu trữ Appstream của Rocky Linux đi kèm với phiên bản MySQL mới nhất.

Cài đặt MySQL.
Mã:
$ sudo dnf install mysql-server
Bật và khởi động dịch vụ MySQL.
Mã:
$ sudo systemctl enable mysqld --now
Cài đặt MySQL an toàn.
Mã:
$ sudo mysql_secure_installation
Đối với bước đầu tiên, bạn sẽ được hỏi xem bạn có muốn thiết lập Plugin Xác thực mật khẩu hay không, plugin này có thể được sử dụng để kiểm tra độ mạnh của mật khẩu MySQL. Chọn Y để tiếp tục. Bạn sẽ được yêu cầu chọn mức xác thực mật khẩu ở bước tiếp theo. Chọn 2 là cấp độ mạnh nhất và sẽ yêu cầu mật khẩu của bạn dài ít nhất tám ký tự và bao gồm hỗn hợp chữ hoa, chữ thường, số và ký tự đặc biệt.
Mã:
Bảo mật triển khai máy chủ MySQL.Kết nối với MySQL bằng mật khẩu trống.THÀNH PHẦN XÁC THỰC MẬT KHẨU có thể được sử dụng để kiểm tra mật khẩuvà cải thiện bảo mật. Nó kiểm tra độ mạnh của mật khẩuvà cho phép người dùng chỉ đặt những mật khẩuđủ an toàn. Bạn có muốn thiết lập thành phần XÁC THỰC MẬT KHẨU không?Nhấn y|Y để Có, bất kỳ phím nào khác để Không: YCó ba cấp độ chính sách xác thực mật khẩu:THẤP Chiều dài >= 8TRUNG BÌNH Chiều dài >= 8, số, chữ hoa và chữ thường, và ký tự đặc biệtMẠNH Chiều dài >= 8, số, chữ hoa và chữ thường, ký tự đặc biệt và tệp từ điểnVui lòng nhập 0 = THẤP, 1 = TRUNG BÌNH và 2 = MẠNH: 2
Bạn sẽ được yêu cầu chọn mật khẩu gốc ở bước tiếp theo. Chọn mật khẩu mạnh đáp ứng các yêu cầu của plugin xác thực mật khẩu. Ở bước tiếp theo, bạn sẽ được hỏi có muốn tiếp tục với mật khẩu đã chọn hay không. Nhấn y để tiếp tục.
Mã:
Vui lòng đặt mật khẩu cho gốc tại đây.Mật khẩu mới:Nhập lại mật khẩu mới:Ước tính độ mạnh của mật khẩu: 100Bạn có muốn tiếp tục với mật khẩu đã cung cấp không? (Nhấn y|Y để Có, bất kỳ phím nào khác để Không): Y
Nhấn Y rồi nhấn phím ENTER cho tất cả các lời nhắc sau để xóa người dùng ẩn danh và cơ sở dữ liệu thử nghiệm, vô hiệu hóa thông tin đăng nhập gốc và tải các quy tắc mới đặt.
Mã:
...Xóa người dùng ẩn danh? (Nhấn y|Y để Có, bất kỳ phím nào khác để Không): YThành công....Không cho phép đăng nhập root từ xa? (Nhấn y|Y để Có, bất kỳ phím nào khác để Không): YThành công....Xóa cơ sở dữ liệu thử nghiệm và quyền truy cập vào cơ sở dữ liệu đó? (Nhấn y|Y để Có, bất kỳ phím nào khác để Không): Y - Xóa cơ sở dữ liệu thử nghiệm...Thành công. - Xóa quyền trên cơ sở dữ liệu thử nghiệm...Thành công.Tải lại bảng quyền sẽ đảm bảo rằng tất cả các thay đổiđã thực hiện cho đến nay sẽ có hiệu lực ngay lập tức....Tải lại bảng quyền ngay bây giờ? (Nhấn y|Y để Có, bất kỳ phím nào khác để Không): YThành công.Xong!
Vào shell MySQL. Nhập mật khẩu root của bạn để tiếp tục.
Mã:
$ mysql -u root -p
Tạo người dùng redmine. Đảm bảo mật khẩu đáp ứng các yêu cầu đã đặt trước đó.
Mã:
mysql> CREATE USER 'redmine'@'localhost' IDENTIFIED BY 'Your_password2';
Tạo cơ sở dữ liệu redmine.
Mã:
mysql> CREATE DATABASE redmine CHARACTER SET utf8mb4;
Cấp quyền cho người dùng trên cơ sở dữ liệu redmine.
Mã:
mysql> CẤP TẤT CẢ CÁC QUYỀN TRÊN redmine.* CHO 'redmine'@'localhost';
Thoát khỏi Shell.
Mã:
mysql> exit

Bước 4 - Cài đặt kho lưu trữ EPEL​

Một số gói cần thiết cho Redmine có sẵn trong kho lưu trữ EPEL. Chạy lệnh sau để cài đặt kho lưu trữ EPEL.
Mã:
$ sudo dnf install epel-release
Kích hoạt kho lưu trữ PowerTools.
Mã:
$ sudo dnf config-manager --set-enabled powertools

Bước 5 - Cài đặt Ruby và các yêu cầu khác​

Rocky Linux 8 đi kèm với bốn phiên bản Ruby khác nhau - 2.5, 2.6, 2.7 và 3.0.

Liệt kê tất cả các mô-đun Ruby có sẵn.
Mã:
$ dnf module list rubyKiểm tra hết hạn siêu dữ liệu lần cuối: 0:18:58 trước vào Thứ Hai, ngày 03 tháng 01 năm 2022 lúc 11:50:10 sáng UTC.Rocky Linux 8 - AppStreamTên Stream Profiles Tóm tắtruby 2.5 [d] common [d] Trình thông dịch ngôn ngữ kịch bản hướng đối tượngruby 2.6 common [d] Trình thông dịch ngôn ngữ kịch bản hướng đối tượngruby 2.7 common [d] Trình thông dịch ngôn ngữ kịch bản hướng đối tượngruby 3.0 common [d] Trình thông dịch ngôn ngữ kịch bản hướng đối tượngGợi ý: [d]mặc định, [được]bật, [x]vô hiệu hóa, [cài đặt]
Phiên bản mới nhất của Redmine tương thích với mọi phiên bản ngoại trừ 3.0. Chúng tôi sẽ cài đặt Ruby 2.7 cho hướng dẫn của chúng tôi.

Đặt lại các phiên bản khác và bật phiên bản Ruby 2.7.
Mã:
$ sudo dnf module reset ruby$ sudo dnf module enable ruby:2.7
Cài đặt Ruby.
Mã:
$ sudo dnf install ruby ruby-devel
Xác minh cài đặt.
Mã:
$ ruby -vruby 2.7.4p191 (bản sửa đổi ngày 07 tháng 07 năm 2021 a21a3b7d23) [x86_64-linux]
Cài đặt tất cả các gói còn lại mà Redmine yêu cầu.
Mã:
$ sudo dnf install rpm-build wget libxml2-devel make automake libtool ImageMagick ImageMagick-devel mariadb-devel httpd-devel openssl-devel libcurl-devel gcc gcc-c++

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

Truy cập trang tải xuống Redmine và kiểm tra phiên bản ổn định mới nhất hiện có. Vào thời điểm viết hướng dẫn này, phiên bản mới nhất hiện có là 4.2.3.

Sử dụng wget để tải xuống Redmine.
Mã:
$ wget https://redmine.org/releases/redmine-4.2.3.tar.gz
Giải nén và di chuyển các tệp đến thư mục /var/www/redmine.
Mã:
$ tar xfz redmine-4.2.3.tar.gz$ sudo mv redmine-4.2.3 /var/www/redmine
Chuyển đến thư mục /var/www/redmine.
Mã:
$ cd /var/www/redmine
Tạo các tệp cấu hình Redmine bằng cách sử dụng các tệp ví dụ được cung cấp.
Mã:
$ cp config/configuration.yml.example config/configuration.yml$ cp config/database.yml.example config/database.yml$ cp public/dispatch.fcgi.example public/dispatch.fcgi
Mở tệp database.yml để chỉnh sửa.
Mã:
$ nano config/database.yml
Tìm và cấu hình cài đặt cơ sở dữ liệu của bạn trong phần sau.
Mã:
production: adapter: mysql2 database: redmine host: localhost username: redmine password: "Your_password2" # Sử dụng "utf8" thay vì "utfmb4" cho MySQL trước 5.7.7 encoding: utf8mb4
Lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc.

Cài đặt bundler để quản lý các phụ thuộc của ruby gem.
Mã:
$ gem install bundler
Thiết lập môi trường để cài đặt các phụ thuộc gem.
Mã:
$ bundle config set --local without 'development test'
Cài đặt các phụ thuộc gem.
Mã:
$ bundle install
Nếu bạn gặp bất kỳ sự cố nào với các phiên bản gem, hãy sử dụng lệnh sau để khôi phục.
Mã:
$ sudo gem pristine --all
Tạo khóa bí mật ngẫu nhiên để ngăn chặn việc can thiệp vào cookie để lưu trữ dữ liệu phiên.
Mã:
$ bundle exec rake generate_secret_token
Tạo cấu trúc cơ sở dữ liệu.
Mã:
$ RAILS_ENV=production bundle exec rake db:migrate
Chèn dữ liệu vào cơ sở dữ liệu MySQL.
Mã:
$ RAILS_ENV=production REDMINE_LANG=en bundle exec rake redmine:load_default_data
Tạo các thư mục cần thiết và thiết lập quyền cho tệp.
Mã:
$ mkdir -p tmp/pdf$ mkdir -p public/plugin_assets$ chown -R $USER:$USER files log tmp public/plugin_assets$ chmod -R 755 /var/www/remine/
Chạy lệnh sau để khởi động phiên bản máy chủ Rails.
Mã:
$ bundle exec rails server webrick -e production=> Đang khởi động WEBrick=> Ứng dụng Rails 5.2.6 đang khởi động trong môi trường sản xuất tại http://0.0.0.0:3000=> Chạy `rails server -h` để có thêm tùy chọn khởi động[2022-01-03 12:58:19] INFO WEBrick 1.6.1[2022-01-03 12:58:19] INFO ruby 2.7.4 (2021-07-07) [x86_64-linux][2022-01-03 12:58:19] INFO WEBrick::HTTPServer#start: pid=117224 port=3000
Mở URL http://<yourserverIP>:3000/login để có màn hình Đăng nhập Redmine.



Nhập thông tin đăng nhập mặc định (admin/admin) để đăng nhập. Bạn sẽ được yêu cầu thay đổi mật khẩu.



Tiếp theo, bạn sẽ được chuyển hướng đến trang Tài khoản của tôi.



Redmine đã được cài đặt thành công.

Tiếp theo, nhấn CTRL+C trên thiết bị đầu cuối để dừng máy chủ.

Bước 7 - Cài đặt Phusion Passenger​

Phusion Passenger là máy chủ ứng dụng ruby cho phép chúng tôi phục vụ Redmine thông qua máy chủ của bên thứ 3. Trong trường hợp của chúng tôi, chúng tôi sẽ sử dụng Apache.

Cài đặt Passenger.
Mã:
$ gem install passenger
Cài đặt mô-đun Passenger cho máy chủ Apache.
Mã:
$ passenger-install-apache2-module
Bạn sẽ được chào đón bằng một thông báo chào mừng. Nhấn Enter để tiếp tục.
Mã:
Chào mừng đến với trình cài đặt mô-đun Phusion Passenger Apache 2, v6.0.12.Trình cài đặt này sẽ hướng dẫn bạn trong toàn bộ quá trình cài đặt.Tổng thời gian sẽ không quá 3 phút.Sau đây là những gì bạn có thể mong đợi từ quá trình cài đặt: 1. Mô-đun Apache 2 sẽ được cài đặt cho bạn. 2. Bạn sẽ học cách cấu hình Apache. 3. Bạn sẽ học cách triển khai ứng dụng Ruby on Rails.Đừng lo lắng nếu có bất kỳ sự cố nào xảy ra. Trình cài đặt này sẽ tư vấn cho bạn cáchgiải quyết mọi sự cố.Nhấn Enter để tiếp tục hoặc Ctrl-C để hủy.--------------------------------------------
Tiếp theo, bạn sẽ được yêu cầu nhập ngôn ngữ. Ruby được chọn theo mặc định, vì vậy chỉ cần nhấn Enter để tiếp tục.
Mã:
Bạn quan tâm đến ngôn ngữ nào?Sử dụng  để chọn.Nếu menu không hiển thị đúng, hãy nhấn '!' ? ? Ruby ? Python ? Node.js ? Meteor----------------------------------------
Bạn có thể nhận được cảnh báo về quyền đối với tệp. Nếu bạn đã làm theo hướng dẫn của chúng tôi, chỉ cần nhấn Enter để tiếp tục.
Mã:
Cảnh báo: một số thư mục có thể không thể truy cập được bằng máy chủ web!Máy chủ web thường chạy dưới một tài khoản người dùng riêng vì lý do bảo mật. Người dùng đó phải có thể truy cập các tệp Phusion Passenger(R).Tuy nhiên, có vẻ như một số thư mục có quyền quá nghiêm ngặt. Điều nàycó thể ngăn người dùng máy chủ web truy cập các tệp Phusion Passenger(R).Bạn nên nới lỏng quyền như sau: sudo chmod o+x "/home/navjot"Nhấn Ctrl-C để quay lại shell. (Khuyến nghị)Sau khi nới lỏng quyền, hãy chạy lại trình cài đặt này. -HOẶC-Nhấn Enter để tiếp tục.
Toàn bộ quá trình sẽ mất khoảng 10-15 phút để hoàn tất. Nếu bạn gặp lỗi như sau, rất có thể là do RAM thấp. Bạn nên tăng RAM trên máy chủ hoặc cài đặt không gian hoán đổi.
Mã:
c++: lỗi nghiêm trọng: Killed signal ended program cc1pluscompilation ended.rake aborted!
Sau khi quá trình hoàn tất, bạn sẽ nhận được thông báo sau.
Mã:
----------------------------------------------------Gần xong rồi!Vui lòng chỉnh sửa tệp cấu hình Apache của bạn và thêm các dòng sau: LoadModule passenger_module /home/navjot/.gem/ruby/gems/passenger-6.0.12/buildout/apache2/mod_passenger.so  PassengerRoot /home/navjot/.gem/ruby/gems/passenger-6.0.12 PassengerDefaultRuby /usr/bin/ruby Sau khi khởi động lại Apache, bạn đã sẵn sàng triển khai bất kỳ số lượng ứng dụng web nào trên Apache, với lượng cấu hình tối thiểu!Nhấn ENTER khi bạn chỉnh sửa xong.
Đừng nhấn Enter vội. Mở một phiên mới trên máy chủ của bạn với tư cách là người dùng hiện tại và thực hiện các cấu hình sau.

Cấu hình Máy chủ Apache​

Tạo tệp cấu hình mô-đun Apache cho Phusion Passenger.
Mã:
$ sudo nano /etc/httpd/conf.modules.d/00-passenger.conf
Dán mã mà bạn nhận được ở cuối quá trình cài đặt Passenger.
Mã:
LoadModule passenger_module /home/navjot/.gem/ruby/gems/passenger-6.0.12/buildout/apache2/mod_passenger.so  PassengerRoot /home/username/.gem/ruby/gems/passenger-6.0.12 PassengerDefaultRuby /usr/bin/ruby
Lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc.

Tạo một tệp cấu hình Apache khác cho trang web Redmine.
Mã:
$ sudo nano /etc/httpd/conf.d/redmine.conf
Dán mã sau vào đó.
Mã:
Listen 3000 PassengerRoot /home/username/.gem/ruby/gems/passenger-6.0.12 PassengerDefaultRuby /usr/bin/ruby ServerName redmine.example.com DocumentRoot "/var/www/redmine/public" CustomLog logs/redmine_access.log combined ErrorLog logs/redmine_error_log LogLevel cảnh báo  Tùy chọn Indexes ExecCGI FollowSymLinks Require all granted AllowOverride all
Lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc.

Mở tệp cấu hình Apache chính /etc/httpd/conf/httpd.conf để chỉnh sửa.
Mã:
$ sudo nano /etc/httpd/conf/httpd.conf
Tìm biến ServerName và bỏ chú thích bằng cách xóa dấu thăng (#) ở phía trước biến và đặt giá trị của biến như sau.
Mã:
ServerName localhost
Lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc.

Xác minh cấu hình Apache của bạn.
Mã:
$ httpd -tCú pháp OK
Quay lại và nhấn Enter để tiếp tục cài đặt Passenger của bạn. Nó sẽ thực hiện một số kiểm tra và bạn sẽ thấy thông báo sau khi hoàn tất thành công.
Mã:
Triển khai ứng dụng webĐể tìm hiểu cách triển khai ứng dụng web trên Passenger, vui lòng làm theo hướng dẫn triển khai: https://www.phusionpassenger.com/library/deploy/apache/deploy/Thưởng thức Phusion Passenger, một sản phẩm của Phusion® (www.phusion.nl) :-)https://www.phusionpassenger.comPassenger® là nhãn hiệu đã đăng ký của Phusion Holding B.V.
Khởi động lại máy chủ Apache của bạn.
Mã:
$ sudo systemctl restart httpd
Trang web của bạn sẽ khả dụng tại http://redmine.example.com:3000.

Đây không phải là cách hoàn hảo để truy cập Redmine. Nó vẫn đang được phục vụ thông qua giao thức HTTP không an toàn và sử dụng số cổng. Chúng tôi sẽ cài đặt Nginx để hoạt động như một proxy ngược và phục vụ Redmine bằng giao thức HTTPS để cải thiện điều này. Trước khi chuyển sang cài đặt và cấu hình Nginx, chúng ta cần thiết lập chứng chỉ SSL.

Bước 8 - Cài đặt SSL​

Để cài đặt chứng chỉ SSL bằng Let's Encrypt, chúng ta cần cài đặt công cụ Certbot. Chạy các lệnh sau để cài đặt Certbot.
Mã:
$ sudo dnf install certbot
Dừng máy chủ Apache.
Mã:
$ sudo systemctl stop httpd
Tạo chứng chỉ SSL.
Mã:
$ sudo certbot certonly --standalone --agree-tos --no-eff-email --staple-ocsp --preferred-challenges http -m [emailprotected] -d redmine.example.com
Lệnh trên sẽ tải xuống chứng chỉ vào thư mục /etc/letsencrypt/live/redmine.example.com trên máy chủ của bạn.

Khởi động máy chủ Apache.
Mã:
$ sudo systemctl start httpd
Tạo chứng chỉ nhóm Diffie-Hellman.
Mã:
$ sudo openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048
Tạo thư mục webroot thử thách cho Let's Encrypt tự động gia hạn.
Mã:
$ sudo mkdir -p /var/lib/letsencrypt
Tạo Cron Job để gia hạn SSL. Nó sẽ chạy hàng ngày để kiểm tra chứng chỉ và gia hạn nếu cần. Để thực hiện việc đó, trước tiên, hãy tạo tệp /etc/cron.daily/certbot-renew và mở tệp đó để chỉnh sửa.
Mã:
$ sudo nano /etc/cron.daily/certbot-renew
Dán mã sau.
Mã:
#!/bin/shcertbot renew --cert-name redmine.example.com --webroot -w /var/lib/letsencrypt/ --post-hook "systemctl restart nginx"
Lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc.

Thay đổi quyền trên tệp tác vụ để làm cho tệp đó có thể thực thi được.
Mã:
$ sudo chmod +x /etc/cron.daily/certbot-renew

Bước 9 - Cài đặt và cấu hình Nginx làm Reverse-proxy​

Rocky Linux 8 đi kèm với bốn phiên bản Nginx khác nhau - 1.14, 1.16, 1.18 và 1.20.

Liệt kê tất cả các mô-đun Nginx có sẵn.
Mã:
$ dnf module list nginxKiểm tra hết hạn siêu dữ liệu lần cuối: 20:23:20 trước vào Thứ Hai, ngày 03 tháng 01 năm 2022 lúc 12:38:07 chiều UTC.Rocky Linux 8 - AppStreamTên Stream Profiles Summarynginx 1.14 [d] common [d] nginx webservernginx 1.16 common [d] nginx webservernginx 1.18 common [d] nginx webservernginx 1.20 common [d] nginx webserverGói bổ sung cho Enterprise Linux Modular 8 - x86_64Tên Stream Profiles Summarynginx mainline common nginx webservernginx 1.20 common [d] nginx webserverGợi ý: [d]efault, [e]nabled, [x]disabled, [i]nstalled
Đặt lại các phiên bản khác và bật phiên bản 1.20 của Nginx.
Mã:
$ sudo dnf module reset nginx$ sudo dnf module enable nginx:1.20
Cài đặt Nginx. Chúng tôi đang tạm thời vô hiệu hóa kho lưu trữ Epel vì chúng tôi muốn lấy Nginx từ Appstream.
Mã:
$ sudo dnf install nginx --disablerepo=epel-modular
Xác minh cài đặt.
Mã:
$ nginx -vphiên bản nginx: nginx/1.20.0
Để tránh bất kỳ xung đột nào với Nginx, chúng tôi cần thay đổi cổng mặc định mà Apache đang lắng nghe.

Thay đổi Cổng lắng nghe Apache​

Mở tệp /etc/httpd/conf/httpd.conf để chỉnh sửa.
Mã:
$ sudo nano /etc/httpd/conf/httpd.conf
Thay đổi cổng từ 80 thành 8080 như sau.
Mã:
Lắng nghe 8080
Lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc.

Khởi động lại Apache.
Mã:
$ sudo systemctl restart httpd

Cấu hình Nginx​

Tạo và mở tệp /etc/nginx/conf.d/redmine.conf để chỉnh sửa.
Mã:
$ sudo nano /etc/nginx/conf.d/redmine.conf
Dán mã sau vào đó.
Mã:
# Chuyển hướng tất cả các tệp không được mã hóa sang tệp được mã hóaserver { listen 80; server_name redmine.example.com; return 301 https://$host$request_uri;}server { listen 443 ssl http2; server_name redmine.example.com; ssl_certificate /etc/letsencrypt/live/redmine.example.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/redmine.example.com/privkey.pem; ssl_trusted_certificate /etc/letsencrypt/live/redmine.example.com/chain.pem; ssl_session_timeout 5 phút; ssl_session_cache shared:MozSSL:10 phút; ssl_session_tickets tắt; ssl_protocols TLSv1.2 TLSv1.3; ssl_prefer_server_ciphers bật; ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384; ssl_ecdh_curve X25519:prime256v1:secp384r1:secp521r1; ssl_stapling bật; ssl_stapling_verify bật; ssl_dhparam /etc/ssl/certs/dhparam.pem; trình giải quyết 8.8.8.8; nhật ký truy cập /var/log/nginx/redmine.example.com.access.log chính; nhật ký lỗi /var/log/nginx/redmine.example.com.error.log; vị trí / { proxy_pass http://localhost:3000; tắt proxy_redirect; tắt proxy_buffering; proxy_set_header Máy chủ $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; }}
Lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc sau khi hoàn tất.

Mở tệp /etc/nginx/nginx.conf để chỉnh sửa.
Mã:
$ sudo nano /etc/nginx/nginx.conf
Thêm dòng sau trước dòng include /etc/nginx/conf.d/*.conf;.
Mã:
server_names_hash_bucket_size 64;
Lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc.

Xác minh cú pháp tệp cấu hình Nginx.
Mã:
$ sudo nginx -tnginx: tệp cấu hình Cú pháp /etc/nginx/nginx.conf là oknginx: tệp cấu hình /etc/nginx/nginx.conf đã kiểm tra thành công
Khởi động dịch vụ Nginx để kích hoạt cấu hình mới.
Mã:
$ sudo systemctl start nginx
Ứng dụng Redmine của bạn phải có thể truy cập được tại https://redmine.example.com.

Kết luận​

Bài hướng dẫn này kết thúc, trong đó bạn đã học cách cài đặt Redmine Project Manager trên máy chủ chạy Rocky Linux 8. Bạn cũng đã học cách phục vụ ứng dụng Redmine qua Nginx bằng giao thức HTTPS. Nếu bạn có bất kỳ câu hỏi nào, hãy đăng chúng trong phần bình luận bên dưới.
 
Back
Bên trên