Redmine+Apache+SVN+Postfix完整配置指南

Redmine+Apache+SVN+Postfix完整配置指南


Edition Author State Date Description
1.0 iifksp completed 2010/06/08 基於redmine-0.9.4, Ubuntu-server-10.04-i386, subversion-1.6.3
1.0.1 iifksp completed 2010/07/19 更新gem install安裝正常,passenger版本更新爲2.2.15,修正一處添加redmine站點的不詳描述
1.0.2 iifksp completed 2010/08/01 redmine官方更新到版本1.0.0 (數據庫表數爲48),更新wget地址

序言

安裝配置時若是遇到問題,能夠到 我博客的對應文章 給我留言,我會盡力回覆你的問題。php

版本0.8.x能夠參考我寫的在ubuntu上簡單配置redminehtml

版本0.9.x能夠參考我寫的redmine-0.9.x配置過程mysql

或者參看個人關於redmine的文章列表linux

安裝ubuntu-10.04-server

這裏配置的是Ubuntu server最新的10.04。關於系統安裝就很少說什麼了,塞進光盤而後一路next~web

系統初始配置信息。
IP:192.168.242.130
主機名:redmine
預裝選擇:LAMP server,Mail server,OpenSSH serversql

若是不須要redmine的郵件通知,或者不想本身搭建郵件服務器而使用已存在或者其餘SMTP郵件服務來發送郵件的話,能夠不用安裝Mail server,即postfix。若是是這樣,那麼下面的這步也能夠省去。數據庫

完成安裝後,既然是新系統,就先更新到最新吧:)
apt-get update
apt-get upgrade
而後咱們來開始配置redmine。

獲取redmine及相關信息

redmine基於ROR,因此對於ROR的開發人員來講部署這個系統要比不了解ROR的人容易的多。這裏假設你對ROR是有必定的瞭解的。若是不瞭解,照着步驟作便可。 先找到redmine的下載, redmine的官方網站上有不少參考信息, 下載列表則是在rubyforge.org上。 當前最新版本是0.9.4 1.0.0。redmine官方的 安裝和配置文檔包含了linux和windows的配置,包括對系統需求。但可能文檔不盡詳盡,安裝中會遇到不少問題。若是僅僅只是想體驗下安裝過程,並想知道怎麼解決具體遇到的問題,能夠參看我以前寫的 redmine-0.9.x配置過程。 我將redmine放在/usr/local/裏:
cd /usr/local/
獲取當前版本並解壓:
wget http://rubyforge.org/frs/download.php/71723/redmine-1.0.0.tar.gz
tar zxvf redmine-1.0.0.tar.gz
mv redmine-1.0.0 redmine

配置mysql數據庫

數據庫是mysql,爲redmine創建庫,庫名redmine。同時建立redmine用戶,把庫的權限分配給這個用戶。最後設置用戶的密碼爲'redminePASSWORD'。固然這裏的庫名、用戶名和密碼,能夠按實際狀況替換。
mysql -u root -p
mysql> create database redmine character set utf8;
mysql> grant select,insert,delete,update,create,drop,alter,index on redmine.* to redmine;
mysql> SET PASSWORD FOR 'redmine' = PASSWORD('redminePASSWORD');
mysql> flush privileges;
mysql> exit;

安裝與配置

進入redmine的主目錄,開始配置數據文件,把配置指向剛纔創建的庫。
cd /usr/local/redmine
cp config/database.yml.example config/database.yml
vim config/database.yml
配置production部分紅以下所示。其中的database,username,password按實際狀況替換。
production:
  adapter: mysql
  database: redmine
  host: localhost
  username: redmine
  password: redminePASSWORD
  encoding: utf8
當前版本的需求是ruby 1.8.6, 1.8.7 Rails 2.3.5 Rack 1.0.1。爲此首先安裝須要的包。
apt-get install rake rubygems libopenssl-ruby libmysql-ruby
能夠看到這些包被安裝:
irb1.8 libmysql-ruby libmysql-ruby1.8 libopenssl-ruby
libopenssl-ruby1.8 libreadline-ruby1.8 libreadline5 libruby1.8 rake
rdoc1.8 ruby ruby1.8 rubygems rubygems1.8 unzip zip
rake的安裝則必須指定版本:
gem install rack --version=1.0.1
上面這條命令在我之前寫配置的時候一直有效,可是在編寫此文時,gem的在線安裝有些問題。不知是出於網絡的問題仍是其餘緣由,我獲得了下面的錯誤:
WARNING:  RubyGems 1.2+ index not found for:
        http://gems.rubyforge.org/

