Windows下安裝Redmine 2.5.2不完全指南

    我決定在專案中引入Redmine來管理開發任務和計劃,至於Redmine的好處,請問度娘或者腦補一下。

    網際網路搜尋到的,基本上都是舊版本的, 1.2.1 的最多,我要新的啊,所以只好自己來啦。

    本文主體參考 Redmine Wiki 的安裝頁面:http://www.redmine.org/projects/redmine/wiki/RedmineInstall ,遇到的問題自己解決了一下。總之不是翻譯,而是實踐記錄。

環境描述

    伺服器作業系統為Windows Server 2008 R2 Enterprise,64位版本。

    Rails 3.2.19,ruby為1.9.3p545。

    Redmine 為 2.5.2 版本。

    MySQL 為5.5.40 win32 版本。

    ImageMagick 為 ImageMagick-6.8.9-8-Q16-x86-dll 。

安裝與配置

    Redmine 是基於 Ruby on Rails 的,我選擇最新版本 2.5.2 ,請到 redmine wiki 站點中的安裝頁面瞭解詳情。

    截至我寫博文時(2014年10月17日)最新版本為 2.5.2 。

依賴選擇

    我們先對 Redmine 依賴的環境和軟體做下說明。

    能跑 Ruby 的作業系統就能跑 Redmine ,根據公司情況,我找了臺 Server 2008 的計算機。

    Redmine 對 Ruby 和 Rails 的依賴,如下圖:

    Redmine 2.5 版本需要 3.2 及以上版本的 Rails ,支援1.8.7 、 1.9.2 、 1.9.3 、2.0.0, 、 2.1 等版本的 Ruby 。後面我選擇 RailsInstaller-2.2.4 來安裝 Ruby 和 Rails ,它裡面包含的 Rails 版本是 3.2.19 , Ruby 版本是 1.9.3p545 ,符合 Redmine 的要求。

    Redmine支援 MySQL 作為資料庫後端,需要 5.0 或更高的版本。我選擇社群版 server ,版本號為 5.5.40 。

    ImageMagick是可選依賴,用於將 Remine 中的專案資料如甘特圖等匯出為 png 圖片。其它的可選依賴還有版本管理工具,比如 svn ,Redmine 可以與版本管理系統整合。如果你要支援 Open ID ,還需要 Ruby OpenID Library ,2 或者更高 版本。

    好啦,現在開始秀安裝過程。

RailsInstaller安裝

    圖省事了,使用 RailsInstaller 來配置 Rails 和 Ruby ,它是一鍵安裝,非常簡單。

    網站在這裡:RailsInstaller 。按下圖所示,選擇 Windows 下的安裝包來下載:

    本文寫作時 RailsInstaller 的版本為 2.2.4 ,它帶的 Ruby 和 Rails 是用 mingw32 編譯出來的, MySQL 要匹配的,也得是 32 位。

    安裝過程就是一路狂點 Next 。首先是歡迎頁:

    二話不說,猛戳 Next 按鈕,出現許可協議頁面:

    接受吧,然後再戳 Next 按鈕,讓你選安裝位置還有附加的軟體及設定,如下圖:

    需要的空間也不大,咱都選上吧。點選 Install 按鈕,開始安裝了。如下圖:

    等著吧,還能幹麼……

    看到下圖就 OK 啦:

    點選 Finish 吧,親。然後呢,你看到了 Ruby and Rails 的命令列環境:

    到此為止, Ruby 和 Rails 安裝就緒。

