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:
- 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
- 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...]
Hướng dẫn tích hợp Redmine và Subversion trên Ubuntu 12.04 LTS
Redmine Subversion Tích hợp Ubuntu Ubuntu 12.04 LTS