Đăng bởi Để lại phản hồi

Cài Redmine trên Ubuntu + Nginx + MySQL

í dụ dưới đây dùng:

  • Ubuntu 24.04
  • MySQL 8
  • Ruby 3.2
  • Nginx
  • Passenger
  • Redmine 6

Tài liệu chính thức: Redmine Installation Guide


1. Cập nhật hệ thống

sudo apt update && sudo apt upgrade -y

2. Cài package cần thiết

sudo apt install -y \
build-essential \
zlib1g-dev \
libssl-dev \
libreadline-dev \
libyaml-dev \
libcurl4-openssl-dev \
libffi-dev \
libgdbm-dev \
libncurses5-dev \
libmariadb-dev \
imagemagick \
apache2-utils \
git \
curl \
gnupg2

3. Cài Ruby + Bundler

Ubuntu 24 đã có Ruby 3.2:

sudo apt install -y ruby-full

Kiểm tra:

ruby -v

Cài bundler:

sudo gem install bundler

Kiểm tra:

bundle -v

4. Cài MySQL

Cài:

sudo apt install -y mysql-server

Secure:

sudo mysql_secure_installation

5. Tạo database cho Redmine

Đăng nhập MySQL:

sudo mysql

Tạo DB:

CREATE DATABASE redmine CHARACTER SET utf8mb4;

Tạo user:

CREATE USER 'redmine'@'localhost' IDENTIFIED BY 'StrongPassword123!';

Cấp quyền:

GRANT ALL PRIVILEGES ON redmine.* TO 'redmine'@'localhost';
FLUSH PRIVILEGES;
EXIT;

6. Download Redmine

Trang chính thức:
Redmine Downloads

Ví dụ:

cd /var/www
sudo wget https://www.redmine.org/releases/redmine-6.0.3.tar.gz
sudo tar -xzf redmine-6.0.3.tar.gz
sudo mv redmine-6.0.3 redmine

7. Tạo user chạy Redmine

sudo adduser --system --group --home /var/www/redmine redmine

Set quyền:

sudo chown -R redmine:redmine /var/www/redmine

8. Cấu hình database.yml

Copy file mẫu:

cd /var/www/redmine/config
sudo cp database.yml.example database.yml

Edit:

sudo nano database.yml

Sửa phần production:

production:
adapter: mysql2
database: redmine
host: localhost
username: redmine
password: "StrongPassword123!"
encoding: utf8mb4

9. Install gem

Đăng nhập user redmine:

sudo su - redmine

Vào thư mục:

cd /var/www/redmine

Config bundle local:

bundle config set --local path 'vendor/bundle'
bundle config set --local without 'development test'

Install:

bundle install

10. Generate secret + migrate DB

bundle exec rake generate_secret_token
RAILS_ENV=production bundle exec rake db:migrate

Load default data:

RAILS_ENV=production bundle exec rake redmine:load_default_data

Chọn language:

en

11. Cài Nginx + Passenger

Cài:

sudo apt install -y nginx libnginx-mod-http-passenger

Neu loi cai theo cach nay

1. Xoá config Passenger cũ

sudo rm -f /etc/apt/sources.list.d/passenger.list
sudo rm -f /usr/share/keyrings/passenger.gpg

2. Cài package cần thiết

sudo apt update

sudo apt install -y \
curl \
gnupg2 \
ca-certificates \
apt-transport-https

3. Add GPG key mới

curl -fsSL https://oss-binaries.phusionpassenger.com/auto-software-signing-gpg-key-2025.txt \
| sudo gpg --dearmor -o /usr/share/keyrings/passenger.gpg

4. Add repo Ubuntu 24 (noble)

echo "deb [signed-by=/usr/share/keyrings/passenger.gpg] https://oss-binaries.phusionpassenger.com/apt/passenger noble main" \
| sudo tee /etc/apt/sources.list.d/passenger.list

5. Update package list

sudo apt update

6. Kiểm tra package Passenger

apt search passenger

Bạn phải thấy:

libnginx-mod-http-passenger

7. Cài Passenger

sudo apt install -y libnginx-mod-http-passenger

8. Restart nginx

sudo systemctl restart nginx

Kiểm tra passenger:

sudo nginx -V 2>&1 | grep passenger

12. Cấu hình Nginx

Tạo config:

sudo nano /etc/nginx/sites-available/redmine

Nội dung:

server {
listen 80;
server_name YOUR_DOMAIN_OR_IP;

root /var/www/redmine/public;

passenger_enabled on;
passenger_ruby /usr/bin/ruby;

client_max_body_size 20m;

location / {
try_files $uri/index.html $uri @app;
}

location @app {
passenger_enabled on;
}
}

Enable site:

sudo ln -s /etc/nginx/sites-available/redmine /etc/nginx/sites-enabled/

Disable default:

sudo rm /etc/nginx/sites-enabled/default

Test:

sudo nginx -t

Restart:

sudo systemctl restart nginx

13. Mở firewall

sudo ufw allow 80/tcp

Nếu HTTPS:

sudo ufw allow 443/tcp

14. Truy cập

Mở:

http://YOUR_SERVER_IP

Login mặc định:

admin
admin

15. Cài HTTPS bằng Let’s Encrypt

Cài certbot:

sudo apt install -y certbot python3-certbot-nginx

Chạy:

sudo certbot --nginx

16. Service cần kiểm tra

systemctl status nginx
systemctl status mysql

17. Log khi lỗi

Redmine:

tail -f /var/www/redmine/log/production.log

Nginx:

sudo tail -f /var/log/nginx/error.log

18. Backup MySQL

mysqldump -u redmine -p redmine > redmine.sql
Để lại một bình luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *