redmine部署,踩坑而過
背景:部門想用個工具來做專案執行進度的管理,為了保證資料私有並且不想花錢,選了redmine。
環境:阿里雲伺服器,windows server R2企業版
軟體版本構成:
redmine4.0寫的是upcoming,讓我望而卻步,最終選擇了3.4.6。ruby環境選了箇中間版本,2.2.0,採用railsInstallers來安裝,主要是看論壇說,這個工具整合度高,部署簡單。
redmine 3.4.6;railsinstaller 3.2.1;ImageMagick 6.9.9(這個可能會用到,後面說明);postgres 10.0
部署過程:
1、安裝railsInstaller
這個就一路Next就好了,很好安裝,git元件不想裝可以不裝。值得注意的一點是,安裝時勾選新增ruby等元件執行檔案到環境變數,比較省事,自己手動更改可以。
2、檔案部署
將redmine 3.4.6解壓到railsInstaller安裝後生成的sites資料夾中,重新命名為redmine(為了好寫)。然後就可以進行redmine的環境配置了。
3、配置
(1)開啟cmd命令列,進入redmine資料夾。
(2)執行
gem install rails -v=4.2
這個版本號是根據官網的說明來的。
(3)執行
gem install rack
這個我沒有指定版本號,自動下載的是2.0.5的。
(3)執行
gem install -v=0.4.2 i18n
這個不知道是裝的什麼,看帖子寫的,因為這個不指定版本號不會執行。
(4)安裝資料庫,支援三種postgres、mysql、sqlserver,我最終使用的postgres,伺服器上已有的,伺服器上也有mysql,不過遇到坑了,下面詳說。
(5)建立remine庫體
CREATE ROLE redmine LOGIN ENCRYPTED PASSWORD 'my_password' NOINHERIT VALID UNTIL 'infinity'; CREATE DATABASE redmine WITH ENCODING='UTF8' OWNER=redmine;
注意,我這裡使用的postgres,其他庫體的語句參見官方說明。當然,使用對應的視覺化工具也可以,就是建立一個名為redmine的登陸角色,儘量給足許可權,儘量不密碼過期(怕麻煩)。新建一個為名redmine的空庫,所有權給剛才的角色。
(6)配置資料庫連線檔案。redmine/config/database.yml.example這個檔案是redmine的資料連線樣例配置,拷貝一下,重新命名為database.yml,修改其中的資訊並儲存。
production:
adapter: postgresql
database: redmine
host: localhost
username: redmine
password: "my_password"
encoding: utf8
不同庫體的區別主要是介面卡名稱不一樣。
(7)回到命令列,執行
gem install bundler
安裝bundler。bundler是用來管理gem中的依賴檔案的,之後會用到。
(8)安裝依賴檔案。執行
bundle install --without development test
會下載很多相關的依賴檔案。這時候提示rmagick異常,是因為沒有安裝ImageMagick,執行一下執行程式,再重新執行。
(9)執行
bundle exec rake generate_secret_token
生成隨機token。這裡吐槽一下,一開始,我是用的是mysql庫,然後介面卡使用的mysql2,通過命令下載的mysql2版本為0.4.10,但是執行上述命令時,提示載入libmysql失敗。於是搜尋了下問題,按帖子提示,執行gem install mysql2,結果下載了一個0.5.2的版本,但是上述命令執行時,還是去找的0.4.10。之後試了幾種方法,將0.5.2中的libmysql替換到0.4.10中(也試了從mysql官網上下的和已安裝資料庫中的對應驅動),無果。替換成其他版本的驅動時,提示版本不匹配,也嘗試了本地安裝,也沒成功。折騰一番後,放棄,換了postgres。
(10)執行
set RAILS_ENV=production
bundle exec rake db:migrate
初始化資料庫。
(11)執行
set RAILS_ENV=production
set REDMINE_LANG=zh
bundle exec rake redmine:load_default_data
載入預設資料。這裡環境語言我設定的zh,根據需要設定。
4、之後啟動redmine服務,執行
bundle exec rails server webrick -e production
預設監聽地址為localhost,預設埠為3000。由於我需要外網訪問,本身阿里雲伺服器有對應的內外網ip,所有我將服務地址繫結到其對應的私有ip上
bundle exec rails server webrick -e production -b xxx.xxx.xxx.xxx
5、之後就是訪問測試嘍,訪問http://localhost:3000。登陸時會發現介面是英文的,在個人賬戶中,設定語言就可以了。