1. 程式人生 > >redmine部署,踩坑而過

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。登陸時會發現介面是英文的,在個人賬戶中,設定語言就可以了。