MySQL安裝

    MySQL的官網截圖如下:

    你可以隨便選擇某個版本,大於 5 即可。我使用 5.5.40 x86 32bit MSI installer ,下載了 mysql-5.5.40-win32.msi 。下面是安裝歡迎介面:

    

    我是 Next 控,只會點 Next ,點吧點吧不是罪……看呢,協議頁面:

    惟有接受,才能享受猛戳 Next 的快樂。戳下,到安裝型別頁面:

    我選了完整安裝,也沒多佔多大空間。再戳 Next ,到準備就緒介面了:

    用你無奈的手指,點 Install 吧,然後我們就只能看著進度條發呆了:

    咋個回事兒,你造嗎?居然出來了企業版的介面:

    Cancel 和 Back 都被灰掉啦,有點兒跟團旅遊被強制購物的感覺……沒轍啦,帶著氣兒戳 Next 吧,看看它能變出啥子花樣來。

    再 Next 吧,耶,木有咧,回到進度條啦哈,原來只是個宣傳,而已,沒那麼壞哈……

    下面是安裝完成介面:

    MySQL 裝完還要做一下配置。你看上圖中那個核取方塊,預設是選中的。如果本機沒有已經配置過的 MySQL ,由他去吧,點選你最愛的 Finish 按鈕吧!

    (要是安裝過並且設定了 MySQL 的 root 賬號密碼,可能有問題,你別選這個 “Launch the MySQL Instance Configuration Wizard” 選項,跑到開始選單或者安裝目錄下的 bin 目錄,找到 MySQLInstanceConfig 點下好啦。嚮導會給你個機會修改 root 的密碼的。)

    我的計算機上原來被同事安裝過 MySQL ,我以為刪掉啦……結果呢,碉堡的事兒在後面,咱先按下不提吧,來看 MySQL 配置嚮導咧:

    Next 黨們,歡樂地戳吧。接下來就讓你選配置型別啦:

    我選了 Standard Configuration ,繼續 Next ,抵達 Service 配置了:

    如上圖所示,我選擇了安裝 Windows 服務和開機啟動,另外把 MySQL 的 bin 目錄新增到了系統環境變數 PATH 中,這樣隨時隨地就可以訪問了。

    戳 Next 吧,然後就該設定賬號啦:

    我選擇了 Modify Security Settings ,不想埋地雷就沒有建立匿名使用者。歡快的戳了下 Next ,我到了準備就緒的頁面:

    能看到它,好開心!還等嘛,趕緊擁抱 Execute 吧。注意,開始執行你之前的配置嘍:

    我心裡哼著小曲兒,就等著它往出蹦 Finish 介面呢,誰知道,受了驚嚇!請看:

    哇喔,安全設定失敗!要麼是因為防火牆設定導致連線不上 3306 埠,要麼是之前有安裝 MySQL ,解除安裝時沒有清除資料目錄,導致 root 的密碼還在那裡。

    我是哪種呢……

    我覺得可能是防火牆吧,因為同事說 MySQL 已經刪除了。於是我把 mysqld 、 mysql 等等都加入到例外中,然後又到入站規則那裡設定了 3306 埠的規則,費了半天勁,最後回來 Retry ,嘿嘿,又彈這個!

    我只好叫來我的同事,詢問之前的 MySQL 密碼……然後呢, Skip 了。回到 bin 目錄,找到 MySQLInstanceConfig 來執行,保持剛才那一路辛苦的配置,到了修改賬號這裡了,如下圖:

    看看,看看,有不同吧……

    這個插曲告訴我們,前戲一定要充分,不然的話……

    這次搞下來後,順利看到了期待已久的 Finish 啊:

    資料庫配置 OK 啦,親們!

ImageMagick安裝

    到這裡去下載:

    選擇 ImageMagick-6.8.9-8-Q16-x86-dll.exe 那個下載吧。然後執行它。

    我決定先不裝這玩意兒啦,先把 Redmine 跑起來看看,後面需要再配置。

Redmine安裝與配置

    Redmine 到這裡下載:http://www.redmine.org/projects/redmine/wiki/Download  。記住是版本 2.5.2 哦。

    zip 包下載完畢後,解壓到 C:\Sites 目錄下面,這就安裝完咧!

    下面是配置,撓人的時刻就這麼來了,不知道該是歡喜還是悲傷……

拷貝libmysql

    為了 Redmine 可以正常連線 MySQL ,需要 MySQL 的 C API 庫,即 libmysql.dll 。在這裡:

    拷貝到 Ruby 的 bin 目錄下,如圖所示:

安裝mysql2

    Redmine 需要 mysql2(MySQL 針對 Ruby 的 C binding )據說可以提高效能,你可以在 Ruby and Rails 的命令列環境中執行下面的命令來安裝:

    

gem install mysql2

    不過我這裡出錯了哎……

    乖乖,缺少 thread.h ,檢查了下, Ruby 中還真沒這個標頭檔案。網路一頓盲搜,時光飛逝啊。我怒了,尼瑪,我要找個 thread.h ,我要換 Ruby 版本!

    尋尋覓覓尋不到, thread.h 的蹤跡……後來啊,我來到了這裡:

    啊哈,沒錯, rubyinstaller.org ,就是它了,我挑了 Ruby 2.0.0-p576 下載,找到 7z 包中的 ruby/thread.h 檔案,拷貝到 C:\RailsInstaller\Ruby1.9.3\include\ruby-1.9.1\ruby 目錄下面。

    萬事大吉了嗎?

    再次執行 gem install mysql2 ,又錯啦……

    霍霍,找不到 mysqlclient 這個庫!根據錯誤資訊,需要指定 mysql c connector 的位置。

    使用 –with-mysql-dir 可以指定 mysql 的位置,然後 gem 安裝依賴時就會使用指定位置下的 mysql 標頭檔案和庫檔案。需要說明的是,路徑中不能有空格,像 Program Files(x86) 這種路徑會出錯,所以我拷貝了 include 和 lib 資料夾,放在 c:\mysql_sdk 目錄下。因此我執行下面的命令:

