ubuntu 12.04 安装redmine

Posted on 四 16 2月 2017 in linux

最近有个需求,把ALM上的数据导出到redmine中,再做一个插件。
因为系统比较老了,所以中间遇到一些问题。

#redmine的环境如下
Environment:
  Redmine version                3.2.1.stable
  Ruby version                   2.3.1-p112 (2016-04-26) [x86_64-linux]
  Rails version                  4.2.5.2
  Environment                    production
  Database adapter               Mysql2
SCM:
  Filesystem                     
Redmine plugins:
  no plugin installed
  • 安装ruby, gems, rails
    因为ubuntu默认版本是1.8,所以需要升级安装2.3.1。我用的是rbenv

    # 如果是zsh的话, .bashrc要换成.zshrc
    $ git clone https://github.com/rbenv/rbenv.git ~/.rbenv
    $ echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc
    $ echo 'eval "$(rbenv init -)"' >> ~/.bashrc
    $ exec $SHELL
    $ git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build
    $ echo 'export PATH="$HOME/.rbenv/plugins/ruby-build/bin:$PATH"' >> ~/.bashrc
    $ exec $SHELL
    # 安装ruby
    $ rbenv install 2.3.1
    source ~/.bashrc # 最后执行一下这一步
    # 设置为全局
    rbenv global 2.3.3
    # 检查一下ruby的版本
    ruby -v
    

    安装gems,(rubygems的简称, 类似于python的pip,是一个包管理器)

    sudo apt-get install rubygems # for ubuntu 12
    

    查看gems的安装路径

    gem env gemdir
    

    用gem安装rails

    gem insall rails
    
  • 下载redmine代码

    https://www.redmine.org/releases/

  • 数据库我选择mysql
    Redmine database user will be named redmine hereafter but it can be changed to anything else
    登录到mysql命令行,redmine_default, 新建一个redmine用户,密码为my_password。给redmine用户操作redmine数据库的权限

    CREATE DATABASE redmine_default CHARACTER SET utf8;
    CREATE USER 'redmine'@'localhost' IDENTIFIED BY 'my_password';
    GRANT ALL PRIVILEGES ON redmine_default.* TO 'redmine'@'localhost';
    
  • 配置数据库连接
    在第一步下载完成代码后,放到你的工作目录。
    复制config/database.yml.example为config/database.yml,修改production部分相关的内容,其它development,test部分我暂不使用

    production:
        adapter: mysql2
        database: redmine_default
        host: localhost
        username: redmine
        password: my_password
        encoding: utf8
    
  • 安装依赖
    一定要在redmine代码的根目录!!!
    首先用gem 安装 bundler

    gem install bundler
    

    安装项目的依赖

    # 这里排除了 development test, 如果修改了database.yml以后,还要重新执行一次
    bundle install --without development test
    
  • session安全相关
    这一步主要是产生加密cookie和session的key

    bundle exec rake generate_secret_token
    
  • 数据库结构创建

    RAILS_ENV=production bundle exec rake db:migrate
    
  • 插入默认数据

    RAILS_ENV=production bundle exec rake redmine:load_default_data
    
  • 创建相关文件夹

    • files (storage of attachments)
    • log (application log file production.log)
    • tmp and tmp/pdf (create these ones if not present, used to generate PDF documents among other things)
    • public/plugin_assets (assets of plugins)

      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

  • 测试运行rails

    bundle exec ruby script/rails server webrick -e production
    

    打开浏览器,输入http://localhost:3000/,应该就可以看到redmine的登录界面了,同时console里面也可以看到log
    默认用户名和密码都是admin

部署,启动redmine

  • 安装passenger及apache扩展

    gem install passenger --no-rdoc --no-ri
    
    passenger-install-apache2-module
    

    然后根据提示进行操作,可能需要修改 /etc/apache2/mods-enabled/passenger.load/etc/apache2/mods-available/passenger.conf

    启用passenger扩展

    sudo a2enmod passenger
    

    修改 /etc/apache2/sites-available/default, 添加如下部分

      <Directory /var/www/redmine>
          RailsBaseURI /redmine
          PassengerResolveSymlinksInDocumentRoot on                                                                                                                                                 
      </Directory>
    

    启动redmine

    sudo ln -s /redmine_dir/public/ /var/www/redmine
    

    重启apache

    sudo service apache2 restart
    
  • 安装rmagic
    这一步不是必须的。 先要安装ImageMagick,因为ubuntu版本的原因,所以不能用apt-get安装。从源码,而且不能选择最新的7.0的版本,因为rmagic还没有适配,最新的pr前两天还有人回复。

    git clone https://github.com/ImageMagick/ImageMagick.git
    cd ImageMagick
    git checkout -b im6 origin/ImageMagick-6
    git clean -fd
    ./configure
    make
    sudo make install
    sudo ldconfig /usr/local/lib
    gem install rmagick
    

    这里有一个坑,官方安装时说如果没有装rmagick的话用下面的命令

     bundle install --without development test rmagick
    

    但是如果在之后安装了rmagick,想要enable时,官方却没有指出。后来才发现要修改.bundle/config文件里面的内容如下:

    BUNDLE_WITHOUT: "development:test:rmagick"
    

    注意这个.bundle文件是在代码的根目录,不是用户主目录。把:rmagick删除。再执行

    bundle install --without development test
    # 重启apache
    sudo service apache restart
    # 重启passenger的方法如下
    passenger-config restart-app
    

API接口

redmine有提供接口,刚好又有一个封闭好的python的包也比较好用PythonRedmine
详细使用可以看这里http://python-redmine.readthedocs.io/

参考链接:

http://stackoverflow.com/questions/18490591/how-to-install-ruby-2-on-ubuntu-without-rvm
https://henter.me/post/ruby-rvm-gem-rake-bundle-rails.html
https://ruby-china.org/topics/25530
https://wiki.archlinux.org/index.php/Ruby_(简体中文)
http://www.redmine.org/projects/redmine/wiki/RedmineInstall http://www.redmine.org/projects/redmine/wiki/HowTo_Install_Redmine_30x_on_Ubuntu_1404_with_Apache2_Phusion_Passenger_MySQL_Subversion_and_Git_(Gitolite)#Users
http://www.redmine.org/projects/redmine/wiki/HowTo_Install_Redmine_on_Ubuntu_step_by_step
https://www.phusionpassenger.com/library/install/apache/install/oss/rubygems_rvm/
http://www.imagemagick.org/script/install-source.php
http://sayaku.github.io/blog/2016/05/05/rubyde-rvm-gem-bundler/
https://ruby-china.org/topics/25530