Ubuntu 20.04 安装 Redmine 5.0
最近团队需要一个项目管理软件,最合适的当然是 JIRA。
但 JIRA 运行需要的资源开销不小,且费用昂贵,遂放弃。SAAS 服务体验了一圈,觉得都太挫了。
功能都很好,就是打开页面的速度巨慢。那种慢不是网络的慢或者是机器运行的慢,而是体验的慢。现代的 SPA 应用已经被玩坏了。
思来想去,决定还是装一个 Redmine。
我的服务器是 Ubuntu 20.04,本文参考 官方文档 完成。
首先确保安装了 ruby 和 ruby-dev。
$ ruby -v
ruby 2.7.0p0 (2019-12-25 revision 647ee6f091) [x86_64-linux-gnu]
# 如果未安装
$ apt install ruby ruby-dev
注意如果没有安装 ruby-dev,会遇到 “Gem::Ext::BuildError: ERROR: Failed to build gem native extension.” 这种错误,后面文中会提到。
另:如果你用的是 sqlite3 数据库,则需要安装 libsqlite3-dev 这个包:
apt install libsqlite3-dev
否则会遇到 fatal error: sqlite3.h: No such file or directory
这个错误。
第一步: 下载解压
cd /opt
wget https://www.redmine.org/releases/redmine-5.0.0.zip
unzip redmine-5.0.0.zip
本文的 Redmine 的安装目录: /opt/redmine-5.0.0
第二步: MySQL 数据库配置
PS: 也可以使用 sqlite 数据库。
创建数据库:
CREATE DATABASE redmine CHARACTER SET utf8mb4;
创建专用账户并分配权限:
CREATE USER 'redmine'@'localhost' IDENTIFIED BY 'redmine2022@tcore.cloud';
GRANT ALL PRIVILEGES ON redmine.* TO 'redmine'@'localhost';
第三步: 数据库连接配置
复制配置文件:
cp config/database.yml.example config/database.yml
编辑内容:
production:
adapter: mysql2
database: redmine
host: localhost
username: redmine
password: "redmine2022@tcore.cloud"
如果是 SQLite 数据库:
production:
adapter: sqlite3
database: db/redmine.sqlite3
第四步: 安装依赖
cd /opt/redmine-5.0.0
gem install bundler
bundle install --without development test
如果发现 gem 安装依赖很久不动,你懂的,又是傻逼 GFW 搞事情了,需要改为国内源了。
# 查看当前使用的源地址。
gem sources
*** CURRENT SOURCES ***
https://rubygems.org/
# 删除默认源
gem sources --remove https://rubygems.org/
# 添加国内源
gem sources -a https://gems.ruby-china.com/
# 或者使用这个
gem sources --add https://mirrors.tuna.tsinghua.edu.cn/rubygems/
# 更新源的缓存
gem sources -u
更新源的缓存后即完成了 Ruby 的 gem 源修改,重新执行 gem install bundler 命令安装,很快搞定。
同样,Bundle 的源也需要修改。
新增映射:
bundle config mirror.https://rubygems.org https://gems.ruby-china.com
如果需要删除,则可以执行下面的命令删除映射:
bundle config --delete 'mirror.https://rubygems.org'
bundle 安装期间出现了一个错误:
Retrying download gem from https://gems.ruby-china.com/ due to error (2/4): Gem::RemoteFetcher::UnknownHostError timed out (https://gems.ruby-china.com/gems/marcel-1.0.2.gem)
Installing marcel 1.0.2
Gem::Ext::BuildError: ERROR: Failed to build gem native extension.
current directory: /var/lib/gems/2.7.0/gems/racc-1.6.0/ext/racc/cparse
/usr/bin/ruby2.7 -I /usr/lib/ruby/2.7.0 -r ./siteconf20220510-886298-1g7m6a8.rb extconf.rb
mkmf.rb can't find header files for ruby at /usr/lib/ruby/include/ruby.h
You might have to install separate package for the ruby development
environment, ruby-dev or ruby-devel for example.
extconf failed, exit code 1
看起来是网络错误,导致下载超时失败。重新执行一次 bundle install --without development test
,仍然报错:
Gem::Ext::BuildError: ERROR: Failed to build gem native extension.
发现是因为没有安装 ruby-dev 导致的,遂执行:
apt install ruby-dev
安装后再次执行,问题解决。
第五步: 生成 Session 存储密钥
bundle exec rake generate_secret_token
第六步: 初始化数据库及默认数据设置
RAILS_ENV=production bundle exec rake db:migrate
RAILS_ENV=production bundle exec rake redmine:load_default_data
第七步: 文件系统权限设置
mkdir -p tmp tmp/pdf public/plugin_assets
sudo chown -R redmine:redmine files log tmp public/plugin_assets
sudo chmod -R 755 files log tmp public/plugin_assets
第八步: 测试安装
bundle exec rails server webrick -e production
注意:按照官方的命令,始终提示多一个参数。
开始我怀疑是因为本地的 3000 端口被占用导致的,于是修改了端口,但还是报错,最后发现要移除掉 webtrick 这个参数,且需要放在后台跑,需要加上 -d ,最终我实测能用的命令是:
bundle exec rails server -p 3100 -e production -d
PS: 我是跑在 3100 端口上。
第九步: 登录
默认账户密码: admin/admin
登录后修改密码即可。