Redmine 是一套利用Ruby開發的issue tracking system

Step 1.準備工作
安裝Apache及MySQL

1apt-get apache2-mpm-worker mysql-server

安裝必要套件

1#libmagickwand 為ImageMagick套件
2#libmysqlclient 為連結MySQL的套件
3#libapache2-mod-fastcgi 為FastCGI
4apt-get install libmagickwand-dev libmysqlclient-dev libapache2-mod-fastcgi

Step 2.安裝Ruby 1.9
Redmine在Ruby 1.8會遇到一些問題,因此需要將Ruby版本升成1.9
因為系統預設都是1.8,所以要透過RVM來切換版本
RVM(Ruby Version Manager)是一套可以同時安裝不同版本Ruby的工具

安裝RVM

1#安裝完後要重開SHELL視窗
2curl -L https://get.rvm.io | bash -s stable --ruby

安裝Ruby 1.9

1#安裝
2rvm install 1.9.3
3#切換global版本
4rvm 1.9.3 --default
5#查詢版號
6ruby -v

Step 3.安裝Redmine 2.4
到官網下載原始檔並解壓縮

2tar -zxvf redmine-2.4.2.tar.gz
3cd redmine-2.4.2

(注意:接下來的動作皆在redmine專案根目錄)

建立資料庫(請自行進入MySQL command line)

1#建立資料庫
2CREATE DATABASE redmine CHARACTER SET utf8;
3#建立使用者
4CREATE USER 'redmine'@'localhost' IDENTIFIED BY 'redmine';
5#修改權限
6GRANT ALL PRIVILEGES ON redmine.* TO 'redmine'@'localhost';

複製redmine資料庫設定檔

1cp config/database.yml.example config/database.yml

修改config/database.yml(注意 ruby1.9 adapter要用mysql2)

1production:
2  adapter: mysql2
3  database: redmine
4  host: localhost
5  username: redmine
6  password: "redmine"
7  encoding: utf8

安裝bundler,並透過bundler安裝相關套件

1gem install bundler
2#可以透過without參數排除不想裝的套件
3bundle install --without development test

在這邊如果安裝失敗,會有提示訊息,可以google看是否有哪些套件沒裝(例如沒裝libmysqlclient-dev,mysql2會安裝失敗)

初始化

1#產生token
2rake generate_secret_token
3 
4#產生資料表
5RAILS_ENV=production rake db:migrate
6 
7#產生初始資料
8RAILS_ENV=production rake redmine:load_default_data

建立上傳檔案及外掛套件資料夾權限

1mkdir -p tmp tmp/pdf public/plugin_assets
2sudo chown -R www-data:www-data files log tmp public/plugin_assets
3sudo chmod -R 755 files log tmp public/plugin_assets

複製.htaccess 及 dispatch 建立網站進入點

1cp public/htaccess.fcgi.example public/.htaccess
2cp public/dispatch.fcgi.example public/dispatch.fcgi

設定寄信的信箱(透過gmail寄信)

1cp config/configuration.yml.example config/configuration.yml

config/configuration.yml

1email_delivery:
2  delivery_method: :smtp
3  smtp_settings:
4    address: smtp.gmail.com
5    port: 25
6    domain: smtp.gmail.com
7    authentication: :login
8    user_name: "xxxx@gmail.com"
9    password: "xxx"

Step 4.安裝 Passenger
注意:這邊不要安裝系統預設的libapache2-mod-passenger,因為會安裝到相容於預設1.8的版本而且會順便安裝ruby1.8...

透過gem安裝

1gem install passenger --no-rdoc --no-ri
2#安裝apache2 passenger套件
3passenger-install-apache2-module

手動新增設定檔
在 /etc/apache2/mods-available 新增兩個檔案:passenger.conf 與 passenger.load

passenger.conf

1#路徑在跑完passenger-install-apache2-module會有系統提示
2<IfModule mod_passenger.c>
3    PassengerRoot /usr/local/rvm/gems/ruby-1.9.3-p484/gems/passenger-4.0.29
4    PassengerDefaultRuby /usr/local/rvm/wrappers/ruby-1.9.3-p484/ruby
5</IfModule>

passenger.load

1LoadModule passenger_module /usr/local/rvm/gems/ruby-1.9.3-p484/gems/passenger-4.0.29/buildout/apache2/mod_passenger.so

手動啟動module

1cd /etc/apache2/mods-enabled
2ln -s /etc/apache2/mods-available/passenger.conf
3ln -s /etc/apache2/mods-available/passenger.load

Step 5.Apache設定
Virtual設定

1<VirtualHost *:80>
2    DocumentRoot /var/www/redmine/public
3    ServerName redmine.johnsonlu.org
4    CustomLog /var/log/apache2/redmine-access.log combined
5    ErrorLog /var/log/apache2/redmine_error
6 
7    RailsBaseURI /var/www/redmine
8    <Directory "/var/www/redmine/public">
9        Options Indexes ExecCGI FollowSymLinks
10        Order allow,deny
11        Allow from all
12        AllowOverride all
13    </Directory>
14</VirtualHost>

重啟apache

1service apache2 restart

小提醒:如果redmine一直吐500並顯示Application Error,可能是同時裝到1.8 1.9造成衝突,只要把1.8系列套件全砍了就好了

Categories: Linux