轉(zhuǎn)載請保留鏈接:http://www.swordair.com/blog/?p=374
假設(shè)你是一個項目管理者,可能聽說過redmine。它是一個項目管理系統(tǒng)的后起之秀,具備了廣泛的項目管理平臺特點同時,還提供了諸多的獨有的特性。包括了內(nèi)建的wiki、BUG問題跟蹤、SVN集成等。本文將從頭開始,詳細地構(gòu)建起整個項目管理的系統(tǒng)。假設(shè)你的團隊正需要一個這樣的平臺,希望此文可以作為你的參考:)
你可以從本文中了解到如何配置好一個redmine系統(tǒng),可能這中間會遇到些問題,但它們會被解決,然后讓redmine跑在apache上。如何配置一個svn庫,然后集成到redmine中去。以及如何配置redmine的郵件通知。
假設(shè)你不打算親歷親為體驗這種繁復的安裝過程,你也完全可以使用BitNami的一體化安裝包,這會使得安裝部署redmine像安裝xampp一樣簡單。
自ubuntu-10.04-LTS推出也已經(jīng)有一個月的時間,因此這次的系統(tǒng)就用它了~對Ubuntu我是很有偏愛啊~雖說是一個完整的配置,但是涉及到的SVN以及Postfix只是略微講述,僅僅滿足于這個配置,目的是不讓此文變成長篇大論,這兩者的討論遠遠超出了本文的范圍。不過,我會給出一些的擴展閱讀,在那些擴展里可以找到你需要的內(nèi)容。
然后讓我們開始吧~
安裝ubuntu-10.04-server
這里配置的是Ubuntu server最新的10.04。關(guān)于系統(tǒng)安裝就不多說什么了,塞進光盤然后一路next~
[attach]145518[/attach]
系統(tǒng)初始配置信息。
IP:192.168.242.130
主機名:redmine
預(yù)裝選擇:LAMP server,Mail server,OpenSSH server
假設(shè)不需要redmine的郵件通知,或者不想自己搭建郵件服務(wù)器而使用已存在或者其他SMTP郵件服務(wù)來發(fā)送郵件的話,可以不用安裝Mail server,即postfix。假設(shè)是這樣,那么下面的這步也可以省去。
[attach]145522[/attach]
完成安裝后,既然是新系統(tǒng),就先更新到最新吧:) apt-get update
apt-get upgrade
復制代碼然后我們來開始配置redmine。
獲取redmine及相關(guān)信息
redmine基于ROR,因此對于ROR的開發(fā)人員來說部署這個系統(tǒng)要比不了解ROR的人容易的多。這里假如你對ROR是有一定的了解的。假設(shè)不了解,照著步驟做即可。
先找到redmine的下載,redmine的官方網(wǎng)站上有很多參考信息,下載列表則是在rubyforge.org上。
當前最新版本是0.9.4。redmine官方的安裝和配置文檔包含了linux和windows的配置,包括對系統(tǒng)需求。但可能文檔不盡詳盡,安裝中會遇到很多問題。假設(shè)僅僅只是想體驗下安裝過程,并想知道怎么解決具體遇到的問題,可以參看我之前寫的redmine-0.9.x配置過程。
我將redmine放在/usr/local/里: cd /usr/local/
復制代碼獲取當前版本并解壓: wget
http://rubyforge.org/frs/download.php/70486/redmine-0.9.4.tar.gztar zxvf redmine-0.9.4.tar.gz
mv redmine-0.9.4 redmine
復制代碼配置mysql數(shù)據(jù)庫
數(shù)據(jù)庫是mysql,為redmine建立庫,庫名redmine。同時創(chuàng)建redmine用戶,把庫的權(quán)限分配給這個用戶。最后設(shè)置用戶的密碼為'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的主目錄,開始配置數(shù)據(jù)文件,把配置指向剛才建立的庫。 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的在線安裝有些問題。不知是出于網(wǎng)絡(luò)的問題還是其他原因,我得到了下面的錯誤: 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之后也沒能找到什么結(jié)果,因此只好本地安裝rack了。
下載對應(yīng)的rack-1.0.1.gem到本地后安裝: wget
http://rubyforge.org/frs/download.php/65736/rack-1.0.1.gemgem install --local rack-1.0.1.gem
復制代碼繼續(xù)下面的步驟,生成會話存儲密鑰: RAILS_ENV=production rake config/initializers/session_store.rb
復制代碼注:r3055之后的版本移除了config/initializers/session_store.rb,使用下面的命令替代。 rake generate_session_store
復制代碼然后開始創(chuàng)建數(shù)據(jù)庫表結(jié)構(gòu),在redmine的根目錄下運行: RAILS_ENV=production rake db:migrate
復制代碼讀取默認配置數(shù)據(jù),當遇到選擇語言(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,進入系統(tǒng)后就可以開始熟悉下了??梢詾槊總€人定義語言環(huán)境。下圖是管理頁面。
[attach]145519[/attach]
在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
復制代碼假設(shè)報passenger-install-apache2-module這條命令找不到的話,那么通過下面的命令查看執(zhí)行路徑: 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就是命令的全路徑,因此對于我例子里的情況執(zhí)行 /var/lib/gems/1.8/bin/passenger-install-apache2-module
復制代碼根據(jù)提示安裝和部署。passenger會在本機編譯并成為apache的一個模塊。安裝過程中會遇到下面的提示信息(根據(jù)版本的不同,信息也會稍有變化): 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:
<VirtualHost *:80>
ServerName
www.yourhost.com DocumentRoot /somewhere/public # <-- be sure to point to 'public'!
<Directory /somewhere/public>
AllowOverride all # <-- relax Apache security settings
Options -MultiViews # <-- MultiViews must be turned off
</Directory>
</VirtualHost>
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.
復制代碼根據(jù)提示信息部署,我這里的步驟稍有不同。
首先,編輯apache的配置文件并添加下面的信息: 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
復制代碼然后添加一個站點: vim redmine
復制代碼并添加如下內(nèi)容: RailsBaseURI /redmine
復制代碼在web根目錄建立redmine主目錄的符號鏈接,并設(shè)置權(quán)限: 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
復制代碼打開瀏覽器,假設(shè)你能夠訪問到redmine,那么恭喜你,redmine已經(jīng)在apache上運行良好!
[attach]145520[/attach]
建立SVN版本庫
版本控制svn可以參考《subversion 權(quán)威指南》,網(wǎng)上也有很多下載。不過我不太喜歡這本書,由于看起來會比較無聊:)
下面簡單地安裝svn并建立一個測試用庫。
首先,安裝subversion版本控制: apt-get install subversion
復制代碼創(chuàng)建SVN的根目錄,這里我建在/var。然后建立一個演示用的庫。 cd /var
mkdir svn
cd svn
svnadmin create demo
復制代碼然后配置demo庫: cd demo/conf
ls -l
復制代碼conf目錄里是authz,passwd和svnserve.conf這三個文件,分別用于配置用戶權(quán)限、用戶密碼和配置此版本庫(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的內(nèi)容: