Hướng dẫn tích hợp Redmine và Subversion trên Ubuntu 12.04 LTS

Chắc hẳn chúng ta đã nghe nói đến Redmine và Subversion cũng như các tính năng tuyệt vời của các phần mềm này trong việc quản trị dự án phần mềm và quản lý phiên bản. Hôm nay tôi sẽ viết một bài hướng dẫn về việc tích hợp 2 phần mềm này với nhau (sử dụng Apache2 và Apache2 Passenger module).

Yêu cầu hệ thống:

  • Bản Ubuntu Server 12.04 Lts
  • Lamp Server

Mục tiêu: tích hợp Remine và Subversion. Redmine có khả năng tự tạo Subversion Repository và đồng bộ thông tin. Mỗi dự án trong Redmine tương ứng với một Repository của Subversion.

Hướng dẫn:

Để đảm bảo những gì chúng ta sắp cài đặt là bản được cập nhật mới nhất, chúng ta hãy cập nhật hệ thống Ubuntu của chúng ta:

sudo apt-get update

Redmine có thể hoạt động tốt với MySQL, PostgreSQL, SQLite3. Trong phạm vi bài viết này, tôi sử dụng MySQL.

Cách nhanh nhất để có MySQL và Apache2 cùng các module phổ biến của Apache2 là cài Lamp Server. Ta có thể thực thi lệnh sau để cài Lamp Server:

sudo apt-get install lamp-server^

 Cài đặt các phần mềm cần thiết cho Redmine: 

sudo apt-get install ruby1.9.3 libmysqlclient-dev

Nếu bạn muốn sử dung RMagick để xuất biểu đồ Gantt thành PNG, bạn cần cài thêm các gói sau

sudo apt-get install libmagickcore-dev libmagickwand-dev

Đối với các phiên bản Redmine từ 1.4.0 trở lên, bạn có thể sử dụng Bundler để cài đặt các Ruby Gem cần thiết cho Redmine.

sudo gem install bundler

Đến đây thì cơ bản chúng ta đã cài đủ các gói để chạy Redmine. Bước tiếp theo là download Redmine về. Tại thời điểm viết bài này, Redmine mới nhất có số phiên bản là 2.2.1. Bạn có thể download bản mới nhất tại RubyForge

Chuyển đến thư mục /ur/share (chúng ta sẽ lưu Redmine tại đây)

cd /usr/share

Tải Redmine về thư mục này

wget http://rubyforge.org/frs/download.php/76677/redmine-2.2.1.tar.gz

Giải nén

sudo tar xvfz redmine-2.2.1.tar.gz

Xóa bộ nén vừa tải về (cho sạch máy ^_^)

sudo rm -rf redmine-2.2.1.tar.gz

Đổi tên thư mục

sudo mv redmine-2.2.1 redmine

Để tăng cường mức độ bảo mật, chúng ta có lẽ sẽ điều chỉnh mức owner của bộ Redmine

chown -R root:root /usr/share/redmine

Do chúng ta sẽ truy xuất Redmine thông qua Apache2 (module passenger), chúng ta cần đổi owner của một tập tin về www-data (user chạy apache2)

sudo chown www-data /usr/share/redmine/config/environment.rb

Bước tiếp theo, tạo symbolic link từ website đến redmine để sau này ta có thể tạo một vhost

sudo ln -s /usr/share/redmine/public /var/www/redmine

Giờ, ta hãy tạo một cơ sở dữ liệu MySQL cho Redmine như sau

sudo mysql -u root -p

Dấu nhắc sẽ hỏi bạn mật khẩu. Hãy điền mật khẩu MySQL của bạn và nhấn Enter để hiện ra dấu nhắc

mysql>

Lần lượt gõ các câu lệnh MySQL dưới đây (nhớ đổi my_password thành mật khẩu mà bạn muốn sử dụng):

CREATE DATABASE redmine character SET utf8;
CREATE user 'redmine'@'localhost' IDENTIFIED BY 'my_password';
GRANT ALL privileges ON redmine.* TO 'redmine'@'localhost';

Đến đây thì cơ sở dữ liệu redmine đã được tạo với user là redmine@localhost. Gõ lệnh sau để thoát khỏi MySQL

exit;

Giờ ta sẽ cấu hình cho Redmine để có thể kết nối đến cơ sở dữ liệu vừa tạo như sau:

  1. Tạo mới tập tin database.yml từ tập tin mẫu
    sudo cp redmine/config/database.yml.example redmine/config/database.yml
  2. Sửa nội dung tập tin database.yml vừa tạo
    sudo nano redmine/config/database.yml
    production: adapter: mysql2
    database: redmine
    host: localhost username: redmine password: my_password encoding: utf8

Do chúng ta chỉ sử dụng CSDL MySQL nên cần phải cho Bundler biết việc này bằng cách

sudo bundle install --without development test postgresql sqlite

Nếu bạn KHÔNG sử dụng RMagick thì dùng lệnh này:

sudo bundle install --without development test postgresql sqlite rmagick

Tiếp tục cấu hình Redmine:

sudo rake generate_secret_token
sudo RAILS_ENV=production rake db:migrate
sudo RAILS_ENV=production rake redmine:load_default_data

Sau khi bạn nhấn Enter đối với lệnh cuối cùng, bạn sẽ được lựa chọn ngôn ngữ cho Redmine. Gõ vi và nhấn Enter nếu muốn chọn tiếng Việt

Bước tiếp theo là cấu hình phân quyền cho thư mục

sudo mkdir public/plugin_assets
sudo chown -R www-data:www-data files log tmp public/plugin_assets
sudo chmod -R 755 files log tmp public/plugin_assets

Chạy thử Redmine, gõ lệnh

sudo ruby script/rails server webrick -e production

Giờ hãy thử truy cập http://yourip:3000, nếu Redmine chạy thì có nghĩa là bạn cấu hình đúng, và chúng ta có thể đi tiếp các bước tiếp theo. Nếu không, cần phải rà soát lại để tìm lỗi trước khi đi tiếp

Giả sử chúng ta sẽ truy cập redmine bằng URL http://redmine.yourdomain.com, việc đầu tiên cần làm là tạo một vhost như sau

nano /etc/apache2/sites-available/redmine.yourdomain.com
<VirtualHost *:80>
ServerName redmine.yourdomain.com
DocumentRoot /var/www/redmine
ServerAdmin user@yourdomain.com
LogLevel warn
ErrorLog /var/log/apache2/redmine_error
CustomLog /var/log/apache2/redmine_access combined
<Directory /var/www/redmine>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
RailsBaseURI /
PassengerResolveSymlinksInDocumentRoot on
</Directory>
</VirtualHost>

 

[Còn tiếp...]