RubyGems will revert to legacy indexes degrading performance.
Bulk updating Gem source index for: http://gems.rubyforge.org/
ERROR:  While executing gem ... (Gem::RemoteSourceException)
    Error fetching remote gem cache: SocketError: getaddrinfo: Temporary failure in name resolution (http://gems.rubyforge.org/yaml)

google以後也沒能找到什麼結果,因此只好本地安裝rack了。apache

更新(2010/07/19):在線安裝已經恢復正常,看來產生上面的錯誤是臨時性的。但仍舊保留下面的本地安裝方式。ubuntu

下載對應的rack-1.0.1.gem到本地後安裝:vim

wget http://rubyforge.org/frs/download.php/65736/rack-1.0.1.gem
gem install --local rack-1.0.1.gem
繼續下面的步驟,生成會話存儲密鑰:
RAILS_ENV=production rake config/initializers/session_store.rb
注:r3055以後的版本移除了config/initializers/session_store.rb,使用下面的命令替代。
rake generate_session_store
而後開始建立數據庫表結構,在redmine的根目錄下運行:
RAILS_ENV=production rake db:migrate
讀取默認配置數據,當遇到選擇語言(Select language)時,選擇zh:
RAILS_ENV=production rake redmine:load_default_data
Select language: bg, bs, ca, cs, da, de, el, en, es, fi, fr, gl, he, hr, hu, id, it, ja, ko, lt, nl, no, pl, pt, pt-BR, ro, ru, sk, sl, sr, sv, th, tr, uk, vi, zh, zh-TW [en]zh
====================================
Default configuration data loaded.
至此,redmine簡單的配置就完成了。使用其自帶的webrick來運行redmine,來檢查下redmine的配置吧:)
ruby script/server webrick -e production
默認的管理員用戶名和密碼都是admin,進入系統後就能夠開始熟悉下了。能夠爲每一個人定義語言環境。下圖是管理頁面。

在apache上部署

其自帶的webrick可能不能知足使用需求,那麼就把它配置到apache上。 apache運行ROR有多種方式,這裏使用passenger。
apt-get install build-essential
apt-get install apache2-prefork-dev libaprutil1-dev libapr1-dev ruby1.8-dev
而後安裝 passenger
gem install passenger
passenger-install-apache2-module
若是報passenger-install-apache2-module這條命令找不到的話,那麼經過下面的命令查看執行路徑:
gem environment
RubyGems Environment:
  - RUBYGEMS VERSION: 1.3.5
  - RUBY VERSION: 1.8.7 (2010-01-10 patchlevel 249) [i486-linux]
  - INSTALLATION DIRECTORY: /var/lib/gems/1.8
  - RUBY EXECUTABLE: /usr/bin/ruby1.8
  - EXECUTABLE DIRECTORY: /var/lib/gems/1.8/bin
  - RUBYGEMS PLATFORMS:
    - ruby
    - x86-linux
  - GEM PATHS:
     - /var/lib/gems/1.8
     - /root/.gem/ruby/1.8
  - GEM CONFIGURATION:
     - :update_sources => true
     - :verbose => true
     - :benchmark => false
     - :backtrace => false
     - :bulk_threshold => 1000
  - REMOTE SOURCES:
     - http://gems.rubyforge.org/
其中,EXECUTABLE DIRECTORY就是命令的全路徑,因此對於我例子裏的狀況執行
/var/lib/gems/1.8/bin/passenger-install-apache2-module
根據提示安裝和部署。passenger會在本機編譯併成爲apache的一個模塊。安裝過程當中會遇到下面的提示信息(根據版本的不一樣,信息也會稍有變化):
Welcome to the Phusion Passenger Apache 2 module installer, v2.2.13.

This installer will guide you through the entire installation process. It
shouldn't take more than 3 minutes in total.

Here's what you can expect from the installation process:

 1. The Apache 2 module will be installed for you.
 2. You'll learn how to configure Apache.
 3. You'll learn how to deploy a Ruby on Rails application.

Don't worry if anything goes wrong. This installer will advise you on how to
solve any problems.
The Apache 2 module was successfully installed.

Please edit your Apache configuration file, and add these lines:

   LoadModule passenger_module /var/lib/gems/1.8/gems/passenger-2.2.13/ext/apache2/mod_passenger.so
   PassengerRoot /var/lib/gems/1.8/gems/passenger-2.2.13
   PassengerRuby /usr/bin/ruby1.8

After you restart Apache, you are ready to deploy any number of Ruby on Rails
applications on Apache, without any further Ruby on Rails-specific
configuration!
Deploying a Ruby on Rails application: an example

Suppose you have a Rails application in /somewhere. Add a virtual host to your
Apache configuration file and set its DocumentRoot to /somewhere/public:

   
      ServerName www.yourhost.com
      DocumentRoot /somewhere/public    # <-- be sure to point to 'public'!
      
         AllowOverride all              # <-- relax Apache security settings
         Options -MultiViews            # <-- MultiViews must be turned off
      
   

And that's it! You may also want to check the Users Guide for security and
optimization tips, troubleshooting and other useful information:

  /var/lib/gems/1.8/gems/passenger-2.2.13/doc/Users guide Apache.html

Enjoy Phusion Passenger, a product of Phusion (www.phusion.nl) :-)
http://www.modrails.com/

