Cách cài đặt Redmine với Apache và Let's Encrypt SSL trên Debian 12

theanh

Administrator
Nhân viên
Redmine là một công cụ quản lý dự án và theo dõi vấn đề miễn phí và mã nguồn mở. Công cụ này dựa trên web và chủ yếu được viết bằng Ruby on Rails. Công cụ này đa nền tảng và hỗ trợ nhiều cơ sở dữ liệu và nhiều ngôn ngữ.

Redmine rất linh hoạt và có thể được sử dụng cho nhiều loại tổ chức và dự án khác nhau, từ các tổ chức nhỏ, vừa hoặc lớn. Công cụ này cho phép bạn tạo và quản lý nhiều dự án và mỗi dự án đều có Wiki, Diễn đàn, theo dõi vấn đề, v.v. riêng. Ngoài ra, công cụ này cho phép bạn tạo các vai trò tùy chỉnh dựa trên nhu cầu của tổ chức và nhiều hơn nữa.

Redmine được phát hành theo giấy phép GNU GPL v2 và có thể được cài đặt trên bất kỳ hệ điều hành nào như Linux, Windows hoặc macOS. Công cụ này hỗ trợ nhiều loại cơ sở dữ liệu khác nhau, bao gồm PostgreSQL, MySQL và SQLite (mặc định).

Hãy làm theo hướng dẫn từng bước này để cài đặt công cụ quản lý dự án và theo dõi vấn đề Redmine trên Debian 12 Server. Bằng cách làm theo hướng dẫn này, bạn sẽ cài đặt Redmine với MariaDB làm máy chủ cơ sở dữ liệu và Apache2 làm máy chủ web.

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

Để bắt đầu quy trình, hãy đảm bảo bạn đã bảo mật:
  • Máy chủ Debian 12.
  • Người dùng không phải root có quyền quản trị viên.
  • Tên miền trỏ đến địa chỉ IP của máy chủ.

Cài đặt Dependencies​

Redmine là một chương trình quản lý dự án dựa trên web được viết bằng Ruby on Rails. Để cài đặt Redmine, trước tiên bạn phải cài đặt các gói sau:
  • Máy chủ web Apache: máy chủ này sẽ được sử dụng làm máy chủ web cho Redmine.
  • Máy chủ MariaDB: Redmine có thể chạy với các cơ sở dữ liệu như MySQL/MariaDB và PostgreSQL. Hướng dẫn này sẽ sử dụng máy chủ MariaDB.
  • Ruby: tại thời điểm viết bài này, Redmine phiên bản ổn định 5.0.6 có thể được cài đặt với Ruby 3.1.
  • Các gói bổ sung: Certbot để tạo chứng chỉ SSL/TLS, build-essential để biên dịch mã Ruby và Subversion làm hệ thống kiểm soát phiên bản.
Trước khi cài đặt các gói phụ thuộc, hãy cập nhật và làm mới kho lưu trữ Debian của bạn bằng lệnh sau.
Mã:
sudo apt update

data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22233%22%3E%3C/svg%3E


Bây giờ hãy chạy lệnh apt install bên dưới để cài đặt các phụ thuộc cho Redmine, bao gồm Apache2, MariaDB, Ruby, ImageMagick, Certbot, Subversion.
Mã:
sudo apt install apache2 libapache2-mod-passenger mariadb-server certbot python3-certbot-apache ruby ruby-dev build-essential default-mysql-server default-libmysqlclient-dev libxml2-dev libxslt1-dev zlib1g-dev imagemagick libmagickwand-dev subversion
Nhập y để tiếp tục cài đặt.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22169%22%3E%3C/svg%3E


Sau khi các phụ thuộc được cài đặt, hãy xác minh từng phụ thuộc bằng cách thực hiện lệnh sau.

Xác minh dịch vụ apache2 để đảm bảo rằng dịch vụ đang chạy và được bật.
Mã:
sudo systemctl is-enabled apache2
sudo systemctl status apache2
Đầu ra được hiển thị bên dưới xác nhận rằng apache2 đã được bật và đang chạy.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22218%22%3E%3C/svg%3E


