Redmine 是一套利用Ruby開發的issue tracking system
Step 1.準備工作
安裝Apache及MySQL
apt-get apache2-mpm-worker mysql-server
安裝必要套件
#libmagickwand 為ImageMagick套件 #libmysqlclient 為連結MySQL的套件 #libapache2-mod-fastcgi 為FastCGI apt-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
#安裝完後要重開SHELL視窗 curl -L https://get.rvm.io | bash -s stable --ruby
安裝Ruby 1.9
#安裝 rvm install 1.9.3 #切換global版本 rvm 1.9.3 --default #查詢版號 ruby -v
Step 3.安裝Redmine 2.4
到官網下載原始檔並解壓縮
wget http://www.redmine.org/releases/redmine-2.4.2.tar.gz tar -zxvf redmine-2.4.2.tar.gz cd redmine-2.4.2
(注意:接下來的動作皆在redmine專案根目錄)
建立資料庫(請自行進入MySQL command line)
#建立資料庫 CREATE DATABASE redmine CHARACTER SET utf8; #建立使用者 CREATE USER 'redmine'@'localhost' IDENTIFIED BY 'redmine'; #修改權限 GRANT ALL PRIVILEGES ON redmine.* TO 'redmine'@'localhost';
複製redmine資料庫設定檔
cp config/database.yml.example config/database.yml
修改config/database.yml(注意 ruby1.9 adapter要用mysql2)
production: adapter: mysql2 database: redmine host: localhost username: redmine password: "redmine" encoding: utf8
安裝bundler,並透過bundler安裝相關套件
gem install bundler #可以透過without參數排除不想裝的套件 bundle install --without development test
在這邊如果安裝失敗,會有提示訊息,可以google看是否有哪些套件沒裝(例如沒裝libmysqlclient-dev,mysql2會安裝失敗)
初始化
#產生token rake generate_secret_token #產生資料表 RAILS_ENV=production rake db:migrate #產生初始資料 RAILS_ENV=production rake redmine:load_default_data
建立上傳檔案及外掛套件資料夾權限
mkdir -p tmp tmp/pdf 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
複製.htaccess 及 dispatch 建立網站進入點
cp public/htaccess.fcgi.example public/.htaccess cp public/dispatch.fcgi.example public/dispatch.fcgi
設定寄信的信箱(透過gmail寄信)
cp config/configuration.yml.example config/configuration.yml
config/configuration.yml
email_delivery: delivery_method: :smtp smtp_settings: address: smtp.gmail.com port: 25 domain: smtp.gmail.com authentication: :login user_name: "xxxx@gmail.com" password: "xxx"
Step 4.安裝 Passenger
注意:這邊不要安裝系統預設的libapache2-mod-passenger,因為會安裝到相容於預設1.8的版本而且會順便安裝ruby1.8...
透過gem安裝
gem install passenger --no-rdoc --no-ri #安裝apache2 passenger套件 passenger-install-apache2-module
手動新增設定檔
在 /etc/apache2/mods-available 新增兩個檔案:passenger.conf 與 passenger.load
passenger.conf
#路徑在跑完passenger-install-apache2-module會有系統提示 <IfModule mod_passenger.c> PassengerRoot /usr/local/rvm/gems/ruby-1.9.3-p484/gems/passenger-4.0.29 PassengerDefaultRuby /usr/local/rvm/wrappers/ruby-1.9.3-p484/ruby </IfModule>
passenger.load
LoadModule passenger_module /usr/local/rvm/gems/ruby-1.9.3-p484/gems/passenger-4.0.29/buildout/apache2/mod_passenger.so
手動啟動module
cd /etc/apache2/mods-enabled ln -s /etc/apache2/mods-available/passenger.conf ln -s /etc/apache2/mods-available/passenger.load
Step 5.Apache設定
Virtual設定
<VirtualHost *:80> DocumentRoot /var/www/redmine/public ServerName redmine.johnsonlu.org CustomLog /var/log/apache2/redmine-access.log combined ErrorLog /var/log/apache2/redmine_error RailsBaseURI /var/www/redmine <Directory "/var/www/redmine/public"> Options Indexes ExecCGI FollowSymLinks Order allow,deny Allow from all AllowOverride all </Directory> </VirtualHost>
重啟apache
service apache2 restart
小提醒:如果redmine一直吐500並顯示Application Error,可能是同時裝到1.8 1.9造成衝突,只要把1.8系列套件全砍了就好了