redmine1.1.2から redmine3.2に問題なく移行(2016/11/04)

CentOS7.2 に新規にredmine3.2を入れて,旧redmine1.1.2で作成してきたデータを移行できました.redmineってよくできてます.下記が方法です.

データの保存

  • データの保存(mysql)
    mysqldump -u root -p --default-character-set=utf8 db_redmine > /tmp/redmine_backup_`date +%Y%m%d-%H%M%S`.sql
  • データの保存(wikiなどでの添付ファイル)
    /var/lib/redmine/files をtarで固めて移動 (/var/lib/redmineの部分は設定による)
    cd /var/lib/redmine
    tar cvfz filesback.tgz files

インストール (CentOS7.2)

  • getenforce で確認して SELinux切る
  • firewall 空ける
    firewall-cmd --zone=public --add-service=http --permanent
    firewall-cmd --reload
  • パッケージインストール
    yum groupinstall "Development Tools"
    yum install openssl-devel readline-devel zlib-devel curl-devel libyaml-devel libffi-devel httpd-devel 
    yum install ImageMagick ImageMagick-devel ipa-pgothic-fonts 
  • mysqlを入れる (mariaDBの削除)
    yum remove mariadb-libs
    yum install http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm
    yum install mysql-community-server
    yum install mysql-devel
    • /etc/my.cnf を開いて最後に下記を追加(文字はUTF-8を利用)
      character_set_server=utf8
      skip-character-set-client-handshake
    • 起動
      touch  /var/lib/mysql/mysql.sock
      chown -R mysql:mysql /var/lib/mysql
      systemctl start mysqld.service
    • mysqlのパスワードなど設定
      mysql_secure_installation (これを実行)
      この時,最初のmysqlのrootパスワードの質問は無視
      Enter current password for root (enter for none): (空でenter)
      あとはいろいろ
      systemctl restart mysqld.service
  • DBにredmine(ver1.1.2)をコピーする
    • まずDBに空の redmineデータベースを作成し,redmineユーザを作る
      mysql -u root -p で入る
      CREATE DATABASE redmine CHARACTER SET utf8;
      CREATE USER 'redmine'@'localhost' IDENTIFIED BY 'パスワード';
      GRANT ALL PRIVILEGES ON redmine.* TO 'redmine'@'localhost';
      quit;
    • 先ほど保存した過去のredmineDBを入れる
      mysql -u root -p --default-character-set=utf8 redmine < redmine_backup_20161104-080707.sql 
  • Rubyを CentOS7.2にいれる
    • デフォルトでは 2.0.0 が入ってるが(/usr/bin/ruby)それは削除.2.2.3にする.
    • 特に消してもバージョンアップしても今のところ問題なかった
      curl -O https://cache.ruby-lang.org/pub/ruby/2.2/ruby-2.2.3.tar.gz
      tar xvfz ruby-2.2.3.tar.gz
      cd ruby-2.2.3
      ./configure --disable-install-doc
      make
      make install で
      /usr/local/bin/ruby に入る
      (確認)
      ruby -v
  • gemのインストール
    gem install bundler --no-rdoc --no-ri
  • Redmineを入れる 参考は http://blog.redmine.jp/articles/3_2/install/centos/ http://weblabo.oscasierra.net/install-redmine32-centos7-1/など.redmine 3.2を入れる
    curl -O http://www.redmine.org/releases/redmine-3.2.0.tar.gz
    tar xvfz redmine-3.2.0.tar.gz
    mv redmine-3.2.0 /var/lib/  (ここはお好み)
    それで名前をredmineに変える
    cd /var/lib/
    mv redmine-3.2.0  redmine
    (この後,redmineディレクトリの下を全部 ユーザapache,グループapacheに変更するが,まだいろいろインストールするので最後にする)
  • Redmineまわりの設定とファイルの移動

    • データベース接続設定
      cd /var/lib/redmine/config/
      cp database.yml.example database.yml
      • database.ymlで 最初のproductionだけ書き直した
        production:
        adapter: mysql2
        database: redmine
        host: localhost
        username: redmine
        password: "パスワード"
        encoding: utf8
    • configuration.ymlの作成(メールの設定)
      • /var/lib/redmine/config/configuration.yml を新規に作る.configuration.yml.exampleというのもあるみたいだけど無視した
      • 内容は下記(メールの設定に合わせる)
        production:
         email_delivery:
           delivery_method: :smtp
           smtp_settings:
             address: "localhost" 
             port: 25
             domain: "fullのドメイン名" 
        
         rmagick_font_path: /usr/share/fonts/ipa-pgothic/ipagp.ttf
        
    • 必要なファイルのdownload
      cd /var/lib/redmine
      bundle install --without development test --path vendor/bundle
      ここでエラーがでた場合はメッセージを読む
      (database.ymlの中が正しいか,mysql関係のライブラリが不足しているか?など)
    • 秘密鍵の作成
      cd /var/lib/redmine
      bundle exec rake generate_secret_token
      下記のワーニングが出る
      /var/lib/redmine/vendor/bundle/ruby/2.2.0/gems/htmlentities-4.3.1/lib/htmlentities/mappings/expanded.rb:465: warning: duplicated key at line 466 ignored: "inodot"
    • httpd との連携にむけて (passengerなどいれる)
      cd /var/lib/redmine
      gem install passenger --no-rdoc --no-ri
      passenger-install-apache2-module --auto
    • httpdに登録すべき内容の表示
      passenger-install-apache2-module --snippet

      と打つと

      LoadModule passenger_module /usr/local/lib/ruby/gems/2.2.0/gems/passenger-5.0.30/buildout/apache2/mod_passenger.so
      
       <IfModule mod_passenger.c>
       PassengerRoot /usr/local/lib/ruby/gems/2.2.0/gems/passenger-5.0.30
       PassengerDefaultRuby /usr/local/bin/ruby
       </IfModule>
      
    • 上記の内容をhttpdに設定
      touch /etc/httpd/conf.d/redmine.conf
      • としてファイルを作って内容は下記
         
         <Directory "/var/lib/redmine/public">
         Require all granted
         </Directory>
         
         LoadModule passenger_module /usr/local/lib/ruby/gems/2.2.0/gems/passenger-5.0.30/buildout/apache2/mod_passenger.so
         
         <IfModule mod_passenger.c>
          PassengerRoot /usr/local/lib/ruby/gems/2.2.0/gems/passenger-5.0.30
          PassengerDefaultRuby /usr/local/bin/ruby
         </IfModule>
         
         RackBaseURI /redmine
         (この最後の1行も重要)

  • 旧redmineのfileをコピーする
    cd /var/lib/redmine
    mv files filesBak
    mv filesback.tgz  .
    tar xvfz filesback.tgz
    これで files ディレクトリが /var/lib/redmineの下にできる
  • データベースを修正する(これが重要)
    cd /var/lib/redmine
    RAILS_ENV=production bundle exec rake db:migrate
  • Redmineの下を apacheユーザ,apacheグループの権限に変える
    chown -R apache:apache /var/lib/redmine
  • /var/www/html/ がhttpdが公開するディレクトリの時,この下にシンボリックリンクを張る
    ln -s /var/lib/redmine/public /var/www/html/redmine 

起動

 systemctl restart httpd.service

起動時に自動で立ち上げるには

 systemctl enable httpd.service

アクセス

http://localhost/redmine/ のところにアクセスすると表示される.