Bây giờ hãy xác minh dịch vụ mariadb bằng cách thực hiện lệnh sau.
Mã:
sudo systemctl is-enabled mariadb
sudo systemctl status mariadb
Đầu ra sẽ tương tự như dịch vụ apache2, xác nhận rằng dịch vụ đang chạy và đã bật.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22235%22%3E%3C/svg%3E


Tiếp theo, hãy xác minh phiên bản Ruby trên hệ thống của bạn bằng lệnh sau. Bạn sẽ thấy Ruby 3.1.2 được cài đặt trên máy Debian của bạn.
Mã:
ruby --version

data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22612%22%20height=%22112%22%3E%3C/svg%3E


Cuối cùng, hãy xác minh Subversion bằng lệnh bên dưới. Thao tác này sẽ đảm bảo Subversion được cài đặt.
Mã:
svn --version
Đầu ra hiển thị sẽ tương tự như sau:


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22649%22%20height=%22195%22%3E%3C/svg%3E

Cấu hình máy chủ MariaDB​

Sau khi cài đặt các phụ thuộc, bạn sẽ cấu hình cài đặt máy chủ MariaDB của mình thông qua tiện ích mariadb-secure-installation và tạo một cơ sở dữ liệu và người dùng mới mà Redmine sẽ sử dụng.

Thực hiện lệnh sau để bảo mật cài đặt Máy chủ MariaDB của bạn.
Mã:
sudo mariadb-secure-installation
Trong quá trình này, hãy nhập Y để xác nhận và áp dụng các thay đổi hoặc n để nhập No để từ chối. Dưới đây là một số cấu hình Máy chủ MariaDB mà bạn sẽ được yêu cầu:
  • Chuyển sang xác thực unix_socket?. Nhập n và nhấn ENTER. Người dùng root MariaDB mặc định đã được bảo vệ. Tùy chọn, bạn cũng có thể bật nó bằng cách nhập y cho yes.
  • Thay đổi mật khẩu root?. Nhập y để xác nhận và thiết lập mật khẩu root MariaDB mới của bạn.
  • Xóa người dùng ẩn danh?. Nhập y để xác nhận.
  • Không cho phép root đăng nhập từ xa? Nhập y để xác nhận. Chỉ cho phép kết nối cục bộ nếu bạn đang sử dụng người dùng root MariaDB.
  • Xóa cơ sở dữ liệu thử nghiệm và quyền truy cập vào cơ sở dữ liệu đó?. Nhập y để xác nhận và xóa 'test' cơ sở dữ liệu mặc định.
  • Cuối cùng, nhập y một lần nữa để tải lại tất cả các đặc quyền bảng trên máy chủ MariaDB của bạn và áp dụng các thay đổi mới.
Sau khi định cấu hình Máy chủ mariaDB, hãy đăng nhập vào Máy chủ MariaDB thông qua lệnh máy khách mariadb bên dưới. Nhập mật khẩu gốc MariaDB của bạn khi được nhắc.
Mã:
sudo mariadb -u root -p
Bây giờ hãy thực hiện các truy vấn sau để tạo một cơ sở dữ liệu mới redmine, một người dùng mới redmine, với mật khẩu secretPassword. Redmine sẽ sử dụng các chi tiết cơ sở dữ liệu sau đây và hãy nhớ thay đổi mật khẩu.
Mã:
CREATE DATABASE redmine CHARACTER SET utf8mb4;
CREATE USER 'redmine'@'localhost' IDENTIFIED BY 'secretPassword';
GRANT ALL PRIVILEGES ON redmine.* TO 'redmine'@'localhost';
FLUSH PRIVILEGES;

data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22234%22%3E%3C/svg%3E


Tiếp theo, chạy truy vấn sau để xác minh quyền của người dùng redmine.
Mã:
SHOW GRANTS FOR redmine@localhost;
Kết quả đầu ra sau đây sẽ được hiển thị, xác nhận rằng người dùng redmine có thể truy cập cơ sở dữ liệu redmine.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22245%22%3E%3C/svg%3E


quit để thoát khỏi Máy chủ MariaDB.

Tải xuống và cài đặt Redmine​

