Linux下安裝Redmine

Redmine 是一款非常流行的項目管理工具,使用 Ruby on Rails 編寫,採用 GPL 許可協議(GNU General Public License v2)發佈,支持多種操作系統。

部署和使用 Redmine 可以選擇第三方提供的雲服務,或者下載安裝第三方(如Bitnami)提供的安裝包或容器。然而如同多數 Ruby on Rails 應用一樣,Redmine 的安裝部署過程非常簡單,而且依據官方的安裝部署文檔,或者一些經過驗證的安裝輔助工具(如Redmine installer),在主流的Linux發行版本上安裝部署,在以後進行安裝插件、遷移數據或版本更新時,會有更好的文檔支持,也能少遇到一些不必要的麻煩,因此多數情況下可以嘗試自行安裝部署。

本文記錄基於官方的安裝部署文檔在 Ubuntu 16.04 下安裝部署 Redmine 3.4.6 的過程。

硬件環境和操作系統

本次安裝使用的硬件環境和操作系統如下:

  • 阿里雲1核2G雲服務器
  • Ubuntu 16.04 LTS

更新操作系統並添加需要的軟件包

執行以下指令可更新系統並安裝需要的軟件包,以及以後安裝插件可能需要的軟件包。在本文中,使用 MySQL, 如果選擇其他數據庫,需要替換相應的軟件包:

apt-get update && apt-get upgrade
apt-get install -y build-essential git imagemagick libmagickwand-dev ruby ruby-dev mysql-server libmysqlclient-dev
gem install bundle

安裝過程中,會提示設置 MySQL 的 root 密碼。使用 ssh 遠程登錄雲主機安裝時,如果中間連接中斷可能沒有得到提示。這種情況下可選擇重新安裝 MySQL。

安裝後可執行以下命令檢查主要軟件包的版本:

ruby --version
mysql --version
gem --version
bundle --version

本次安裝中,主要軟件包的版本如下:

  • ruby: ruby 2.3.1p112 (2016-04-26)
  • mysql: Ver 14.14 Distrib 5.7.24
  • gem: 2.5.2.1
  • bundle: 1.17.1

創建 redmine 用戶

創建 redmine 用戶不是必須的,但在正式環境中有助於維持系統的安全。

adduser --system --shell /bin/bash --gecos 'Redmine Administrator' --group --disabled-password --home /data/redmine redmine

這裏把 /data/redmine/ 作爲 redmine 用戶的工作目錄。

創建 redmine 數據庫

創建一個空的數據庫供 Redmine 使用,並創建一個數據庫用戶,授予該用戶相應的數據庫訪問權限。

使用以下命令進入 mysql 命令行環境:

mysql -p -u root

在 mysql 命令行環境下:

CREATE DATABASE redmine CHARACTER SET utf8;
CREATE USER 'redmine'@'localhost' IDENTIFIED BY 'p@ssw0rd';
GRANT ALL PRIVILEGES ON redmine.* TO 'redmine'@'localhost';

在訪問 MySQL 時需要按照提示輸入 MySQL 的 root 密碼。

安裝 Redmine

後續的安裝過程不再需要 root 權限,可以 redmine 用戶的身份在 redmine 用戶的工作目錄下執行。

su - redmine

下載並解壓 Redmine 源碼

通過克隆 Redmine 源碼庫下載打包好的壓縮文件,可獲取 Redmine 源碼:

wget http://www.redmine.org/releases/redmine-3.4.6.tar.gz
tar xvfz redmine-3.4.6.tar.gz
ln -s redmine-3.4.6 redmine
rm redmine-3.4.6.tar.gz

以上爲便於使用,建立了一個軟連接 ~/redmine 指向解壓後的源碼目錄。

修改數據庫連接配置

進入解壓好的源碼目錄,複製數據庫配置模版,並根據實際的數據配置修改生產環境下的數據庫配置:

cd ~/redmine
cp -pR config/database.yml.example config/database.yml
vim config/database.yml

如果採用上文中的參數建立數據庫,修改後的 config/database.yml 文件中,生產環境下的數據庫配置爲:

production:
  adapter: mysql2
  database: redmine
  host: localhost
  username: redmine
  password: "p@ssw0rd"
  encoding: utf8

安裝依賴的 gems

Redmine 使用 Bundler 管理 gems 依賴關係,之前已經安裝過 Bundler。

使用以下命令可將 Redmine 所需的 gems 安裝到 vendor/bundle/ 目錄下。

cd ~/redmine
bundle install --without development test --path vendor/bundle

如果需要加載額外的 gems, 比如在運行時使用 puma 代替默認的 webrick, 可在 ~/redmine/ 下建立一個名爲 Gemfile.local 的文件,指定需額外加載的 gems, 再次運行 bundle install。如:

# Gemfile.local
gem 'puma'

生成 session 密鑰

使用以下命令可生成新的 session 密鑰:

bundle exec rake generate_secret_token

創建數據庫結構

Ruby on Rails 應用,在新安裝、軟件升級等過程中可以很容易創建或更新數據庫結構:

RAILS_ENV=production bundle exec rake db:migrate

導入初始數據

使用以下命令導入初始數據,包括默認的問題類型、工作流程等:

RAILS_ENV=production REDMINE_LANG=zh bundle exec rake redmine:load_default_data

上面的 REDMINE_LANG=zh 選項指定了使用中文,如果不加這個選項,該命令會提示輸入語言代碼。

設置文件系統權限

如果安裝過程中的用戶與運行時的用戶不一致,則需要設置文件系統權限:

mkdir -p tmp tmp/pdf public/plugin_assets
chown -R redmine:redmine files log tmp public/plugin_assets
chmod -R 755 files log tmp public/plugin_assets

啓動服務

執行以下命令可啓動自帶的應用服務,進行系統測試:

bundle exec rails server webrick -e production -b 0.0.0.0

如果在 Gemfile.local 文件中增加了 puma,還可選擇啓動 puma 代替 webrick:

bundle exec rails server puma -e production -b 0.0.0.0

當然在正式的生產環境中,應配置 nginx 或 apache2 服務,而不是通過命令行的方式啓動服務。

登錄 Redmine

在命令行中啓動服務時,如果沒有問題,會提示了訪問地址和訪問端口:

=> Booting Puma
=> Rails 4.2.8 application starting in production on http://0.0.0.0:3000
=> Run `rails server -h` for more startup options
=> Ctrl-C to shutdown server
Puma starting in single mode...
* Version 3.12.0 (ruby 2.3.1-p112), codename: Llamas in Pajamas
* Min threads: 0, max threads: 16
* Environment: production
* Listening on tcp://0.0.0.0:3000
Use Ctrl-C to stop

在使用ECS時,需要注意默認的3000端口是不開放的,此時需要通過ECS控制檯添加安全組規則,接受來自客戶端IP地址段的TCP 3000端口訪問請求。當然在命令行中也可以指定端口號,只需要保證用戶有權限打開該端口號、該端口號未被其他服務佔用,且能被雲服務和ECS的操作系統接受即可。

使用ECS的公網IP地址在瀏覽器中輸入正確的URL,即可登錄新安裝的 Redmine。假設公網IP地址爲39.105.106.107,端口爲3000,則URL應爲 http://39.105.106.107:3000

默認的登錄名和密碼都是 admin,首次登錄時會提示更改密碼。

如果一切正常,Redmine 就算安裝完成了,雖然這樣只適合開發測試,並不適合大量用戶同時訪問。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章