Phusion Passenger is a trademark of Hongli Lai & Ninh Bui.

根據提示信息部署,我這裏的步驟稍有不一樣。

首先,編輯apache的配置文件並添加下面的信息

(注:「passenger-2.2.13」裏的版本號需根據實際狀況更改,當前(2010/07/19)的更新爲passenger-2.2.15)

vim /etc/apache2/apache2.conf
LoadModule passenger_module /var/lib/gems/1.8/gems/passenger-2.2.13/ext/apache2/mod_passenger.so
   PassengerRoot /var/lib/gems/1.8/gems/passenger-2.2.13
   PassengerRuby /usr/bin/ruby1.8
而後在/etc/apache2/sites-available添加一個站點:
vim redmine
並添加以下內容:
RailsBaseURI /redmine
在web根目錄創建redmine主目錄的符號連接,並設置權限:
ln -s /usr/local/redmine/public /var/www/redmine 
chown -R www-data:www-data /var/www
啓用redmine站點:
a2ensite redmine
最後重啓apache:
/etc/init.d/apache2 restart
或,從新加載配置:
/etc/init.d/apache2 reload
打開瀏覽器,若是你可以訪問到redmine,那麼恭喜你,redmine已經在apache上運行良好!

創建SVN版本庫

版本控制svn能夠參考《subversion 權威指南》,網上也有不少下載。不過我不太喜歡這本書,由於看起來會比較無聊:) 下面簡單地安裝svn並創建一個測試用庫。 首先,安裝subversion版本控制:
apt-get install subversion
建立SVN的根目錄,這裏我建在/var。而後創建一個演示用的庫。
cd /var
mkdir svn
cd svn
svnadmin create demo
而後配置demo庫:
cd demo/conf
ls -l
conf目錄裏是authz,passwd和svnserve.conf這三個文件,分別用於配置用戶權限、用戶密碼和配置此版本庫(demo)。
-rw-r--r-- 1 root root 1089 2010-06-04 14:45 authz
-rw-r--r-- 1 root root  335 2010-06-04 14:44 passwd
-rw-r--r-- 1 root root 2265 2010-06-04 14:44 svnserve.conf
首先配置svnserve.conf的內容:
  • anon-access 匿名訪問默認權限,默認爲read。
  • auth-access 受權訪問默認權限,默認爲write。
  • password-db 用戶密碼文件,默認爲與svnserve.conf同目錄的passwd文件。
  • authz-db 用戶受權文件,默認爲與svnserve.conf同目錄的authz文件。
  • realm 顯示庫名
須要注意的是,每行開頭不能留空格。
[general]
anon-access = read
auth-access = write
password-db = passwd
authz-db = authz
realm = Demo Repository
passwd文件裏存儲的是用戶名和密碼,一行一條記錄。
[users]
redmine = redminePASSWORD
authz是受權文件,配置着每一個用戶和組的權利,下面是把redmine用戶放到redmine_group組裏並賦予redmine_group組demo庫的讀寫權限。
[groups]
dev = redmine
[demo:/]
@dev = rw
簡單配置完後,啓動svnserve:
svnserve -d -r /var/svn
最後將SVN服務加入自啓動:
cd /etc/rc2.d
vim S88svnserve
並在文件S88svnserve中添加上面的啓動命令
svnserve -d -r /var/svn
最後還不能忘了加上執行權限:
chmod +x S88svnserve
而後,在redmine中對應項目的配置裏,指向對應的版本庫。

郵件配置

這裏讓redmine用默認配置的Postfix來發送郵件。若是在安裝ubuntu的時候沒有安裝郵件服務器,這裏也能夠經過下面的命令來安裝:
apt-get install postfix
這裏之因此要特地配置個郵件服務器,徹底是爲了使整個redmine系統完整。徹底可使用其餘郵件服務。 默認配置的Postfix已經可以知足當前的發信狀況。關於郵件系統和Postfix的討論嚴重超出了本文範圍,對於不熟悉Postfix的人,我推薦閱讀 Postfix基礎配置,若是想了解更多,能夠閱讀 Postfix虛擬郵件系統徹底配置(儘管此文還未徹底完成)。 若是想要知道郵件系統的前因後果,郵件服務器如何處理郵件,那麼我強烈建議閱讀《Postfix權威指南》一書,這本書對於郵件系統的講解深刻淺出,是本好書。 redmine郵件的配置文件一樣在主目錄的config裏:
cp email.yml.example email.yml
vim email.yml
移動到末尾能夠看到默認的配置,將production改成以下所示。其中的域名等信息按實際狀況替換。
production:
  delivery_method: :smtp
  smtp_settings:
    address: localhost
    port: 25
    domain: swordair.com
    authentication: :none
更多郵件信息參考: 官方郵件配置參考。裏面包括瞭如何來寫驗證信息等內容。 至此,你就得到了一個敏捷運行的redmine項目管理系統。
相關文章
相關標籤/搜索