Trong phần sau, bạn sẽ tải xuống và cài đặt Redmine trên máy Debian của mình. Bạn sẽ tải xuống mã nguồn Redmine qua subversion, cấu hình Redmine với máy chủ cơ sở dữ liệu MariaDB, sau đó cài đặt các phụ thuộc Ruby qua bundler.

Trước khi bắt đầu, hãy cài đặt bundler vào hệ thống của bạn bằng cách thực hiện lệnh sau.
Mã:
gem install bundler

data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22551%22%20height=%22188%22%3E%3C/svg%3E


Di chuyển đến thư mục /var/www và tải xuống mã nguồn Redmine qua lệnh svn bên dưới. Trong ví dụ này, bạn sẽ tải xuống Redmine ổn định 5.0 vào thư mục redmine-5.0, vì vậy thư mục cài đặt Redmine của bạn phải là /var/www/redmine-5.0.
Mã:
cd /var/www
svn co https://svn.redmine.org/redmine/branches/5.0-stable redmine-5.0

data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22239%22%3E%3C/svg%3E


Đi đến thư mục /var/www/redmine-5.0 và sao chép cấu hình cơ sở dữ liệu mặc định vào config/database.yml.
Mã:
cd /var/www/redmine-5.0
cp config/database.yml.example config/database.yml
Mở cấu hình cơ sở dữ liệu Redmine config/database.yml bằng lệnh nano editor sau.
Mã:
nano config/database.yml
Trong phần production, hãy kiểm tra cấu hình cơ sở dữ liệu bằng lệnh sau. Hãy chắc chắn thay đổi tên cơ sở dữ liệu, người dùng và mật khẩu.
Mã:
production:
 adapter: mysql2
 database: redmine
 host: localhost
 username: redmine
 password: "secretPassword" 
 # Use "utf8" instead of "utfmb4" for MySQL prior to 5.7.7
 encoding: utf8mb4
Lưu và đóng tệp khi hoàn tất.

Tiếp theo, chạy lệnh bundle sau để vô hiệu hóa phát triển và thử nghiệm, sau đó cài đặt các phụ thuộc Ruby cho Redmine.
Mã:
bundle config set --local without 'development test' 
bundle install
Trong quá trình này, đầu ra được hiển thị sẽ tương tự như sau:


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22560%22%3E%3C/svg%3E


Bây giờ hãy tạo mã thông báo bí mật và di chuyển cơ sở dữ liệu bằng cách thực hiện lệnh sau.
Mã:
bundle exec rake generate_secret_token
RAILS_ENV=production bundle exec rake db:migrate
Trong quá trình di chuyển cơ sở dữ liệu, đầu ra bên dưới sẽ được hiển thị.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22432%22%3E%3C/svg%3E


Cuối cùng, hãy chạy lệnh sau để tải dữ liệu mặc định vào cài đặt Redmine của bạn.
Mã:
RAILS_ENV=production REDMINE_LANG=en bundle exec rake redmine:load_default_data
Nếu thành công, bạn sẽ nhận được kết quả đầu ra là "Dữ liệu cấu hình mặc định đã được tải".


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%2279%22%3E%3C/svg%3E

Cấu hình máy chủ ảo Apache2​

Sau khi bạn đã tải xuống và cài đặt Redmine, bước tiếp theo là tạo máy chủ ảo Apache2 mới sẽ được sử dụng để chạy Redmine và tạo chứng chỉ SSL/TLS thông qua Certbot và Letsencrypt. Vì vậy, trước khi tiếp tục, hãy đảm bảo rằng bạn có một tên miền được trỏ đến địa chỉ IP của máy chủ.

Tạo cấu hình máy chủ ảo mới /etc/apache2/sites-available/redmine.conf bằng lệnh nano editor sau.
Mã:
sudo nano /etc/apache2/sites-available/redmine.conf
Chèn cấu hình sau và đảm bảo thay đổi tên miền trong ServerName dòng.
Mã:
 ServerName redmine.howtoforge.local
 RailsEnv production
 DocumentRoot /var/www/redmine-5.0/public

 ErrorLog ${APACHE_LOG_DIR}/redmine.howtoforge.local.error.log
 CustomLog ${APACHE_LOG_DIR}/redmine.howtoforge.local.access.log combined

 
 Allow from all
 Require all granted