gem install mysql2 -- --with-mysql-dir="C:/mysql_sdk"

    這次會通關嗎?心中忐忑不已……人生的大起大落來得太快,小心肝承受不了呀……你看,事就這樣成了:

建庫

    參考我的建庫的圖片,裡面包含了命令,如下:

    基本步驟是醬紫的:從開始選單執行 MySQL 5.5 Comand Line Client ,輸入密碼,登入成功,建立庫 redmine ,建立使用者 redmine ,授權其訪問 redmine 庫。

配置資料庫連線

    把 C:\Sites\redmine-2.5.2\config目錄下的 database.yml.example 原地拷貝一份,名字改為 database.yml ,然後用文字編輯器開啟它,資料庫連線就在 database.yml 中配置。

    多幸福啊, Redmine 預設的配置就是針對 MySQL 的。你看:

    如圖所示,我們只需要修改 production這個配置即可。一般你只要修改 password 即可(其實你可以把 username 換成 redmine,密碼對應)。比方我的配置:

production:
adapter: mysql2
database: redmine
host: localhost
username: root
password: "zc_redmine"
encoding: utf8

安裝依賴

    首先要安裝 bundler ,Redmine 使用它來維護 gems 依賴。命令:

gem install bundler

    然後要確認你在 C:\Sites\redmine-2.5.2 目錄下面,不在的話,使用 cd 命令進去,然後執行下面的命令來解決 redmine 需要的依賴:

bundle install --without development test

    這裡又會嘗試安裝 mysql2 ,因為我們在 production 中指定使用 mysql2 作為資料庫介面卡。如果發現已經安裝,就直接用本地的。你會看到 Using xxx 之類的資訊,如下圖:


    安裝過程是漫長的……希望能成功,可是!又夭折啦!看下圖:

    原來是 rmagick 啊,先跳過算咧,執行這個命令:

bundle install --without development test rmagick

    我的心,在等待,永遠在等待……Bingo!有圖有真相:

    終於可以繼續前行啦,真是一把鼻滴一把淚的……

    還是要囉嗦兩句,如果你 bundle install 失敗,可以根據失敗提示,看是哪個 gem 有問題,然後單獨執行安裝操作來查問題在哪裡……就這麼迴圈,總能搞定的。人生需要正能量,一定會搞掂。

生成會話儲存祕鑰

    因為我們的 redmine 版本是 2.x ,執行這個命令吧:

rake generate_secret_token

    上面的命令生成一個隨機的 Key , Rails 用它來加密 cookie ……

    這麼簡單一命令,也會錯……看圖吧:

    版本問題啊,聽人勸,這麼幹:

bundle exec rake generate_secret_token

    這裡的黎明靜悄悄……執行這個命令,居然木有任何 output ,難道是成功了嗎?且走著……

建立資料庫結構

    建立資料庫結構,使用下面的命令:

set RAILS_ENV=production
bundle exec rake db:migrate

    注意是一條一條執行啊,後面不提醒啦……還有,因為我 rake 版本問題,只好每次呼叫 rake 時都在前面附加 bundle exec 嘍。

    它會建立一系列的表,設定表的許可權,還會建立一個管理員賬號,就是天上地下無人不知的 admin ,密碼也是 admin 。

    看到下面這個圖,說明 OK 啦啦啦:

資料庫預設資料設定

    使用下面的命令來向資料庫中插入預設的配置資料:

set RAILS_ENV=production
bundle exec rake redmine:load_default_data

    一條一條執行。

    第二條執行時,會然我們設定語言。如圖所示:

    我選擇了 zh ,然後回車。很快就 OK 啦:

    又過了一關……我們還要走,因為,安踏,永不止步。

測試安裝

    不知不覺,居然到了這一步!這是要結束的節奏嗎?

    廢話少說,趕緊的,執行下面的命令:

ruby script/rails server webrick -e production

    你是我的眼,帶我領略這四季的變換……快告訴我,你是不是看見了這個圖:

    恭喜你, redmine 已成功啟動!

    從輸出資訊看到,它監聽了 0.0.0.0:3000 ,所以你可以訪問 http://localhost:3000 看看效果,也可以訪問實際的 ip 地址,比如 http://192.168.1.30:3000 。效果如下圖所示:

    點選右上角的登入,可以看到下面的頁面:


    還記得我們的 admin 賬號嗎,輸入進去,點選登入按鈕,就進去了,隨便點點,可能看到這個介面:


    好啦,到此為止,你可以享受下管理員無上的權力帶來的快感,你可以定義角色,定義工作流程,建立成員……哇哦,真的好厲害。不過,萬里長征剛剛開始,環境才就緒,如何把專案管理過程在 Redmine 中體現出來,可是路漫漫其修遠……