Lưu và đóng tệp khi bạn hoàn tất.

Tiếp theo, chạy lệnh sau để kích hoạt mô-đun viết lại trên máy chủ web Apache2, sau đó bật tệp máy chủ ảo redmine.conf.
Mã:
sudo a2enmod rewrite
sudo a2ensite redmine.conf
Sau đó, xác minh cú pháp Apache2 của bạn bằng cách thực hiện lệnh sau. Nếu bạn có cú pháp đúng, đầu ra "Cú pháp OK" sẽ được hiển thị.
Mã:
sudo apachectl configtest
Tiếp theo, chạy lệnh systemctl sau để khởi động lại dịch vụ apache2 và áp dụng các thay đổi.
Mã:
sudo systemctl restart apache2

data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22700%22%20height=%22433%22%3E%3C/svg%3E


Cuối cùng, tạo chứng chỉ SSL/TLS mới cho cài đặt Redmine của bạn bằng lệnh certbot sau. Hãy đảm bảo thay đổi tên miền và địa chỉ email bằng thông tin của bạn.
Mã:
sudo certbot --apache --agree-tos --no-eff-email --redirect --hsts --staple-ocsp --email [emailprotected] -d redmine.howtoforge.local
Sau khi quá trình hoàn tất, chứng chỉ SSL/TLS của bạn sẽ được tạo vào thư mục /etc/letsencrypt/live/redmine.howtoforge.local/. Ngoài ra, tệp máy chủ ảo redmine.conf của bạn sẽ tự động được định cấu hình bằng HTTPS thông qua plugin Certbot Apache.

Truy cập Cài đặt Redmine​

Khởi chạy trình duyệt web của bạn và truy cập tên miền Redmine của bạn, chẳng hạn như https://redmine.howtoforge.local. Nếu cài đặt thành công, trang chủ Redmine sau đây sẽ được hiển thị.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22149%22%3E%3C/svg%3E


Bây giờ hãy nhấp vào liên kết Đăng nhập ở góc trên bên phải để truy cập trang đăng nhập Redmine. Sau đó, nhập tên người dùng mặc định là admin với mật khẩu là admin, rồi nhấp vào Đăng nhập.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22288%22%3E%3C/svg%3E


Đầu tiên, bạn sẽ được yêu cầu thay đổi mật khẩu quản trị viên mặc định. Nhập mật khẩu cũ là admin, sau đó nhập mật khẩu mới và lặp lại, sau đó nhấp vào Áp dụng để xác nhận thay đổi.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22294%22%3E%3C/svg%3E


Bây giờ bạn sẽ được chuyển hướng đến hồ sơ quản trị của mình và bạn sẽ nhận được thông báo "Mật khẩu đã được cập nhật thành công". Từ đây, bạn cũng có thể thay đổi thông tin chi tiết của người dùng quản trị, sau đó nhấp vào Lưu để xác nhận.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22585%22%3E%3C/svg%3E


Cuối cùng, nhấp vào Quản trị > Thông tin để biết thông tin chi tiết về cài đặt Redmine của bạn. Trang sau sẽ hiển thị và từ đó xác nhận rằng Redmine 5.0.6 ổn định đã được cài đặt với Ruby 3.1.2, Rails 6.1, trình điều khiển cơ sở dữ liệu Mysql2 và Subversion 1.14.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22490%22%3E%3C/svg%3E

Kết luận​

Tóm lại, bạn đã cài đặt thành công công cụ quản lý dự án và theo dõi sự cố Redmine trên máy chủ Debian 12 theo từng bước. Bạn đã cài đặt Redmine với máy chủ web Apache2 và máy chủ cơ sở dữ liệu MariaDB và bảo mật cài đặt Redmine của bạn bằng chứng chỉ SSL/TLS từ Letsencrypt. Đối với ở đây, bây giờ bạn có thể thêm máy chủ SMTP vào Redmine và cài đặt thêm tiện ích mở rộng và chủ đề cho ứng dụng web quản lý dự án Redmine của bạn.
 
Back
Bên trên